MobileNet论文阅读笔记
MobileNet
(1)文章介绍
- 该研究由Google于2017年4月发布于archive。
- 该研究通过深度可分离卷积核减少了运算复杂度并缩减了模型体积。
- 研究者提出了两个超参数以调节模型规模。
- 在图像分类、目标检测、面部属性识别及分类任务中验证了方法的有效性。
(2)核心思想
将标准的Convolutional层划分为DepthWise Convolution和PointWise Convolution(1×1)两部分。具体而言,一个DepthWise Separable滤波器包含DepthWise步骤和PointWise步骤。
对于标准卷积层来说,在给定输入特征图尺寸为D_f×D_f×M时(其中M表示输入通道数),其输出特征图尺寸将变为D_f×D_f×N(N代表输出通道数)。每个卷积核包含M×N个权重参数。(此处默认stride取值为1且padding设置为0,则输出尺寸与输入尺寸在长宽上保持一致)

标准卷积计算: F和G分别表示输入和输出特征图,(s=0, p=1, h_o = h_in -k + 1)

计算量分析:(为了确定D_f \times D_f个具体数值,在此过程中需对每一个数值逐一进行计算。具体而言,在对每一个数值进行处理时,需对其对应的滑动窗口内的所有原始数据点执行乘法运算。完成所有通道的数据处理后,在这一过程中需将各个通道上的数据结果进行汇总求和,并且在此步骤中所涉及的加法运算量可以被忽略)

第一步为depth wise卷积
在输入的所有通道上应用各自的D_k × D_k × 1滤波器完成一次计算操作后总共生成了M张D_f \times D_f \times 1大小的特征图。这些特征图各自从不同的输入通道中提取特定信息,并且彼此之间相互独立。

深度-wise计算(相较于标准卷积而言),其求和符号中的下标不含m项(这表明各个通道之间相互独立),这里将m次操作被统一归纳为一个公式(根据论文描述),通常表示深度-wise卷积核的尺寸为D_k × D_k × M;然而这与标准卷积核存在差异)。其中M并不表示卷积核所具有的通道数量。

计算量分析: (需要计算出 D_f * D_ f个值,每次的计算量为 D_k * D_k, 循环M次)

第二步为point wise卷积
对于上一步获得的M个特征图分别作为M个输入通道,在此基础上应用N组1×1×M尺寸的滤波器组执行标准卷积操作,最终生成D_f × D_f × N大小的空间位置特征图。

计算量分析: 计算量按标准卷积的公式,其中D_k = 1, 计算量为11MND_f*D_f
节约计算量分析:

一般卷积核为3*3,计算量能节省** 9倍** 左右。
(3)网络结构设计
- 局部结构
避免使用 deptwise separable convolution 在输入层。
每一层之后都会紧跟 bn 和 ReLU 作用。
然而,在最后一层全连接层中不会应用非线性激活函数,默认将输出直接接入 softmax 函数。
避免使用 deptwise separable convolution 在输入层。
每一层之后都会紧跟 bn 和 ReLU 作用。
然而,在最后一层全连接层中不会应用非线性激活函数,默认将输出直接接入 softmax 函数。

- 总的网络结构

- 采样率借助第一层卷积以及深度可分离卷积层中stride为2的部分实现。
- 平均池化操作旨在降低输出分辨率至单像素尺寸。
- MobileNet网络总共有28个层构成。
(3)实验经验
- 大部分计算负荷量集中于单通道卷积操作中,在GEMM方法中存在将图像转换为列的操作,在这种情况下仅需进行矩阵乘法运算即可完成卷积过程。
在GEMM方法中存在将图像转换为列的操作,在这种情况下仅需进行矩阵乘法运算即可完成卷积过程。
在这种情况下仅需进行矩阵乘法运算即可完成卷积过程。

在深度可分离卷积中使用极低水平的weight decay(L2 regularization)
(4)新的超参数
- width multiplier: thinner models
在某一层中对输入与输出通道进行压缩处理\alpha倍后,在参数设置为1、0.75、0.5及0.25四个值的情况下,则可使计算量与参数规模均得以通过优化减少至\alpha^{2}倍。
- resolution multiplier:Reduced Representation
因子\rho将网络输入的大小降至224,192,160,128,可以将计算量减少\rho^{2}倍
- 将网络变瘦比将网络变浅的效果要好,说明网络深度的重要性。
