一、引言
更加高效的 MobileNetV2 继续使用了 MobileNetV1 提出的深度可分离卷积(Depthwise separable convolutions),同时引入了线性瓶颈结构(Linear Bottlenecks),反向残差结构(Inverted Residuals),使得参数量和计算量减少,速度提升,精度更高。
二、MobileNetV2主要创新点
MobileNetV2 使用卷积核为3x3的深度可分离卷积使得计算量比起标准卷积减小8~9倍(具体计算参考 MobileNetV1 )
1.线性瓶颈结构(Linear Bottlenecks)
- n层神经网络,每一层Li都有一个纬度为hi?wi?di?的激活张量(hi??wi?个像素"pixels",di?维"dimensions")。一个真实图像输入集,对每一层Li?而言,经过激活层集后形成了一个兴趣流形(manifold of interest) ,即有用的信息。
- 神经网络中的兴趣流形可以嵌入低维子空间中。即,当我们查看深卷积层中所有单独的d通道像素时,这些值中编码的信息实际上在某些流形中,而这些流形又可以嵌入低维子空间中。
也就是说为了得到Feature Map中有用的信息,兴趣流形(manifold of interest)必须要在其维数空间或者子空间中。
- 宽度因子允许我们降低激活空间维数,使得兴趣流形跨越整个空间,然而,深度卷积神经网络实际上具有非线性转换(如ReLU)时,这种作用失效了。
- 一般而言,如果由于一层变换ReLU (Bx)有一个非零量,映射到内部S的点是通过输入的线性变换B得到的,表明与全维输出对应的输入空间的部分是有限的线性变换。换句话说,深度网络只在输出域的非零量部分具有线性分类器的能力
- 另一方面,当ReLU使得通道崩溃时,它将丢失该通道中的信息。然而如果我们有很多通道,那么有用信息(manifold of interest)可能仍然保存在其他通道中。
- 经证明,如果输入流形可以嵌入到激活空间的一个显著的低维子空间中,那么ReLU转换在保存信息的同时,将所需的复杂性引入可表示函数集中。
综上,兴趣流形应该位于高维激活空间的低维子空间中的要求:
- 如果兴趣流形经过ReLU变换后仍然保持非零量,则对应线性变换
- 只有当输入流形位于输入空间的低维子空间中,ReLU能够保存输入流形的完整信息
由以上两点可得,假设兴趣流形是低维的,那么我们可以通过在卷积块中插入线性瓶颈层来捕获它。输入瓶颈的大小与内部大小的比值称为扩展比(expansion radio)
从上图的例子中看出 在低维空间中使用ReLU激活函数会损失较多信息。直观理解就是,ReLU会使得负值变0,因此若是维度较低的空间,相比较高维度的空间有更大的概率会使某一维度消零(通道崩塌)
为了解决由于非线性激活函数造成的信息损失问题。提出了线性瓶颈结构(Linear Dottleneck),本质上是不带ReLU的1x1的卷积层。
如上图,经过最后一层点卷积(PW)后,特征空间维数减小(原因见下文),为了不损失太多特征信息,删去激活函数ReLU,而改为Linear函数。
2.反向残差结构(Inverted Residuals)
- 瓶颈部分包含了所有必要的信息,而扩展层只是作为伴随着张量非线性转换的细节实现,因此我们在瓶颈间使用shortcut。
- 插入shortcuts的动机类似于经典的残差连接:我们想要提高梯度跨数层传播的能力。然而,反向设计的内存效率要高得多,因此提出Inverted Residuals
残差网络结构与反残差网络结构对比图:
- MobileNetV2 先使用点卷积(PW)对输入特征进行升维操作(如上图6倍),然后经过深度卷积(DW)提取特征【DW输入输出特征空间维数相同】,再使用点卷积(PW)对深度卷积的输出特征进行线性组合同时降维(指定输出通道数)。降维后不再使用ReLU6激活,而是使用线性函数。
- 而ResNet 先降维 (0.25倍)、卷积、再升维恢复原大小。
3.MobileNetV2网络结构
1) 瓶颈层(不同stride,shortcuts使用不同)
仅有DW层的stride=1,瓶颈块的输入与输出拥有相同通道数时,该瓶颈层才使用shortcuts。
2)整体网络结构
第一层为全卷积层,接着是瓶颈层,最后使用平均池化层+点卷积层代替全连接层(减少参数数量核计算量)。
使用ReLU作为激活函数,并在训练过程中使用dropout和BN。
n为重复次数,c为输出通道数,t为扩展因子(5~10,实验使用t=6,大网络大扩展率,小网络小扩展率),所有卷积核大小为3x3。
三、结论
MobileNetV2 提出了线性瓶颈结构(Linear Bottlenecks)以减少参数数量和计算量;
提出反向残差结构(Inverted Residuals),减少参数数量,增强梯度跨层传播能力,特征表达能力,解决训练时因网络层数增加而出现的梯度消失问题;
使用平均池化和逐点卷积代替全连接层,减少参数数量。
参考资料
论文地址:https://arxiv.org/abs/1801.04381
图片部分来源:
- http://www.sohu.com/a/323612419_701739
- https://zhuanlan.zhihu.com/p/33075914