轻量化网络(五)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

ShuffleNet是由旷视推出的专门为移动设备设计的神经网络,主要使用了pointwise group convolution and channel shuffle这两个操作。实验在Arm端手机上运行,在保持精度不变的情况下,比 AlexNet提速了13倍。
一、Channel Shuffle for Group Convolutions
现在很多网络如Xception 和 ResNeXt都会使用深度可分离卷积或是组卷积来平衡计算量和网络性能。在这两种卷积中会使用 1 × 1 1 \times 1 1×1卷积核,许多网络没有充分考虑点卷积,使得网络性能的损失。直接解决该问题的办法是通道稀疏连接,比如组卷积。通过卷积核在输入特征中相对应的通道上卷积,可以减少计算量。但是多个组卷积堆叠在一起,会产生一个问题:两层组卷积的特征输出和特征输入的通道保持不变,如Figure 1(a)所示。特征之间的通道没有进行交换。这种情况会阻碍信息的交互同时影响网络性能。如果我们将输入特征按通道重新排列,如Figure 1(b)(c)所示。这个 channel shuffle 是可微的同时可以嵌入进网络结构中进行端对端训练。这一操作可以加强网络性能。
在这里插入图片描述二、ShuffleNet Unit
Figure 2(a)是一个残差块,(b)中使用 1 × 1 1 \times 1 1×1点组卷积(pointwise group convolution)和Channel Shuffle来代替标准 1 × 1 1 \times 1 1×1卷积,后面使用一个更加节约资源的深度卷积(depthwise convolution),最后同样是一个点组卷积。第二个点组卷积恢复特征的通道数量,以便和shortcut path相匹配,后面并没有加入Channel Shuffle从而减少计算。。ShuffleNet对小网络有挺大的优势,因为在资源有限的设备上使用神经网络,特征通道不会很多,ShuffleNet使用组卷积和深度卷积可以提高通道数量从而提升网络性能。为了避免过多的开销,只在残差块中使用一次深度卷积。作者发现虽然深度卷积在理论上有较大的资源节约,但是实际中却是更大计算和内存的消耗。
在这里插入图片描述三、网络结构
Table 1是整个网络结构图,Stage是ShuffleNet Unit的堆叠,每经过一个stage输出通道会翻倍。设bottleneck channels是输出特征通道的 1 4 \frac{1}{4} 41。组卷积使用g来控制输入通道数量,同时调整输出通道以便保持整个网络的FLOPs保持不变。分组越多,输出的通道越多才能保持FLOPs不变。分组越多,提取的特征信息会越多。
在这里插入图片描述

三、消融实验
ShuffleNet的核心是点组卷积(Pointwise Group Convolutions)和shuffle操作,下面对这两个创新点做消融实验。
1.点组卷积的实验
Table 2中是对点组卷积进行实验,将组卷积的中 g g g分别设置从1到8,当 g = 1 g=1 g=1时相当于没有分组,是普通标准卷积。实验在不同的模型大小基础上实验,Table 1中是基础的ShuffleNet网络结构,ShuffleNet s × s \times s×表明 s s s倍ShuffleNet 1 × 1 \times 1× 中卷积核的数量。从表中可以得出结论:拥有点组卷积比没有点组卷积的网络效果好。说明增加特征通道可以增加网络性能。
在这里插入图片描述
2.Shuffle操作的实验
Table 3对Shuffle操作做了消融实验,可见在不同的情况下,Shuffle操作提高了网络性能。
在这里插入图片描述3.网络结构的实验
Table 4中是对不同网络结构进行实验。作者将ShuffleNet中的stage2-4用不同的单元来代替ShuffleNet单元进行实验。在相同FLOPs下,ShuffleNet单元达到了最好的效果。

在这里插入图片描述

五、实际的加速
作者在ARM平台的移动端上进行了实验,测试实际加速效果。虽然随着点组卷积的组数增加,网络性能会提升,但是实际效率是更低的。作者发现理论上每4倍的计算复杂的降低,实际中是2.6倍的加速。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值