论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
一、 内容简述
本文受到group convolution方法(最早出现在AlexNet中)以及ResNet中的bottleneck结构的启发,设计了一种名为ShuffleNet的高效CNN模型,该模型使用的核心技巧是pointwise group convolution和channel shuffle。该模型在保证模型精度优于其他现有方法的同时大大减少了计算量,可以应用于计算能力有限的移动设备(例如无人机、智能电话、机器人等)上。
二、 Motivation
当时最为优秀的结构都使用了1×1的卷积层,但是1×1的卷积层需要耗费大量的计算资源;group convolution的方法在很早之前就被证明可以有效地减少计算量,但是由于每个group的输出只与该group内的输入有关,这样阻碍了group之间信息的流动。为了解决这些问题,作者采用pointwise group convolution和channel shuffle的技巧,构建了一个精度高计算量小的高效模型。
三、 模型结构

上图中的(a)为group convolution方法,将通道分成不同的组进行训练,可以有效地减少计算量,但是从图中也可以看出,每组的输出只与该组的输入有关,缺乏组与组之间的信息交流,这样不利于特征的学习。如果将各大组再进行分组,分成各个小组输入到下一层的其他大组中进行信息互通,如图中的(b),可以有效地解决这个问题。基于这个思想,文中提出了上图中(c)的结构,设计了一种channel shuffle的方法打乱这些小组,便于信息流通,这就是pointwise group convolution+channel shuffle,具体的channel shuffle操作步骤图示如下: 
根据以上思路作者设计了ShuffleNet Unit。如下图,其中(a)结构为残差第一篇中提出的bottleneck结构;(b)为ShuffleNet Unit,使用pointwise group convolution代替了原来的1×1卷积层,记为GConv,第一个GConv后加入了channel shuffle。最后一个GConv后未加channel shuffle,用来恢复维度以匹配shortcut路径输出的结果;(c)是stride=2的ShuffleNet Unit即降采样的ShuffleNet Unit,3×3的卷积层步长为2同时在shortcut部分加入了一个步长同样为2的平均池化。

因此最终的ShuffleNet baseline结构如下:

每个stage的第一个层都是步长为2的降采样ShuffleNet Unit,步长为1的代表普通的ShuffleNet Unit,Repeat代表重复的次数。每个stage的通道数为上一个stage的两倍;每个stage内的除步长外的其他超参数均保持不变。
四、 实验
(1) 消融实验
① pointwise group convolution

表中ShuffleNet1×代表上节中提到的baseline ShuffleNet,0.5×代表将通道数控制为原来的一半,0.25×代表将通道数控制为原来的1/4,都是改变了卷积核的个数。表中的g=1代表只有一组即未分组的普通训练。从实验结果中可以看出,对于三个模型来说,使用分组训练的方法(g=2,3,4,8)的分类错误率都比g=1时的要低,说明分组训练对于提升精度确实是有效的。
② Channel Shuffle

实验对比了三种不同缩放情况下有无Channel Shuffle时的精度,可以看出有Channel Shuffle的模型精度明显高于没有Channel Shuffle的,证明了Channel Shuffle方法的有效性。同时还可以看出,三个模型在有Channel Shuffle时取g=8的精度都要高于g=3的精度,说明更多的信息交互可以提高模型精度。
(2) 在相同的复杂度下与现有的其他方法进行比较

在三个不同的复杂度约束条件下,对比了ShuffleNet与VGG-like、ResNet、Xception-like、ResNeXt,从实验结果中可以看出ShuffleNet的误差率均为最低。其中表中的‘-’代表误差率比50.7%还要高。
(3) 与同样适用于移动设备(计算能力差)的MobileNet对比

从实验结果可以看出,各种情况下的ShuffleNet效果都更好。
(4) 与现有方法在精度接近的前提下对比复杂度

将ShuffleNet调到与现有方法接近的精度时可以发现,它的复杂程度远小于其他方法,计算量更少。
(5) 在MS COCO中的目标检测任务实验

实验结果表明在该任务中ShuffleNet的效果要比MobileNet效果要好。
(6) 在使用嵌入式平台的移动设备上进行速度对比实验

在三种不同尺寸的输入图片下进行实验,ShuffleNet不仅可以达到更高的精度,而且在接近的精度下比其他模型速度更快,运算时间更短。
ShuffleNet论文总结
最新推荐文章于 2024-09-16 18:53:12 发布
ShuffleNet是一种专为移动设备设计的高效卷积神经网络,通过pointwise group convolution和channel shuffle技术,在保证精度的同时大幅降低计算量。
1348

被折叠的 条评论
为什么被折叠?



