Page 11 - 《软件学报》2020年第9期
P. 11
2632 Journal of Software 软件学报 Vol.31, No.9, September 2020
[9]
最终,ShuffleNet 在与 AlexNet [18] 相同准确率的情况下,比后者快 13 倍.
为了在保持网络规模的前提下进一步提高网络的性能,在后来的 MobileNet V2 [10] 中引入了残差结构,并在
残差结构上进行改造:首先,由于深度卷积本身不能改变特征的通道数,并且在输入通道较少的情况下无法较好
地提取特征,因此在残差分支中,使用逐点卷积来先增加后减少特征通道数,使得深度卷积层工作在高维的特征
之中,与之前的残差分支正好相反;其次,激活函数在高维的空间中能够有效地增加非线性能力,但是在低维空
间中会破坏特征的表达能力,因为第 2 个逐点卷积起到降维的作用,所以去掉第 2 个逐点卷积之后的激活层,也
就是使用了线性的 Bottleneck,如图 6 所示.由于提升了网络的表达能力,MobileNet V2 [10] 只需要 MobileNet V1 [8]
的 2/5 的计算量就能达到相同的性能.
(a) 正常的 Residual Block, (b) 反残差结构(Inverted residual block),
残差分支通道数小于主分支通道数 残差分支通道数大于主分支通道数
Fig.6
图 6
Ma 等人 [12] 发现,FLOPs 作为一个间接的指标,只能大致地估测运行速度,与速度并不完全相符.主要原因有
两方面:一是很多操作无法被算入 FLOPs 中,例如内存访问成本(memory access cost,简称 MAC)、并行化程度等;
二是受到计算平台的影响.Ma 等人 [12] 提出了 4 种轻量级网络的指导方案:(1) 相同的输入输出通道数能够减少
内存访问成本(MAC);(2) 过多的分组卷积会增加 MAC;(3) 网络的碎片化程度会减少并行化程度;(4) 不能忽
略元素级操作.
[9]
根据以上 4 条方案,在 ShuffleNet V1 的基础上进行改进,如图 7 所示.
Channel
split
1×1 GConv 1×1 GConv 1×1 GConv
1×1 Conv
BN ReLU BN ReLU 3×3 DWConv BN ReLU
Channel Channel BN ReLU (stride=2) 3×3 DWConv
shuffle 3×3 AVGPool shuffle 3×3 DWConv BN (stride=2)
(stride=2) BN
3×3 DWConv BN 1×1 GConv
3×3 DWConv (stride=2) 1×1 Conv BN ReLU 1×1 GConv
BN BN
BN ReLU BN ReLU
1×1 GConv 1×1 GConv
Concat Concat
BN BN
Channel Channel
Add Concat shuffle shuffle
ReLU ReLU
(a) (b) (c) (d)
Fig.7
图 7
图 7(a)、图 7(b)分别为空间尺度不变的 ShuffleNet V1 Unit 和空间尺度变小的 ShuffleNet V1 Unit,图 7(c)、
图 7(d)分别为空间尺度不变的 ShuffleNet V2 Unit 和空间尺度变小的 ShuffleNet V2 Unit.图 7(c)利用通道分割