CondenseNet论文阅读笔记

CondenseNet

目录

论文简介

根据Hashing trick compression,stochastic depth等工作表明CNNs中存在很多冗余,对于DenseNet这样密集连接的网络,肯定存在冗余的连接(一些前层的特征可能没有必要在后层出现);因而本文主要设计了一种在训练过程中,通过剪枝连接的方式,消失DenseNet中的冗余连接。
具体来说,开始是,网络的连接是每一个分组的输出,连接全部的输入fmaps;而再学习过程中,裁剪不重要的filter(filter-leveling pruning),使得连接逐渐退化成group connection,从而保留重要的连接。具体如下图所示,左边为开始时的连接——标准卷积层,经过训练剪枝后最终生成的连接为group-convolution形式。
动态剪枝连接

本文一些记忆点

1)本文思想来源分析:

问题来源分析
  • 早先的实验表明,在DenseNet的1x1卷积层单纯的使用group conv会导致的精度急剧下降;作者猜测可能是该1x1层的的输入fmaps来自于与不同的层,所以存在很大的差异性,因为如果分组卷积的话,降低了特征重用性。
  • 然而,作者通过shufflenet的思想,对输入进行randomly permute(随机换序),虽然减小的单纯使用group conv的精度降低影响,但是效果也不甚好。
  • 对于DenseNet每层使用前面所有层的输出,虽然不是所有前面的层的输出都需要连到后层,但是很难知道哪些层是没有必要链接到后面层的
解决方法
  • learned-group conv : 作者设计一个learned group conv(可学习的分组卷积层),如上面内容简介中所述,开始对每层输出进行分组,且每组链接全部的输入特征图;而在训练中通过消除不重要的filters,使得输出的每组fmaps只对应需要的输入某些fmaps——也就是退化为group convolution。learned-group conv 的位置如下图所示,中间红色块为Learned-group conv,在测试时,该层使用最终学习到的group-conv连接。
    learned group

2) 具体剪枝操作设计:

  • 公式表示
    • 作为原始卷积连接为4D tensor(OxRxWxH),O为输出数目,R为输入数目,H,W为fmaps大小。而对于1x1的卷积,学习权重矩阵 F F 为2D(OxR);
    • 对于G个分组,每组对应的权重矩阵分别为F1,F2,...,FG,而 Fg F g 的大小为 OG×R O G × R
      • 当计算第 j j 个输入fmap对第g组的重要性时,计算该jth的fmap对该组所有的输出fmaps之间的filters的平均绝对值大小,表达式为:i=1O/G|Fi,jg|也就是只有当 Fg F g 的某一列的绝对值平均小于其他列所有值平均会被置0(也就是删除掉)。

3)Group Lasso:

为了使得剪枝后的连接趋向于group conv——也就是要求每组基本使用相同的输入fmaps。所以在损失计算中引入了像L1,L2这样的规范化(regularizer)因子;根据要求,设计了Group Lasso的regularizer, 这个规范化会push Fg F g 中某一列的所有元素趋于0(每一列是一个输入fmap对应所有某一组所有的输出fmaps),具体式子如下所示:
Gg=1Rj=1O/Gi=1Fgi,j2 ∑ g = 1 G ∑ j = 1 R ∑ i = 1 O / G F i , j g 2
这一点值得学习,在进行prune时,可以自定义regularizer,根据剪枝意图对权重进行一定的规范

4)选择合适的学习率:

本论文使用了SGDR中的cosine shape learning rate学习率——平滑退火的学习率(snapshort ensemble, scale image recognition),下图为该学习率使用效果图
cosine shape lr.

5) 相对于原始DenseNet的一些变化:

1) increasing growth rate(IGR):

就是在连接一层的前面所有层时,对于越前面的则growth rate越小(fmaps的占比小),越靠近该层的前面附近层growth rate越大(占比大)。这种方式就是IGR。

2)Fully dense connectivity (FDC):

对于不同block之间的层也进行链接,跨block连接,尽管resolution不同但是使用4x4pooling,或者grobal Pooling 保证相同。
FDC
各组件使用的效果图:on CIFAR-10
通过图可以看出来,FDC对于模型性能提升不是很大,但是这是针对于CIFAR-10小数据集;
对于ImageNet大数据集而言,这种FDC的链接就开始有效果了。
各组件效果图

6)早期剪枝对最终性能是否有影响:

问题

在早期的权重剪枝,是否在训练中引入了额外的变数;早期减去的权重是不是因为被初始化时就比较小,而不是它变得比较小且不重要?

可视化分析:

下图可视化分析,在CIFAR-10上,每一列表示使用不同的随机种子进行初始化权重。
- 第一行表示保留的(未被剪枝的)权重平均绝对值,图的每列表示一个特定层的输出filter group 与一个input fmap(对应图中行,越到后面层,则行越多表示输入fmaps越多)的平均绝对值。也就是初始状态,每个输入对应一个组的重要程度。(如果G=4, 也就是每四列表示一层。)
- 图下一行表示层之间的信息流,可以看出,最终学习的模型,层之间的信息流具有相似的模式分布,这表明三个模型最终学习了相似的全局连接模式,尽管三个模型最初的权重初始化不同。
- 结论: 早期的权重剪枝不影响模型的训练
可视化分析

总结

  • 该论文是对DenseNet的进一步探究,通过设计一种learned group conv使模型训练时,实现filter的剪枝,从而有标准conv退化为group conv,从而优化网络计算消耗。
  • 本文一些思考点值得学习。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值