轻量级网络之mobilenet

论文简介

introduction

  • 构建小网络的主要方法就是压缩预训练网络或者直接训练小网络。、
  • 本文中提出了一种方法,可以根据资源限制或者实际使用情况去调节网络。

method

depthwise和pointwise convolution

  • 之前的卷积都是使用NXNXC的kernel,对之前的feature map进行通道融合与卷积,论文中将他拆分为2个子过程:NXNX1的kernel做depthwise convolution和1X1XC的pointwise convolution操作。NXNX1的kernel做滤波,1X1XC的kernel做特征融合。将传统的卷积操作拆分成这2个步骤,计算量只是之前的$\frac{1}{N}+\frac{1}{D_k^2}$倍,大大减小。其中$N$是输入的feature map的层数,$D_k$是卷积filter的边长。

模型结构和训练过程

  • 结构见论文,需要注意的是,第一层是标准的卷积层,除了第一层和最后一层的FC层,其他每个layer后面都加了BN和RELU,最后使用平均池化和FC处理后,经过softmax,得到最终的输出。
  • Mobilenet使用异步梯度下降和RMSProp进行训练。

Width Multiplier:Thinner Models

  • 前面提到的基本的mobilenet,为了使得网络大小可以调整,论文引入了超参数$\alpha$,可以调整feature layer中channel的个数,假设之前是M,则调整后为$\alpha M$,因此模型参数可以在之前的基础上,再次缩小$\alpha^2$倍。

Resolution Multiplier: Reduced Representation

  • 引入超参数$\rho$,控制输入feature layer的分辨率,假设之前变长是$D_F$,则调整后为$\rho D_F$,因此网络参数又可以缩减$\rho ^2$倍。

实验

  • 作者对depthwise convolution与网络宽度的影响做了实验研究。实验结果证明,减小网络宽度比减小网络深度导致的结果的性能要更好一些。
  • 模型准确度在$\alpha>0.25$之前下降的都是比较缓和的。
  • 作者在细粒度的识别、大规模地理定位、面部属性以及物体检测等方面给予SSD都做了实验,结果证明mobilenet不会大幅下降特定任务的准确度。