《MobileNets-v1原始论文:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

MobileNet模型是Google针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想便是depthwise separable convolution(深度可分离卷积)。
MobelNets-v1重点放在优化延迟(latency),兼顾模型大小。
一、“深度可分离卷积”(Mobilenet-v1提出)
假设某一网络卷积层,其卷积核大小为3×3,输入通道为16(下图中通道数为
3
3
3 作为示例),输出通道为32;
- 常规卷积操作是将32个3×3×16的卷积核作用于16通道的输入图像,则根据卷积层参数量计算公式,卷积计算+卷积参数量+卷积计量量,得到所需参数为
32
∗
(
3
∗
3
∗
16
+
1
)
=
4640
32*(3*3*16+1)= 4640
32∗(3∗3∗16+1)=4640个。

- 深度可分离卷积:若先用16个、大小为3×3的卷积核(331)作用于16个通道的输入图像,得到了16个特征图,在做融合操作之前,接着用32个大小为1×1的卷积核
(
1
∗
1
∗
16
)
(1*1*16)
(1∗1∗16) 遍历上述得到的16个特征图,根据卷积层参数计算公式,所需参数为
(
3
∗
3
∗
1
∗
16
+
16
)
+
(
1
∗
1
∗
16
∗
32
+
32
)
=
706
(3*3*1*16+16) + (1*1*16*32+32) = 706
(3∗3∗1∗16+16)+(1∗1∗16∗32+32)=706个。

上述即为深度可分离卷积的作用,通俗的讲,普通卷积层的特征提取与特征组合一次完成并输出,而深度可分离卷积将特征提取与特征组合分开进行:
- 先用厚度为1的
3
×
3
3×3
3×3 的卷积核(depthwise分层卷积;depthwise convolutions );
- 再用
1
×
1
1×1
1×1 的卷积核(pointwise 卷积;pointwise convolutions)调整通道数;
由此可以看出,深度可分离卷积可大大减少模型的参数,其具体结构如下图(左边为普通卷积层结构,右边为深度可分离卷积结构):

- 在进行 deepthwise(DW) 卷积时只使用了一种维度为in_channels的卷积核进行特征提取(没有进行特征组合);
- 在进行 pointwise(PW) 卷积时只使用了output_channels 种 维度为in_channels 1*1 的卷积核进行特征组合。
参考资料:
轻量化网络——MobileNet
深度学习在图像处理中的应用(tensorflow2.4以及pytorch1.10实现)
轻量级网络-Mobilenet系列(v1,v2,v3)
CNN模型合集 | 21 MobileNet V1/V2
网络解析(二):MobileNets详解