《MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications 》
(一)论文地址:
《MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications 》
(二)解决的问题:
如今卷积神经网络已经证明了它在计算机视觉方向的优越性,越来越多的更深、更复杂的深度网络被提出来,准确率越来越高,而相应的这些网络在大小和处理速度上都没有更有效;
因此,在许多现实世界的应用中,比如机器人、无人驾驶、增强现实等,这些平台上往往都需要实时反馈和有限的计算能力,因此作者提出了 MobileNets 这一系列高效网络,实现了低延迟、高准确的平衡,可应用于多种视觉任务;
(三)MobileNets 的核心思想:
MobileNets 的核心聚焦于实现一个低延迟、高效率的卷积神经网络,使其能够应用于各种计算能力有限的嵌入式系统中;

为此,作者提出了:
- MobileNets 的网络结构,核心是将常规的卷积层分解成一个 depthwise separable convolutions(深度分离卷积层,简称 DWconv)和一个 pointwise convolutions(即1×1 卷积核大小的卷积层,简称 PWconv),从而有更小的参数,并且计算消耗更少;
- 两个网络模型构建的超参数(hyper−parameters),用于轻松地根据嵌入式设备或平台的计算能力限制和任务需求,匹配合适的低延迟、高效率的网络结构;
(四)传统卷积的概念:
对于传统的卷积层(步长为 1 ),假设输入的特征图大小为 DF×DF×M,输出大小为 DF×DF×M(其中Dk为特征图的宽度,M、N 是特征图的通道数),卷积核的宽度为 DK×DK,则图示表示为:

即卷积层的参数可表示为,大小为 DK×DK×M 的 N 组卷积;
此时参数量为:
DK×DK×M×N
卷积层的计算消耗为:
DK×DK×M×N×DF×DF
(五)DWconv 的概念:
depthwise separable convolutions(深度分离卷积层,简称 DWconv)的核心是,不同于传统卷积方式,这里首先将特征图的每个 channel 分离,再分别用通道数为 1 的卷积核对特征图的每个 channel 分别做卷积;
假设输入的特征图大小为 DF×DF×M,卷积核的宽度为 DK×DK;

此时 DWconv 可以表示为,大小为 DK×DK×1 的 M 组卷积;
DWconv 的计算消耗为:
DK×DK×M×1×DF×DF
因此,DWconv 的计算消耗仅为传统方式的 1/N 倍;
(六)PWconv 的概念:
DWconv 存在的问题就是,输入输出特征图的通道数(channels)必须相同,并且每个通道的输出是相互分离的;
为了解决这个问题,作者提出了使用 PWconv(即1×1 卷积核大小的卷积层)来改变 DWconv 输出特征图通道数,并且将不同通道的输出进行线性融合;

此时 PWconv 可以表示为,大小为 1×1×M 的 N 组卷积;
计算消耗为:
M×N×DF×DF
此时,对于一个传统卷积:

就可以将它转换成如图的结构:

(七)MobileNets 的高效性:
由上可知,传统卷积的计算消耗为:

DWconv 加上 PWconv 代替传统卷积后的计算消耗为:

二者相比得:

由于 N 远大于 DK2,而且在2014年的 ImageNet 中证明,小卷积核相比于大卷积核更有优势,故 DK2 通常为 3,因此 DWconv 加上 PWconv 的方法代替传统卷积,能够节省 8−9 倍的计算消耗,并且准确率下降很小;
同时由于 1×1 卷积不需要预先分配内存,因此可以快速地通过 GEMM(通用矩阵乘法)计算;
而且 MobileNets 中大部分的卷积都是 1×1 卷积,故大大提高了计算效率:

(七)MobileNets 的网络结构:

需要注意的是,由于 MobileNets 注重于网络结构的高效性,参数较少,因此下采样没有采用 max pooling 的方式,而是使用了 stride=2 的 DWconv 来实现;
并且参数较少也有效地防止了过拟合,因此 MobileNets 并不需要太多的数据增强或者正则化;
(八)Width Multiplier:更小的模型
作者提出的两个选择模型的超参数之一就是 Width Multiplier,记为 α,用来进一步减小(或者说调整) MobileNets 的大小;
对于一个给定的特征层,α 可以取 1,0.75,0.5 之一,特征层的通道数 M 就变成了 α×M;
此时的计算消耗为:

当 α=1 时就是一个典型的 MobileNets;
当 α<1 时,计算消耗大概减小为原来的 α2 倍;
(九)Resolution Multiplier:简化表示法
作者提出的第二个选择模型的超参数就是 Resolution Multiplier,记为 β,用来进一步减小 MobileNets 的计算消耗;
对于一个给定的网络,β 的取值范围为 (0,1],输入特征图的宽度 DF 就变成了 β×DF;
此时的计算消耗为:

作者也列出了使用两个超参数之后,计算消耗的变化:
