1. 概述
导读:这篇文章为移动和嵌入式设备应用提供了一个搞笑的网络模型MobileNets。该网络是使用depthwise分离卷积构建轻量级的神经网络。期间引入了两个全局超参数使得可以在网络时效与精度之间折中选择,这些参数可以使得开发者可以根据任务的实际需求选择网络的大小。文章提出的新模型在ImageNet数据集也上表现除了强大的性能,同样也可以将该模型运用到其它的场景下比如,目标检测。
现有的CNN网络为了获得更高的性能往往会将网络做得很深并且复杂,这必然会带来网络计算量大耗时。对于这个问题之前的解决办法是修剪预训练模型或是直接设计一个小型的网络结构。这篇文章给出的MobileNets采用的是depthwise分离卷积可以获得较少的网络运行时间与更小的网络。
2. 网络设计
2.1 Depthwise Separable Convolution
这里提出的新卷积是由两部分组成的:
- 1)depthwise卷积,它是使用一个filter在每个输入的channel上进行卷积运算;
- 2)pointwise卷积,使用卷积核为1x1的卷积去组合depthwise生成的特征,起到特征组合的作用;
下图2是这两种卷积的原理示意图:
对于特征图输入这里将其设为
D
F
∗
D
F
∗
M
D_F*D_F*M
DF∗DF∗M,其中
M
M
M代表输入的channel数目,
D
F
D_F
DF代表输入特征图的分辨率,按照标准卷积之后得到的特征图为
D
F
∗
D
F
∗
N
D_F*D_F*N
DF∗DF∗N,也就是说卷积之后特征图的分辨率未发生变化,只是通道数由
M
M
M变为了
N
N
N,这里卷积的卷积核大小为
D
K
∗
D
K
D_K*D_K
DK∗DK。那么这里对于标准的卷积其计算量可以表示为(这里的
D
F
D_F
DF代表的是输出的特征图分辨率,下面的也是含义,为毛不用不同的字母呀?这里还是尊重原文吧):
c
o
s
t
=
D
F
∗
D
F
∗
M
∗
N
∗
D
K
∗
D
K
cost=D_F*D_F*M*N*D_K*D_K
cost=DF∗DF∗M∗N∗DK∗DK
那么经过文章提出的新方法卷积,其计算量的分析如下,对于depthwise卷积,其计算量可以描述为(其中的1含义是逐输入channel卷积的):
c
o
s
t
1
=
D
F
∗
D
F
∗
M
∗
D
K
∗
D
K
∗
1
cost1=D_F*D_F*M*D_K*D_K*1
cost1=DF∗DF∗M∗DK∗DK∗1
对于pointwise卷积,其输入的特征是的维度是
M
∗
D
F
∗
D
F
M*D_F*D_F
M∗DF∗DF,之后便是使用标准的卷积去融合这些特征,那么pointwise卷积的计算量可以描述为:
c
o
s
t
2
=
D
F
∗
D
F
∗
M
∗
N
∗
1
∗
1
cost2=D_F*D_F*M*N*1*1
cost2=DF∗DF∗M∗N∗1∗1
那么将其总共的计算量与原始标准卷积的计算量进行对比:
r
a
t
i
o
=
c
o
s
t
1
+
c
o
s
t
2
c
o
s
t
=
D
F
∗
D
F
∗
M
∗
D
K
∗
D
K
∗
1
+
D
F
∗
D
F
∗
M
∗
N
∗
1
∗
1
D
F
∗
D
F
∗
M
∗
N
∗
D
K
∗
D
K
=
1
N
+
1
D
K
2
ratio=\frac{cost1+cost2}{cost}=\frac{D_F*D_F*M*D_K*D_K*1+D_F*D_F*M*N*1*1}{D_F*D_F*M*N*D_K*D_K}=\frac{1}{N}+\frac{1}{D_K^2}
ratio=costcost1+cost2=DF∗DF∗M∗N∗DK∗DKDF∗DF∗M∗DK∗DK∗1+DF∗DF∗M∗N∗1∗1=N1+DK21
2.2 Network Structure
下表是MobileNets的网络结构图,其中包含了28层。
下图是文章提出的卷积模块与传统卷积模块的对比:
运算量与参数量分析:
从上表中可以看到网络中的很大一部分参数和计算都是来自于1x1的卷积。
2.3 Width Multiplier: Thinner Models
为了能够进一步压缩网络,文章引入了参数
α
∈
(
0
,
1
]
\alpha \in(0,1]
α∈(0,1]来进一步压缩网络的计算量,该参数是用来对输入通道
M
M
M与输出通道
N
N
N进行缩放,从而得到
α
M
,
α
N
\alpha M,\alpha N
αM,αN,其计算量表示为:
c
o
s
t
=
D
F
∗
D
F
∗
α
M
∗
D
K
∗
D
K
∗
1
+
D
F
∗
D
F
∗
α
M
∗
α
N
∗
1
∗
1
cost=D_F*D_F*\alpha M*D_K*D_K*1+D_F*D_F*\alpha M*\alpha N*1*1
cost=DF∗DF∗αM∗DK∗DK∗1+DF∗DF∗αM∗αN∗1∗1
2.4 Resolution Multiplier: Reduced Representation
为了减少网络的计算量这里引入了分辨率因子
ρ
∈
(
0
,
1
]
\rho \in(0,1]
ρ∈(0,1],用以减少特征图的分辨率,因而卷积的计算量表示为:
c
o
s
t
=
ρ
D
F
∗
ρ
D
F
∗
α
M
∗
D
K
∗
D
K
∗
1
+
ρ
D
F
∗
ρ
D
F
∗
α
M
∗
α
N
∗
1
∗
1
cost=\rho D_F*\rho D_F*\alpha M*D_K*D_K*1+\rho D_F*\rho D_F*\alpha M*\alpha N*1*1
cost=ρDF∗ρDF∗αM∗DK∗DK∗1+ρDF∗ρDF∗αM∗αN∗1∗1
3. 实验结果
文章的网络在ImageNet数据集下与其它网络的性能对比:
与普通卷积网络的性能对比,在精度损失不大的情况下计算量与参数量都有了成倍的下降: