MobileNets -Efficient Convolutional Neural Networks for Mobile Vision Applications 论文解读

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
author: Andrew G. Howard et. al
aiXiv:https://arxiv.org/abs/1704.04861
intro: depthwise separable conv, multiplier

MobileNets使用深度可分离卷积将卷积过程分解成Depthwise和Pointwise两步的卷积过程,减少了模型的计算量和参数。另外通过设置Width Multiplier(α\alpha)和Resolution Multiplier(ρ\rho)减小模型宽度和表达尺寸。

Depthwise Separable Conv:
如下图的卷积过程,输入的feature map为 SSMS*S*M,输出为N个通道,使用的卷积核大小为FFMF*F*M,数目为NN个,那么需要的计算量为FFSSMNF*F*S*S*M*N。在MobileNet中,将这个卷积过程为成两步卷积,第一步:先用MM个尺寸为FF1F*F*1的卷积核与输入的feature map进行卷积,每个卷积核只与输入的feature map中的一个通道进行卷积,得到MM个单通道的卷积结果;第二步:使用NN11M1*1*M的卷积核对上一步得到的MM个通道的卷积结果进行联合,最后得到与普通卷积相同的结果,计算量为FFSSM+SSMNF*F*S*S*M+S*S*M*N
普通卷积与深度可分离卷积的计算量的比值为:(FFSSM+SSMN)/(FFSSMN)=1/N+1/F2(F*F*S*S*M+S*S*M*N)/(F*F*S*S*M*N)=1/N+1/F^2。N的值一般较大,如果使用3*3的卷积核,即F=3F=3,那么计算计算量约为原来的1/9。
MobileNets -Efficient Convolutional Neural Networks for Mobile Vision Applications 论文解读
MobileNet的结构:

  • 在Depthwise conv和PointWise conv后面都加上batch norm和ReLu;
  • 使用带步长的Depthwise conv代替池化层;
  • 网络的最后是全连接和softmax层,全连接层之前使用平均池化将空间分辨率转为1;

由于MobileNet相对比较小,在训练中不容易过拟合,因此对正则化和数据集扩增的需求较小。另外在训练中没有使用side head或者label smoothing,并且限制了图片crop的尺寸减小distortion的程度。文章还发现由于模型的参数很少,不适用或者很小的权重衰减十分重要。

Width and Resolution Multiplier:
Width Multiplier:将模型的宽度乘以一个因子α,α(0,1]\alpha, \alpha \in (0,1],减少通道数。
Resolution Multiplier:将模型的输入尺寸乘以一个因子ρ,ρ(0,1]\rho, \rho \in (0,1],减小表达尺寸。