现在流行的 CNN,如 AlexNet、VGG、ResNet,虽然识别效果不错,但是模型的参数量和计算量巨大,不适合在移动端、嵌入式设备上运行。所以就出现了更轻量级更快速的的 CNN 设计,这里要讲述的是谷歌的 MobileNet 系列工作。


基础之不同的卷积

这里比较不同卷积的参数量和计算量(bias 项忽略不计),假设他们的输入输出大小是一样的:

输入大小:轻量级CNN之MobileNet系列 - 图1

输出大小:轻量级CNN之MobileNet系列 - 图2

  • 标准 Conv

卷积核大小为 轻量级CNN之MobileNet系列 - 图3
,那么

轻量级CNN之MobileNet系列 - 图4

轻量级CNN之MobileNet系列 - 图5

轻量级CNN之MobileNet系列 - 图6
表示参数量, 轻量级CNN之MobileNet系列 - 图7
表示乘加操作量,即计算量。

  • Group Conv

简称 GConv,具体原理详见A Tutorial on Filter Groups (Grouped Convolution)

GConv 卷积核大小为 轻量级CNN之MobileNet系列 - 图8
, 分组为 轻量级CNN之MobileNet系列 - 图9
,那么

轻量级CNN之MobileNet系列 - 图10

轻量级CNN之MobileNet系列 - 图11

  • Depthwise Conv

简称 DWConv,是 Group Conv 的极端,即分组 轻量级CNN之MobileNet系列 - 图12

轻量级CNN之MobileNet系列 - 图13

轻量级CNN之MobileNet系列 - 图14


MobileNetV1

MobileNetV1 [1]的核心思想就是 Depthwise Separable Conv 来代替标准 Conv,Depthwise Separable Conv 把标准卷积分解为一个 depthwise conv 和一个 轻量级CNN之MobileNet系列 - 图15
卷积(pointwise conv), 分别起到滤波和线性组合的作用,同时减少参数量和计算量。

轻量级CNN之MobileNet系列 - 图16

标准 Conv 和 Depthwise Separable Conv

Depthwise Separable Conv 的参数量和计算量:

轻量级CNN之MobileNet系列 - 图17

轻量级CNN之MobileNet系列 - 图18

相比于标准卷积,理论上的加速比例可达

轻量级CNN之MobileNet系列 - 图19

实验结果如下,MobileNet 采用 轻量级CNN之MobileNet系列 - 图20
的卷积核,所以一般可达 8-9 倍加速,而精度不损失太多。更多有意思的细节和实验请参考原文[1]。

轻量级CNN之MobileNet系列 - 图21


MobileNetV2

MobileNetV1 是类 VGG 的堆叠方式,更先进的方式是加入 ResNet 的 shortcut 连接,所以出现了 V2,核心就是 inverted residual block [2]。

  • residual block v.s. inverted residual block

和 Residual block 相比,

  1. 通道数:两边窄中间宽,所以叫 inverted
  2. 3*3 卷积改成 Depthwise Conv
  3. 去掉最后的 ReLU

轻量级CNN之MobileNet系列 - 图22

作者这么做的基础是 ReLU 会使得一些神经元失活,而高维的 ReLU 可以保留低维特征的完整信息,同时又不失非线性。所以采用中间宽 + ReLU 的方式来保留低维输入的信息。

  • V2 v.s. V1

V2 的参数量和计算量

轻量级CNN之MobileNet系列 - 图23

轻量级CNN之MobileNet系列 - 图24

虽然公式上看 V2 比 V1 计算量大了,其实 V2 可以用更低维的输入来达到同样的效果,所以实际上还是加速了。

实验结果如下,相比于 MobileNetV1 以及 ShuffleNetV1,MobileNetV2 都具有优势,但说实话,并不明显。

轻量级CNN之MobileNet系列 - 图25


参考文献

[1] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.

[2] Sandler M, Howard A, Zhu M, et al. MobileNetV2: Inverted Residuals and Linear Bottlenecks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4510-4520.
https://zhuanlan.zhihu.com/p/45209964
https://zhuanlan.zhihu.com/p/45209964