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//arxiv.org/abs/1704.04861
intro: depthwise separable conv, multiplier
MobileNets使用深度可分离卷积将卷积过程分解成Depthwise和Pointwise两步的卷积过程,减少了模型的计算量和参数。另外通过设置Width Multiplier( α \alpha α)和Resolution Multiplier( ρ \rho ρ)减小模型宽度和表达尺寸。
Depthwise Separable Conv:
如下图的卷积过程,输入的feature map为 S ∗ S ∗ M S*S*M S∗S∗M,输出为N个通道,使用的卷积核大小为 F ∗ F ∗ M F*F*M F∗F∗M,数目为 N N N个,那么需要的计算量为 F ∗ F ∗ S ∗ S ∗ M ∗ N F*F*S*S*M*N F∗F∗S∗S∗M∗N。在MobileNet中,将这个卷积过程为成两步卷积,第一步:先用 M M M个尺寸为 F ∗ F ∗ 1 F*F*1 F∗F∗1的卷积核与输入的feature map进行卷积,每个卷积核只与输入的feature map中的一个通道进行卷积,得到 M M M个单通道的卷积结果;第二步:使用 N N N个 1 ∗ 1 ∗ M 1*1*M 1∗1∗M的卷积核对上一步得到的 M M M个通道的卷积结果进行联合,最后得到与普通卷积相同的结果,计算量为 F ∗ F ∗ S ∗ S ∗ M + S ∗ S ∗ M ∗ N F*F*S*S*M+S*S*M*N F∗F∗S∗S∗M+S∗S∗M∗N。
普通卷积与深度可分离卷积的计算量的比值为: ( F ∗ F ∗ S ∗ S ∗ M + S ∗ S ∗ M ∗ N ) / ( F ∗ F ∗ S ∗ S ∗ M ∗ N ) = 1 / N + 1 / F 2 (F*F*S*S*M+S*S*M*N)/(F*F*S*S*M*N)=1/N+1/F^2 (F∗F∗S∗S∗M+S∗S∗M∗N)/(F∗F∗S∗S∗M∗N)=1/N+1/F2。N的值一般较大,如果使用3*3的卷积核,即 F = 3 F=3 F=3,那么计算计算量约为原来的1/9。
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] α,α∈(0,1],减少通道数。
Resolution Multiplier:将模型的输入尺寸乘以一个因子 ρ , ρ ∈ ( 0 , 1 ] \rho, \rho \in (0,1] ρ,ρ∈(0,1],减小表达尺寸。
还没有评论,来说两句吧...