【论文阅读笔记】MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications

北战南征 提交于 2020-01-31 02:23:07

(一)论文地址:

《MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications 》

(二)解决的问题:

如今卷积神经网络已经证明了它在计算机视觉方向的优越性,越来越多的更深、更复杂的深度网络被提出来,准确率越来越高,而相应的这些网络在大小和处理速度上都没有更有效;

因此,在许多现实世界的应用中,比如机器人、无人驾驶、增强现实等,这些平台上往往都需要实时反馈和有限的计算能力,因此作者提出了 MobileNetsMobileNets 这一系列高效网络,实现了低延迟、高准确的平衡,可应用于多种视觉任务;

(三)MobileNetsMobileNets 的核心思想:

MobileNetsMobileNets 的核心聚焦于实现一个低延迟、高效率的卷积神经网络,使其能够应用于各种计算能力有限的嵌入式系统中;

在这里插入图片描述

为此,作者提出了:

  1. MobileNetsMobileNets 的网络结构,核心是将常规的卷积层分解成一个 depthwisedepthwise separableseparable convolutionsconvolutions(深度分离卷积层,简称 DWconvDWconv)和一个 pointwisepointwise convolutionsconvolutions(即1×11×1 卷积核大小的卷积层,简称 PWconvPWconv),从而有更小的参数,并且计算消耗更少;
  2. 两个网络模型构建的超参数(hyperparametershyper-parameters),用于轻松地根据嵌入式设备或平台的计算能力限制和任务需求,匹配合适的低延迟、高效率的网络结构;

(四)传统卷积的概念:

对于传统的卷积层(步长为 11 ),假设输入的特征图大小为 DF×DF×MD_F×D_F×M,输出大小为 DF×DF×MD_F×D_F×M(其中DkD_k为特征图的宽度,MMNN 是特征图的通道数),卷积核的宽度为 DK×DKD_K×D_K,则图示表示为:

在这里插入图片描述

即卷积层的参数可表示为,大小为 DK×DK×MD_K×D_K×MNN 组卷积;

此时参数量为:

DK×DK×M×ND_K×D_K×M×N

卷积层的计算消耗为:

DK×DK×M×N×DF×DFD_K×D_K×M×N×D_F×D_F

(五)DWconvDWconv 的概念:

depthwisedepthwise separableseparable convolutionsconvolutions(深度分离卷积层,简称 DWconvDWconv)的核心是,不同于传统卷积方式,这里首先将特征图的每个 channelchannel 分离,再分别用通道数为 11 的卷积核对特征图的每个 channelchannel 分别做卷积;

假设输入的特征图大小为 DF×DF×MD_F×D_F×M,卷积核的宽度为 DK×DKD_K×D_K

在这里插入图片描述
此时 DWconvDWconv 可以表示为,大小为 DK×DK×1D_K×D_K×1MM 组卷积;

DWconvDWconv 的计算消耗为:

DK×DK×M×1×DF×DFD_K×D_K×M×1×D_F×D_F

因此,DWconvDWconv 的计算消耗仅为传统方式的 1/N1/N 倍;

(六)PWconvPWconv 的概念:

DWconvDWconv 存在的问题就是,输入输出特征图的通道数(channelschannels)必须相同,并且每个通道的输出是相互分离的;

为了解决这个问题,作者提出了使用 PWconvPWconv(即1×11×1 卷积核大小的卷积层)来改变 DWconvDWconv 输出特征图通道数,并且将不同通道的输出进行线性融合;

在这里插入图片描述

此时 PWconvPWconv 可以表示为,大小为 1×1×M1×1×MNN 组卷积;

计算消耗为:

M×N×DF×DFM×N×D_F×D_F

此时,对于一个传统卷积:

在这里插入图片描述
就可以将它转换成如图的结构:

在这里插入图片描述

(七)MobileNetsMobileNets 的高效性:

由上可知,传统卷积的计算消耗为:

在这里插入图片描述

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

在这里插入图片描述

二者相比得:

在这里插入图片描述

由于 NN 远大于 DK2D_K^2,而且在2014年的 ImageNetImageNet 中证明,小卷积核相比于大卷积核更有优势,故 DK2D_K^2 通常为 33,因此 DWconvDWconv 加上 PWconvPWconv 的方法代替传统卷积,能够节省 898-9 倍的计算消耗,并且准确率下降很小;

同时由于 1×11×1 卷积不需要预先分配内存,因此可以快速地通过 GEMMGEMM(通用矩阵乘法)计算;

而且 MobileNetsMobileNets 中大部分的卷积都是 1×11×1 卷积,故大大提高了计算效率:

在这里插入图片描述

(七)MobileNetsMobileNets 的网络结构:

在这里插入图片描述

需要注意的是,由于 MobileNetsMobileNets 注重于网络结构的高效性,参数较少,因此下采样没有采用 maxmax poolingpooling 的方式,而是使用了 stride=2stride=2DWconvDWconv 来实现;

并且参数较少也有效地防止了过拟合,因此 MobileNetsMobileNets 并不需要太多的数据增强或者正则化;

(八)WidthWidth MultiplierMultiplier:更小的模型

作者提出的两个选择模型的超参数之一就是 WidthWidth MultiplierMultiplier,记为 α\alpha,用来进一步减小(或者说调整) MobileNetsMobileNets 的大小;

对于一个给定的特征层,α\alpha 可以取 1,0.75,0.51,0.75,0.5 之一,特征层的通道数 MM 就变成了 α×M\alpha×M

此时的计算消耗为:

在这里插入图片描述

α=1\alpha=1 时就是一个典型的 MobileNetsMobileNets

α<1\alpha<1 时,计算消耗大概减小为原来的 α2\alpha^2 倍;

(九)ResolutionResolution MultiplierMultiplier:简化表示法

作者提出的第二个选择模型的超参数就是 ResolutionResolution MultiplierMultiplier,记为 β\beta,用来进一步减小 MobileNetsMobileNets 的计算消耗;

对于一个给定的网络,β\beta 的取值范围为 (0,1](0,1],输入特征图的宽度 DFD_F 就变成了 β×DF\beta×D_F

此时的计算消耗为:

在这里插入图片描述

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

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!