Shufflenet论文阅读笔记

ShuffleNet

文章介绍

  • face++17年06月在arixv上放出来的文章,xiangyu Zhang, Xinyuzhou* Jian Sun。
  • 提出来point wise group convolution和channel shuffle两个操作,减少计算量的情况下保持精度。
  • 在Imagenet和 MS coco 数据集上进行了实验,验证比MobileNet的准确率高(imagenet分类top1 ecc 低6.7%)。

与相关工作的对比


  • 模型设计: Xception[3], ->Inception series; ResNeXt, MobileNet系列
  • 模型加速: 对模型进行剪枝(deep compression系列);量化(Xnornet, hwgq系列);卷积加速(fft系列)

contribution:
(1) 针对在小网络中,Xception[3], ResNeXt[37]中1*1操作多。用point wise group convolution进行改进。
(2)将group convolution和depthwise separable convolution统一成一个新的形式

核心思想

分组卷积(Group Convolution中的channel shuffle)
Shufflenet论文阅读笔记

  • 不进行channel shuffle之前分组卷积,不同颜色不互通,通道信息被阻断.
  • channel shuffle将每组的输出分成subgroup, 具体实现分为三步。
    Shufflenet论文阅读笔记

  • 不同卷积的group个数不同是也可以进行channel shuffle操作,并且可导,我理解的是对应的梯度进行交换,能够进行end to end实验。

网络结构

  • 子单元
    Shufflenet论文阅读笔记
    不带stride的情况

    • 对bottleneck上的正常的3*3卷积改为3*3的depthwise convolution(图上没体现出来
    • 将第一个1*1的point wise操作改成 gconv+ shufflenet两个操作
    • 第二个1*1 gconv是为了恢复连接short cut的通道维度??
    • 第二个3*3Gconv不加relu

    带stride的情况

    • 在shot path上加了3*3的AVG pooling
    • 将 add改为了concat
  • 计算复杂度分析
    输入维度为c*h*w, bottleneck channels为m

    • Resnet计算量: hw(2cm + 9m^2) FLOPs
    • ResneXt计算量: hw(2cm + 9m^2/g) FLOPs
    • shufflenet 计算量:hw(2cm/g + 9m^2) FLOPs
  • 总网络结构
    Shufflenet论文阅读笔记
    • 只在botttleneck的特征图中会进行depthwise convolution
    • 总的网络结构由3个stage的build block组成,block里面是ShuffleNet unit子单元,每一个stage第一个子单元stride均为2
    • 保证总计算复杂度(~140M FLOPs)不变,group数目不同时,调整输出channel数目,实验衡量tradeoff (insight: group越大,计算量节省的越多,对应的输出 channel越大,但是每个group对应的input channel减少,可能不利于性能,trade off)

实验

  • 实验设置


    类似ResNeXt的设置,有2个区别

    • weight decay减小,1e-4 -> 4e-5;
    • 预处理的数据增广度没有那么大

  • 实验结果
    (1)验证point wise group convolution的作用

    • 1*,0.5*, 0.25分别代表将shufflenet的卷积核数目scale,网络变瘦,随之计算量缩减为scale^2,相对于不分group, error分别下降1%,2.4%, 3%
    • 对于小网络,group增大更有利,推测对于小网络wider feature map更有利
    • arch2对网络的修改:去掉stage3的两个units, 在保证计算复杂度增加feature map, 果真有提升。
      Shufflenet论文阅读笔记

    (2)验证channel shuffle 的作用
    Shufflenet论文阅读笔记

    (3)与其他网络结构的对比

    • 比其他模型都好,感觉这个实验比较 tricky, 是基于tabel1的整体网络框架将其shufflenet unit换成其他网络结构单元比较的。并没有使用完整的参照网络结构。
    • 好的原因是计算量一定的情况下,shufflenet的网络输出feature map的通道数最高,
      Shufflenet论文阅读笔记
      -跟mobile net对比,shufflenet 50多层,mobilenet28层,重点验证好处不是由深度造成的。
      Shufflenet论文阅读笔记
      (4)实验拓展
    • 在ms coco上进行了物体检测实验
      -Shufflenet论文阅读笔记
    • 在 arm上进行了inference测速实验,与alexnet相比,精度相当,加速了13倍。
      Shufflenet论文阅读笔记