04组-ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

背景介绍

在现代视觉人工智能系统中,卷积神经网络起着至关重要的作用,但现许多CNNs模型的发展方向是更大更深,这让深度网络模型难以运行在移动设备上,针对这一问题,许多工作的重点放在对现有预训练模型的修剪、压缩或使用低精度数据表示。

论文中提出的ShuffleNet是探索一个可以满足受限的条件的高效基础架构。论文的Insight是现有的先进basic架构如XceptionXception和ResNeXtResNeXt在小型网络模型中效率较低,因为大量的1×11×1卷积耗费很多计算资源,论文提出了逐点群卷积(pointwise group convolution)帮助降低计算复杂度;但是使用逐点群卷积会有幅作用,故在此基础上,论文提出通道混洗(channel shuffle)帮助信息流通。基于这两种技术,我们构建一个名为ShuffleNet的高效架构,相比于其他先进模型,对于给定的计算复杂度预算,ShuffleNet允许使用更多的特征映射通道,在小型网络上有助于编码更多信息。

论文在ImageNet和MS COCO上做了相关实验,展现出ShuffleNet设计原理的有效性和结构优越性。同时论文还探讨了在真实嵌入式设备上运行效率。

相关工作

高效模型设计: CNNs在CV任务中取得了极大的成功,在嵌入式设备上运行高质量深度神经网络需求越来越大,这也促进了对高效模型的探究。例如,与单纯的堆叠卷积层,GoogleNet增加了网络的宽度,复杂度降低很多;SqueezeNet在保持精度的同时大大减少参数和计算量;ResNet利用高效的bottleneck结构实现惊人的效果。Xception中提出深度可分卷积概括了Inception序列。MobileNet利用深度可分卷积构建的轻量级模型获得了先进的成果;ShuffleNet的工作是推广群卷积(group convolution)和深度可分卷积(depthwise separable convolution)。

模型加速: 该方向旨在保持预训练模型的精度同时加速推理过程。常见的工作有:通过修剪网络连接或减少通道数减少模型中连接冗余;量化和因式分解减少计算中冗余;不修改参数的前提下,通过FFT和其他方法优化卷积计算消耗;蒸馏将大模型的知识转化为小模型,是的小模型训练更加容易;ShuffleNet的工作专注于设计更好的模型,直接提高性能,而不是加速或转换现有模型。

方法介绍

Channel Shuffle for Group Convolutions针对群卷积的通道混洗

ShuffleNet 网络结构同样沿袭了稀疏连接的设计理念。作者通过分析 Xception 和 ResNeXt 模型,发现这两种结构通过卷积核拆分虽然计算复杂度均较原始卷积运算有所下降,然而拆分所产生的逐点卷积计算量却相当可观,成为了新的瓶颈。例如对于 ResNeXt 模型逐点卷积占据了 93.4% 的运算复杂度。可见,为了进一步提升模型的速度,就必须寻求更为高效的结构来取代逐点卷积。

受 ResNeXt 的启发,作者提出使用分组逐点卷积(group pointwise convolution)来代替原来的结构。通过将卷积运算的输入限制在每个组内,模型的计算量取得了显著的下降。然而这样做也带来了明显的问题:在多层逐点卷积堆叠时,模型的信息流被分割在各个组内,组与组之间没有信息交换(如图 1(a) 所示)。这将可能影响到模型的表示能力和识别精度。

图 1 逐点卷积与通道重排操作

因此,在使用分组逐点卷积的同时,需要引入组间信息交换的机制。也就是说,对于第二层卷积而言,每个卷积核需要同时接收各组的特征作为输入,如图 1(b) 所示。作者指出,通过引入“通道重排”(channel shuffle,见图 1(c) )可以很方便地实现这一机制;并且由于通道重排操作是可导的,因此可以嵌在网络结构中实现端到端的学习

ShuffleNet Unit

基于分组逐点卷积和通道重排操作,作者提出了全新的 ShuffleNet 结构单元,如图 2 所示。

图 2 ShuffleNet 结构单元

该结构继承了“残差网络”(ResNet)的设计思想,在此基础上做出了一系列改进来提升模型的效率:首先,使用逐通道卷积替换原有的 3x3 卷积,降低卷积操作抽取空间特征的复杂度,如图 2(a)所示;接着,将原先结构中前后两个 1x1 逐点卷积分组化,并在两层之间添加通道重排操作,进一步降低卷积运算的跨通道计算量。最终的结构单元如图 2(b) 所示。类似地,文中还提出了另一种结构单元(图2(c)),专门用于特征图的降采样。

借助 ShuffleNet 结构单元,作者构建了完整的 ShuffeNet 网络模型。它主要由 16 个 ShuffleNet 结构单元堆叠而成,分属网络的三个阶段,每经过一个阶段特征图的空间尺寸减半,而通道数翻倍。整个模型的总计算量约为 140 MFLOPs。通过简单地将各层通道数进行放缩,可以得到其他任意复杂度的模型。

另外可以发现,当卷积运算的分组数越多,模型的计算量就越低;这就意味着当总计算量一定时,较大的分组数可以允许较多的通道数,作者认为这将有利于网络编码更多的信息,提升模型的识别能力。

网络结构

在上面的基本单元基础上,我们提出了ShuffleNet的整体架构:

主要分为三个阶段:

每个阶段的第一个block的步长为2,下一阶段的通道翻倍

每个阶段内的除步长其他超参数保持不变

每个ShuffleNet unit的bottleneck通道数为输出的1/4(和ResNet设置一致)

实验

分组化逐点卷积

作者对于计算复杂度为 140 MFLOPs 、 40 MFLOPs、13 MFLOPs的 ShuffleNet 模型,在控制模型复杂度的同时对比了分组化逐点卷积的组数在1~8时分别对于性能的影响。从 表1 中可以看出,带有分组的(g>1)的网络的始终比不带分组(g=1)的网络的错误率低。

表1 组数对分类错误率的影响

通道重排

通道重排的目的是使得组间信息能够互相交流。在实验中,有通道重排的网络始终优于没有通道重排的网络,错误率降低 0.9%~4.0%。尤其是在组数较大时(如g=8),前者远远优于后者。

表2 有无通道重拍

对比其他结构单元

作者使用一样的整体网络布局,在保持计算复杂度的同时将 ShuffleNet 结构单元分别替换为 VGG-like、ResNet、Xception-like 和 ResNeXt 中的结构单元,使用完全一样训练方法。表3 中的结果显示在不同的计算复杂度下,ShuffleNet 始终大大优于其他网络。


表3 和其他网络结构的分类错误率对比(百分制)

对比MobileNets和其他的一些网络结构

虽然 ShuffleNet 是为了小于 150 MFLOPs 的模型设计的,在增大到 MobileNet 的 500~600 MFLOPs 量级,依然优于 MobileNet。而在 40 MFLOPs 量级,ShuffleNet 比 MobileNet 错误率低 6.7%。

表4 ShuffleNet 和 MobileNet 对比

和其他一些网络结构相比,ShuffleNet 也体现出很大的优势。从表5中可以看出,ShuffleNet 0.5x 仅用 40 MFLOPs 就达到了 AlexNet 的性能,而 AlexNet 的计算复杂度达到了 720 MFLOPs,是 ShuffleNet 的 18 倍。

表5 ShuffleNet 和其他网络结构计算复杂度的对比

MS COCO物体检测

在 Faster-RCNN 框架下,和 1.0 MobileNet-224 网络复杂度可比的 ShuffleNet 2x,在 600 分辨率的图上的 mAP 达到 24.5%,而 MobileNet 为 19.8%,表明网络在检测任务上良好的泛化能力。

实际运行速度

最后作者在一款 ARM 平台上测试了网络的实际运行速度。在作者的实现里 40 MFLOPs 的 ShuffleNet 对比相似精度的 AlexNet 实际运行速度快约 13x 倍。224 x 224 输入下只需 15.2 毫秒便可完成一次推理,在 1280 x 720 的输入下也只需要 260.1 毫秒。

总结

现代卷积神经网络的绝大多数计算量集中在卷积操作上,因此高效的卷积层设计是减少网络复杂度的关键。其中,稀疏连接是提高卷积运算效率的有效途径,当前不少优秀的卷积模型均沿用了这一思路。ShuffleNet 网络结构同样沿袭了稀疏连接的设计理念,提出了组卷积和通道混洗的处理方法,并在此基础上提出了一个ShuffleNet unit,在计算资源有限的设备上,大幅降低模型计算复杂度的同时仍然保持了较高的识别精度,并在多个性能指标上均显著超过了同类方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容