赞
踩
论文在 ShuffleNetV1 的基础上探讨了多种轻量化网络的准则,并提出 ShuffleNetV2。实验证明 ShuffleNetV2 在准确率和实时性上均取得了更佳结果。
当前,设计网络结构的间接考虑因素是计算复杂度,如 FLOPs(Floating Point Operations)。但是,模型最终的速度等也取决于如内存访问和平台特性等。基于系列实验,论文提出设计网络的准则,并得到 ShuffleNetV2。实验证明,ShuffleNetV2 在平衡速度和精度方面达到 SOTA。
通常使用浮点运算次数 F L O P s {\rm FLOPs} FLOPs衡量模型计算复杂度,但该项指标并不等同于模型速度。如 M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2明显快于 N A S N E T {\rm NASNET} NASNET- A {\rm A} A,尽管二者的 F L O P s {\rm FLOPs} FLOPs相当。即,不能仅将 F L O P s {\rm FLOPs} FLOPs作为设计轻量级模型的基本准则。
F L O P s {\rm FLOPs} FLOPs和速度的差异主要在于:许多重要的影响速度的因素如内存访问代价 M A C {\rm MAC} MAC和并行程度等并没有考虑在 F L O P s {\rm FLOPs} FLOPs中,具有相同 F L O P s {\rm FLOPs} FLOPs的操作在不同平台下可能具有不同的运行时间。
基于以上两点,作者提出了设计网络结构的新准则。
论文的对比实验主要基于英伟达 G P U {\rm GPU} GPU和 A R M {\rm ARM} ARM。
Equal channel width minimizes memory access cost (MAC) 当前轻量级模型多采用深度可分离卷积,其中逐点卷积占据了总计算量的绝大部分。逐点卷积的计算量为 B = h w c 1 c 2 B=hwc_1c_2 B=hwc1c2,其中 h × w h\times w h×w为特征图大小, c 1 c_1 c1和 c 2 c_2 c2分别为输入特征图和输出特征图的通道数。考虑可访问内存足够大,则 M A C {\rm MAC} MAC为 h w ( c 1 + c 2 ) + c 1 c 2 hw(c_1+c_2)+c_1c_2 hw(c1+c2)+c1c2,可写作: M A C = h w ( c 1 + c 2 ) + B h w (1) {\rm MAC}=hw(c_1+c_2)+\frac{B}{hw}\tag{1} MAC=hw(c1+c2)+hwB(1)
对 c 1 + c 2 c_1+c_2 c1+c2使用均值不等式: M A C ≥ 2 h w B + B h w (2) {\rm MAC}\geq2\sqrt{hwB}+\frac{B}{hw}\tag{2} MAC≥2hwB +hwB(2)
当且仅当
c
1
=
c
2
c_1=c_2
c1=c2时
M
A
C
{\rm MAC}
MAC取最小。即,输入特征图和输出特征图通道数越接近于
1
:
1
1:1
1:1,
M
A
C
{\rm MAC}
MAC越小。
Excessive group convolution increases MAC 分组卷积通过将输入特征图的通道稀疏化来减少模型计算复杂度。由上一部分,分组卷积的
M
A
C
{\rm MAC}
MAC可表示为:
M
A
C
=
h
w
(
c
1
+
c
2
)
+
c
1
c
2
g
=
h
w
c
1
+
B
g
c
1
+
B
h
w
(3)
由上式可以得到,在固定输入特征图形状
h
×
w
×
c
1
h\times w\times c_1
h×w×c1和
F
L
O
P
s
{\rm FLOPs}
FLOPs的前提下,
M
A
C
{\rm MAC}
MAC随着分组数
g
g
g的增大而增大。
Network fragmentation reduces degree of parallelism 在许多网络结构中,多路并行结构的使用很常见。为了量化该结构如何影响模型性能,作者做了以下对比实验:
Element-wise operations are non-negligible
Conclusion and Discussions 设计网络结构准则:(1)输入特征图和输出特征图的通道数相当;(2)考虑分组卷积的影响;(3)减少分路数;(4)减少逐点卷积。
Review of ShuffleNetV1
Channel Split and ShuffleNetV2 在
S
h
u
f
f
l
e
N
e
t
V
1
{\rm ShuffleNetV1}
ShuffleNetV1的基础上使用通道分离:
具体地,对于输入通道数为
c
c
c的特征图,首先将其分为通道数分别为
c
−
c
′
c-c'
c−c′和
c
′
c'
c′两个分支。其中一个分支使用恒等连接,另一个分支使用输入通道数与输出通道数相同的级联卷积操作。
S
h
u
f
f
u
l
e
N
e
t
V
2
{\rm ShuffuleNetV2}
ShuffuleNetV2结构:
论文提出将 F L O P s {\rm FLOPs} FLOPs和速度等共同作为设计网络结构的准则,进而提出 S h u f f l e N e t V 2 {\rm ShuffleNetV2} ShuffleNetV2。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。