ShuffleNet V2论文解读


摘要

论文地址:https://arxiv.org/pdf/1807.11164.pdf
作者:Face++
概述:论文指出现在的网络通常使用间接量来度量计算复杂度(例如FLOPs),然而实际的运行时间受到很多其他因素的影响例如内存访问开销(memory access cost)和平台的特性,如下图所示,同样的FLOPs却有着截然不同的运行速度

ShuffleNet v2 Fig1.png

直接度量(speed)和间接度量(FLOPs)之间的差距在于主要存在于

(1)许多其他的因素也会影响运行的速度,这是FLOPs不能考虑到的,比如内存访问开销(MAC),分组卷积就会有着非常高的MAC;另一个常见因素是网络的并行程度,在相同FLOPs的条件下,并行度高的网络要比低的网络速度更快
(2)平台的不同,相同的FLOPs在不同的平台上可能有着不同的运行时间,我们不能简单地认为3\times 3卷积的运行时间就是1\times 1卷积的九倍

于是文章提出了在设计高效网络时的两个准则

(1)采用直接的度量方式(例如speed),而不是间接地
(2)要在目标平台上进行估计


网络设计准则

采用的硬件设施:
 GPU ———— NVIDIA GeForce GTX 1080Ti + cuDNN 7.0
 ARM ———— 高通骁龙810

实验可得,FLOPs并不是一个能足够精确估计实际时间的度量


ShuffleNet v2 Fig2.png

G1 相同通道数能够减小内存访问开销

首先对depthwise separable convolutions中的1\times 1卷积进行分析,一次卷积的FLOPs为 B = hwc_1c_2,由此计算MAC = hw(c_1 + c_2) + c_1c_2,然后利用均值不等式可得
MAC \geq 2\sqrt{hwB} \ + \frac{B}{hw}
然后将B = hwc_1c_2带入可得到结论,当输入输出通道数相等时,MAC最小

ShuffleNet v2 Tab1.png

当输入输出通道数相同时,MAC最小,运行速度更快,因此网络设计时,应尽可能地使输入输出通道数之比尽可能等于1

G2 过多的组卷积增加MAC

分组卷积大大减少了计算复杂度(FLOPS),也能够增加网络容量,但随之带来的是MAC的增加,分组卷积的MAC
MAC = hw(c_1 + c_2) + \frac{c_1c_2}{g} = hwc_1 + \frac{Bg}{c_1} + \frac{B}{hw}
其中g是组卷积的个数,FLOPs为B = hwc_1c_2/g,容易得出,给定输入c_1 \times h \times w和计算量BMAC随着g的增加而增加

ShuffleNet v2 Tab2.png

组卷积的使用建议:具体的分组数要根据实际的目标平台和任务来选择,单纯的因为组卷积能够增加通道数从而较为容易的增加准确度而使用大量的组卷积是不明智的选择

G3 网络的分支会影响并行程度

尽管多分支结构的网络能够提高准确度,但是对并行计算能力不强的GPU来说,会大大减小运行效率。为了量化网络分支如何影响网络运行效率,作者对一系列具有不同程度的网络块(blocks)进行了评估,如下图所示


ShuffleNet v2 App1.png
ShuffleNet v2 Tab3.png

网络的分支数增加会减慢网络运行速度

G4 Element-wise操作并不能忽略

ShuffleNet v2 Fig2.png

如图2所示,element-wise操作占据了相当大一部分时间,尤其是在GPU上,这些操作包括:ReLUAddTensorAddBias等等。它们都有着较小的FLOPs但却有较大的MAC,应该将depthwise convolution也视为一种element-wise操作因为它也有着较高的
MAC/FLOPs
比率
ShuffleNet v2 Tab4.png

移除ReLU和shortcut,网络速度提高了20%

结论

通过上述的分析,我们得出了一个高效的网络结构应该尽可能的根据如下原则去设计

(1)使用 balanced 卷积(即输入输出通道数相同)
(2)小心使用组卷积来防止大的内存开销
(3)减少网络的分支
(4)减少 element-wise 操作


ShuffleNet V2:全新高效的网络结构

Review of ShuffleNet v1

ShuffleNet v2 Fig3.png

为了增加通道数但又不显著增加FLOPs,主要有以下两种方法:(1)pointwise group convolution;(2)bottleneck-like structures 。然而以上两种方法都会增加MAC(G1 G2),尤其是在轻量级的网络中。此外,使用太多的组卷积违背了 G3 原则。shortcut中的逐个元素的 “+”操作也不可忽视(G4

实现高容量且高效率模型的关键在于如何既不使用 dense convolution(通过增加输出卷积核数目来增加通道数) 也不使用过多 组卷积 来保证通道数目多且等宽

ShuffleNet V2

ShuffleNet v2 Fig3(c).png

基于上述启发,提出了一种名为 channel split 的操作。如图3(c)所示(上图),输入特征通道c被分为两个分支cc',符合 G3 ,一个分支保留自身映射,另一个分支包含三个有着相同输入输出的通道来满足 G1 ,两个1\times 1卷积不再是组卷积,部分符合 G2 原则,之所以说部分符合是因为分离操作已经产生了两个组。经过卷积层后,两个分支开始进行融合,通道数保持不变(G1),然后经过 Channel Shuffle 层,一个单元结束。
在shuffling之后,下个单元开始,注意在ShuffleNet v1中 Add 操作不复存在,ReLUdepthwise convolution只存在于一个分支。而且,三个连续的逐个元素操作 “Concat” “Channel Shuffle” 以及 “Channel Split”合并为一个 element-wise操作,根据G4,这些改变有利于提高网络效率。

ShuffleNet v2 Fig3(d).png

完整的网络结构是由上述blocks堆叠而成,简单起见,设置c' = c/2,整体的网络结构与ShuffleNet相似,有一个不同之处在于\it \text{global averaged pooling}后加入了一个额外的1\times 1卷积层用于融合特征。

ShuffleNet v2 Tab5.png

ShuffleNet v1和ShuffleNet v2网络对比

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

推荐阅读更多精彩内容

  • ShuffleNet:An Extremely Efficient Convolutional Neural Ne...
    ucascv7阅读 1,284评论 0 0
  • 在那个燥热的午后, 触到了一个女人辛酸的一生, 而一切的罪魁祸首, 却是人们眼中美好高尚的爱。 在错的时间遇见了最...
    井溢阅读 262评论 2 5
  • 春天 匆匆又奔放的来 白的似雪 红的似焰 绽放一时 又缓缓离去。
    飞鸟与海阅读 182评论 0 3
  • 生活不是用来妥协的,你退缩得越多,能让你喘息的空间就越有限;日子不是用来将就的,你表现得越卑微,一些幸福的东西就会...
    凹凸嫚阅读 236评论 0 0
  • 这本书讨论的事情和我们的世俗生活至为接近。诸如健康,财富,名声,荣誉,养生,待人接物应遵循的原则。这也是常另自己疑...
    赖杨雨阅读 161评论 0 0