作者通过一系列在ImageNet 2016分类数据集上的控制实验说明了ShuffleNet结构单元每个部件存在的必要性、对于其他网络结构单元的优越性。接着作者通过在MS COCO目标检测上的结果说明模型的泛化能力。最后,作者给出了在ARM计算平台上ShuffleNet实际运行时的加速效果。 分组化逐点卷积 作者对于计算复杂度为140MFLOPs 、 40MFLOPs、13MFLOPs的ShuffleNet模型,在控制模型复杂度的同时对比了分组化逐点卷积的组数在1~8时分别对于性能的影响。从表1中可以看出,带有分组的(g>1)的网络的始终比不带分组(g=1)的网络的错误率低。作者观察到对于较小的网络(如ShuffleNet 0.25x),较大的分组会得到更好结果,认为更宽的通道对于小网络尤其重要。受这点启发,作者移除了网络第三阶段的两个结构单元,将节省下来的运算量用来增加网络宽度后,网络性能进一步提高。 表1 组数对分类错误率的影响 通道重排 通道重排的目的是使得组间信息能够互相交流。在实验中,有通道重排的网络始终优于没有通道重排的网络,错误率降低0.9%~4.0%。尤其是在组数较大时(如g=8),前者远远优于后者。 对比其他结构单元 作者使用一样的整体网络布局,在保持计算复杂度的同时将ShuffleNet结构单元分别替换为VGG-like、ResNet、Xception-like和ResNeXt中的结构单元,使用完全一样训练方法。表2中的结果显示在不同的计算复杂度下,ShuffleNet始终大大优于其他网络。 表2 和其他网络结构的分类错误率对比(百分制) 对比MobileNets和其他的一些网络结构 最近Howard et al. 提出了MobileNets [4],利用[1]里的逐通道卷积的设计移动设备上高效的网络结构。虽然ShuffleNet是为了小于150MFLOPs的模型设计的,在增大到MobileNet的500~600MFLOPs量级,依然优于MobileNet。而在40MFLOPs量级,ShuffleNet比MobileNet错误率低6.7%。详细结果可以从表3中得到。 表3 ShuffleNet和MobileNet对比 和其他一些网络结构相比,ShuffleNet也体现出很大的优势。从表4中可以看出,ShuffleNet 0.5x仅用40MFLOPs就达到了AlexNet的性能,而AlexNet的计算复杂度达到了720MFLOPs,是ShuffleNet的18倍。 表4 ShuffleNet和其他网络结构计算复杂度的对比 MS COCO物体检测 在Faster-RCNN [5]框架下,和1.0 MobileNet-224网络复杂度可比的 ShuffleNet 2x,atv,在600分辨率的图上的mAP达到24.5%,而MobileNet为19.8%,表明网络在检测任务上良好的泛化能力 实际运行速度 最后作者在一款ARM平台上测试了网络的实际运行速度。在作者的实现里40MFLOPs的ShuffleNet对比相似精度的AlexNet实际运行速度快约13x倍。224x224输入下只需15.2毫秒便可完成一次推理,在1280x720的输入下也只需要260.1毫秒。 应用展望 很多重要的需要语义信息的计算机视觉任务,j2直播,如目标检测、物体识别等,都需要一个好的“基础模型”作为特征提取器。在移动设备越发重要的今天,在其之上运行的视觉算法模型会越多、准确率要求会越来越高。无论目标检测和识别、人脸检测和识别,还是图片风格化编辑、美颜,抑或是直播用户行为分析,都离不开基础模型的支持。好的基础模型可以让因为原始运算力需求过大而无法在手机上高效运行的模型能高效运行,将众多不可能变为可能。 此外,其他常用的模型压缩技术,如稀疏化、网络量化等技术也可以在ShuffleNet上应用,提高存储效率和运行速度,进一步降低视觉算法和应用的落地门槛。 参考文献 [1] François Chollet. Xception: Deep learning with depthwise separable convolutions. arXiv:1610.02357, 2016. [2] Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, and Kaiming He. Aggregated residual transformations for deep neural networks. arXiv:1611.05431, 2016. (责任编辑:本港台直播) |