ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

1.背景:

    深度学习以及大规模卷积神经网络已经成为目前解决视觉识别任务最常见的办法。我们发现许多精确的卷积神经网络在进行精确计算时,需要几百个卷积层以及上千条通道,因此需要数以百万计的FLOPs计算。

    但是随着近些年来在一些计算机视觉领域中,嵌入式设备对深度神经网络的需求日益增多,这更加鼓励了我们对高效模型的设计灵感:如何在有限的计算能力范围以内(10或者100个MFLOPs)能达到最好的准确率以及最高的精确度,特别是实现在一些智能手机的平台上。而这篇文章就是探索和设计一种高效率的基础架构并将其作为一种计算能力的延伸。


2.模型对比:

    在深度神经网络的模型设计过程中,相比于仅仅对卷积层进行累加,GoogleLeNet是选择了增加卷积神经网络的深度从而降低计算复杂度。而Squeeze Net是在保持准确率的情况下减少了大规模的参数以及计算量。ResNet利用了高效的障碍物结构从而获取出色的性能。另外SENet介绍了一种体系结构单元使用了较少的计算开销从而提高性能。

    因此基于之前的模型和算法,本文就是致力于为手机移动端这种只具备有限计算能力的设备,探索一种高效的设计模型。虽然mobile NASNet模型作为shuffeNet模型副本取得了客观的性能(与ImageNet 错误分类的百分比相似)。但是其并没有报导在微小模型上的结果,也没有评估手机设备真实的推理时间。因此本文在其基础上进行了改良并提供了实现办法。


3.技术实现:

3.1 Group Convolution(组卷积)   

     卷积神经网络通常是由一些重复的组成结构所建立的。其中,最先进的网络例如Xception和ResNeXt引入了一些高效的深度可分卷积和组卷积,在结构模型层面上达到表现能力以及计算开销之间完美的交互。

     但是在轻量级网络中,昂贵的逐点卷积运算限制了许许多多具有复杂性约束的通道,而这些都将会严重损害准确度。为了解决这些问题,最直接的解决方案是稀疏通道连接,如图(a),但是这个过程阻碍了信息流在通道组之间的交换,并削弱了它的性能表现。

    所以本文决定允许组卷积从不同的群体中获取输入信息 ,如图(b),这样输入与输出通道可以彻底被联系起来,另外特别的,对于之前组层产生的特征图谱,此操作还可以将每一个组通道拆分成几个子组,然后这些子组数据在下一层流入不同的组,这就有效且优美的应用了通道重排操作。

    如图(c),假设一个卷积层中有g个组,且它的输出有g*n个通道,我们可以重新改变输出通道维度到(g,n),然后进行置换并整合作为下一层的输入。注意到这个操作尽管这两个卷积有许许多多的组,但依然会产生一些副作用,通道重排是可区分的,这就意味着在训练的过程中可以很好的融合在网络结构中。

3.2 Channel Shuffle Operation(通道重排操作)  

    据我们所知,在很早以前的高效率模型设计的工作中,通道重排操作的理念被很少的提及,卷积神经网络库cuda-convnet库(是 Alex Krizhevsky 公开的一套CNN代码,运行于Linux系统上,使用GPU做运算,)就倡导过“随机稀疏卷积”操作。而通道重排的目的是使得组间信息能够互相交流。

    因此利用通道重排操作给我们带来的优势,本文打算为一个小型网络设计一个新颖的重排单元。本文的设计原理开始于瓶颈单元,如图(a),他是一些残余的小模块。这些残余分支,是一个3*3层的结构,我们应用了一种合理经济的3*3深度卷积计算模式在瓶颈特征图谱上。

    紧接着本文将原先1*1层的逐点组卷积替换成通道重排操作,然后建立通道重排单元,如图(b),第二个组卷积的目的是恢复频道维度以匹配快捷路径。为了简单起见,我们不会在第二个逐点卷积层下再次应用通道重排操作,这样可以得到可比较的结果。通过使用BN(分批标准化)和非线性特征。在一些大幅度应用重排网络的案例中,本文简单的做了两个修改,如图(c):在快速匹配路径的过程中加入了3*3的平均池化;用通道连接替换元素方式的添加,可以很容易地扩大通道尺寸,而不需要额外增加计算成本。

    在一些轻量级的网络工作中通常会没有充足的通道来处理信息。而逐点组卷积正是运用了通道重排技术,使得在重排网单元里每一个元素都能被高效的计算,相比于ResNet和ResNeXt,在相同的设置下ShuffleNet结构具有较低的复杂度。

3.3 Model Acceleration(模型加速)

    这个方向旨在保留预先训练好的模型精确度的情况下加快速率。在之前训练好的模型中通过修剪网络连接以及减少通道冗余连接从而提升性能。在不改变参数的情况下,最优化卷积算法被应用在快速傅里叶变换以及减少实践生活中时间消耗的理论。提取大模型中的理论,有利于更加简单的训练小的模型。

    模型加速的方法有:

1)  修剪网络,减少分支(pruningnetwork connections)。

2)  对于一个训练好的网络(pre-trainedmodel),在性能不下降的情况下减少冗余的分支。

3)  量化(quantization)和因式分解(factorization)加速。

4)  在不改变参数的情况下,使用FFT算法对卷积进行加速。

5)  提取网络的精华部分,减小网络模型。


4.实验结果:

    本文还通过做不同的对比性试验,并以表格的形式说明了以下几点:

    (1)在限定complexity的情况下,通过改变group(g)的数量来改变output channel的数量,更多的output channel一般而言可以提取更多的特征。

    (2)ShuffleNet可以使用更多的feature map不同大小的ShuffleNet在不同group数量情况下的分类准确率比较。其中一个重要结论是group个数的线性增长并不会带来分类准确率的线性增长。但是发现ShuffleNet对于小的网络效果更明显,因为一般小的网络的channel个数都不多,在限定计算资源的前提下,ShuffleNet可以使用更多的feature map。

    (3)channel shuffle的重要性。

    (4)几个流行的分类网络的分类准确率对比。


5. 评估:

5.1 逐点组卷积

较小的模型倾向于从团体中获益更多。请注意,组卷积允许更多特征映射通道用于给定的复杂性约束,所以我们假设性能增益来自更宽的特征映射,这有助于编码更多信息。 另外,较小的网络涉及更薄的特征映射,这意味着它可以从放大的特征映射中获益更多。

随着组数的增加(具有更宽的特征图谱),每个卷积滤波器的输入通道变得更少,这可能损害表示能力。 有趣的是,我们还注意到对于ShuffleNet 0.25等较小的模型, 更大的群体数量趋于更好的结果一致,这表明更广泛的功能图谱为小型模型带来更多好处。

5.2 通道重排VS无重排

重排操作的目的是为多组卷积层启用交叉组信息流。很明显,通道重排在不同的设置下都一直在提升分类的评分。 尤其是,当组号相对较大时(例如g = 8),带有通道重排的模型表现优于对手,显示了跨组信息交换的重要性。

5.3 与其他模型对比

在本节中,我们调查各种构建块例如convolutional units in VGG ,ResNet, GoogleNet , ResNeXt and Xception,并在相同的复杂性约束条件下与ShuffleNet进行比较。

5.4 与mobilenet和其他框架比较

结果表明,较简易的模型shufflenet 仍然明显优于相应的MobileNet,这意味着ShuffleNet的有效性主要来自其有效结构,而不是深度。


6.总结

    ShuffleNet的核心就是用逐点组卷积,通道重排和深度分离卷积代替ResNet block的相应层构成了ShuffleNet 单元,达到了减少计算量和提高准确率的目的。channel shuffle解决了多个group convolution叠加出现的边界效应,逐点组卷积和深度分离卷积主要减少了计算量。

    伴随着巨大的计算复杂度,更宽的通道(如ShuffleNet 1x),较大的分组对于移动端应用(只能进行有限的浮点操作,且具有并不高效的服务器集群)尤其重要。

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

推荐阅读更多精彩内容

  • (首先给助教老师说声抱歉,由于我们组的疏忽导致读书报告交晚了,非常感激助教老师的提醒,谢谢!由于微信群文件没有保存...
    刘博艺阅读 1,465评论 0 2
  • 背景介绍 在现代视觉人工智能系统中,卷积神经网络起着至关重要的作用,但现许多CNNs模型的发展方向是更大更深,这让...
    Winme阅读 490评论 0 0
  • ShuffleNet:An Extremely Efficient Convolutional Neural Ne...
    ucascv7阅读 1,309评论 0 0
  • 文章主要分为:一、深度学习概念;二、国内外研究现状;三、深度学习模型结构;四、深度学习训练算法;五、深度学习的优点...
    艾剪疏阅读 21,834评论 0 58
  • 波波对我很好,我也会对他好,会不会宠坏他?我不怕,不宠他,怎么走近他心!温柔是一种自信。自信来源于自身条件。不断提...
    两人阑阅读 161评论 0 0