旷视科技提出新型卷积网络——ShuffleNet,可在移动端高效运行

近日,来自旷视科技的 Zhang Xiangyu 等四名研究员联合提出了一种专门为移动端设备而设计的高效卷积神经网络结构——ShuffleNet,这种新结构将点态组卷积(pointwise group convolution)和通道随机混合(channel shuffle)这两种经典方法进行结合与改进,大大提升了计算效率 。


论文链接:https://arxiv.org/abs/1707.01083


摘要


我们将会介绍一种在计算性能上极度高效的卷积神经网络结构,叫做 ShuffleNet,它是为计算能力有限的移动设备而专门设计的(例如,10-150 MFLOPs)。为了在保持精度的同时显著减少计算成本,这种新结构利用了两种已有的运算方法,点态组卷积(pointwise group convolution)和通道随机混合(channel shuffle)。在 ImageNet 分类集和 MS COCO 目标检测集中进行的实验说明了 ShuffleNet 拥有超过其它结构的优越性能表现,比如在计算性能为40 MFLOPs 的情况下,比近期的MobileNet 系统更低的 top-1 error(6.7%)。在一个基于ARM 的移动设备上,与AlexNet相比,ShuffleNet 在保持类似精度的同时完成了13倍的实际加速。

方法介绍:


1. 组卷积的随机通道混合(Channel Shuffle for Group Convolutions)

图1(a)说明了两个堆叠式组卷积层的相关情况。显然,某一组的输出只与该组的输入有关。这一特性阻止了不同通道组别间的信息传递,并且削弱了其表征。


如果我们允许组卷积(group convolution)从不同组中获取输入信息,如图1(b)所示,那么输入和输出通道将会全相关(fully related)。具体来说,对于从前一组卷积层生成的特征映射,我们可以首先把每一组内的通道分成几个子组(subgroup),然后把不同的子组提供给下一层中的每一组。这一过程可以由通道洗牌(channel shuffle)操作高效完成,如图1(c)所示:假设一个卷积层共有g 个组,其输出为 g*n 个通道;我们首先将输出通道维度重组成(g,n),然后进行调换(transpose)并且将其扁平化作为下一层的输入。注意即使两个卷积层中组的数目不同,此操作仍然生效。而且,通道洗牌也是可微分(differentiable)的,意味着它是可以被嵌入进网络结构,从而进行端到端的训练的。

图 1:用双堆叠式组卷积(two stacked group convolutions)进行通道随机混合(通道洗牌)。GConv 代表组卷积。a)两个组数相同的堆叠式卷积层。每一个输出通道仅与组内的输入通道有关。没有串扰(cross talk);b)当GConv2 在GConv1 后从不同组中提取数据时,输入和输出通道是全相关的(fully related);c)使用通道随机混合进行与 b)相同的操作。

2. ShuffleNet 单元


利用通道随机混合操作,我们提出了一种专门为小型网络设计的新型 ShuffleNet,我们的设计始于瓶颈单元(bottleneck unit),如图2(a)。它是一个残差模块(residual block)。在它的残差分支,我们在瓶颈特征映射(bottelneck feature map)上应用了一个计算性能很经济的 3×3 depthwise 卷积。然后,我们用点态组卷积和通道洗牌操作代替了第一个 1×1 卷积层,以形成一个 ShuffleNet 单元,如图2(b)。第二个点态组卷积是为了对通道规模进行复原,从而与捷径分支相匹配。为了简化,我们没有在第二个点态层后使用额外的通道洗牌操作,因为这样已经可以得到较好的分数了。


在给ShuffleNet赋予步长值的情况下,我们简单地做了两处修改,见图2(c):(i)在捷径分支中加入一个 3×3 的平均池化层(AVG Pool);(ii)用通道串联(channel concatenation)代替元素方式的相加(element-wise addition),这使得用很小的计算成本来扩大通道规模变得很容易。

图 2:ShuffleNet 单元。a)使用了depthwise 卷积(DWConv)的瓶颈单元(bottleneck unit);b)使用了点态组卷积(GConv)和通道随机混合的ShuffleNet 单元;c)步长值为 2 的 ShuffleNet 。


ShuffleNet 整体结构参数设计如表 1 所示:

理论旷视科技理论论文神经网络架构高效卷积神经网络
返回顶部