【论文标题】MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications,即面向移动视觉应用的高效卷积神经网络—MobileNetV1.
MobileNet是一种轻量化网络,可以部署在移动端(如智能手机)和终端(新零售、无人驾驶、智能安防摄像头等)进行边缘计算。
边缘计算: 模型在终端设备上进行本地推理,省去了网络传输和通信延迟,保护了数据安全,但同时对终端设备的计算性能、模型轻量化和加速推理、嵌入式芯片设计都提出了软硬件一体化、软硬件协同设计的更高要求。
主要从以下四方面进行总结:
-
深度可分离卷积(Depthwise Separable Convolution)
-
MobileNetV1网络结构
-
宽度超参数(Width Multiplier)
-
分辨率超参数(Resolution Multiplier)
1. 深度可分离卷积
深度可分离卷积将标准卷积分为深度卷积(depthwise convolution)和逐点卷积(pointwise convolution,即1×1卷积)。
标准卷积
可以看到,标准卷积中,每个filter的通道数都等于输入的通道数,而filter的个数等于输出的通道数,一个更直观的卷积动态过程
深度可分离卷积
深度卷积: 每个filter的通道数都为1,filter的个数等于输入的通道数,每个单通道的filter作用于输入的每个通道。
逐点卷积: filter的大小为N×C×1×1,其中N为输出通道个数,C为输入通道个数。
标准卷积 vs 深度可分离卷积
深度可分离卷积可以显著的降低计算量和参数量
假设输入大小为
D
F
×
D
F
×
M
D_F×D_F×M
DF×DF×M 的feature map,输出大小为
D
G
×
D
G
×
N
D_G×D_G×N
DG×DG×N 的feature map,标准卷积的filter大小为
D
K
×
D
K
×
M
×
N
D_K×D_K×M×N
DK×DK×M×N,其中
M
M
M 是输入通道数,
N
N
N 是输出通道数。
标准卷积的计算量:
D
K
×
D
K
×
M
×
N
×
D
G
×
D
G
D_K×D_K×M×N×D_G×D_G
DK×DK×M×N×DG×DG
深度可分离卷积的计算量:
D
K
×
D
K
×
M
×
D
G
×
D
G
+
M
×
N
×
D
G
×
D
G
D_K×D_K×M×D_G×D_G+M×N×D_G×D_G
DK×DK×M×DG×DG+M×N×DG×DG
标准卷积的参数量:
D
K
×
D
K
×
M
×
N
D_K×D_K×M×N
DK×DK×M×N
深度可分离卷积的参数量:
D
K
×
D
K
×
M
+
M
×
N
D_K×D_K×M+M×N
DK×DK×M+M×N
由此,我们可以得到以下倍数关系:
深度可分离卷积的计算量
标准卷积的计算量
=
D
K
×
D
K
×
M
×
D
G
×
D
G
+
M
×
N
×
D
G
×
D
G
D
K
×
D
K
×
M
×
N
×
D
G
×
D
G
=
1
N
+
1
D
K
2
\frac{深度可分离卷积的计算量}{标准卷积的计算量}=\frac{D_K \times D_K×M×D_G×D_G+M×N×D_G×D_G}{D_K×D_K×M×N×D_G×D_G} =\frac{1}{N}+\frac{1}{D_K^2}
标准卷积的计算量深度可分离卷积的计算量=DK×DK×M×N×DG×DGDK×DK×M×DG×DG+M×N×DG×DG=N1+DK21
深度可分离卷积的参数量
标准卷积的参数量
=
D
K
×
D
K
×
M
+
M
×
N
D
K
×
D
K
×
M
×
N
=
1
N
+
1
D
K
2
\frac{深度可分离卷积的参数量}{标准卷积的参数量} = \frac{D_K×D_K×M+M×N}{D_K×D_K×M×N} = \frac{1}{N}+\frac{1}{D_K^2}
标准卷积的参数量深度可分离卷积的参数量=DK×DK×M×NDK×DK×M+M×N=N1+DK21
MobileNetV1中使用的是
3
×
3
3\times3
3×3 的深度卷积,即
D
K
=
3
D_K=3
DK=3,所以相比于标准卷积,深度可分离卷积的计算量和参数量减少了8~9倍。
2. MobileNetV1的网络结构
MobileNetV1的网络结构如表1所示
!!!电脑没电了 下次不想听课的时候再继续写!!!