MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解

方法提出的动机及背景

   MobileNet主要从深度可分离卷积这一点着手来减少计算量。在减小网络模型的计算量这方面,此前Inception已经使用过这一技巧(在网络模块的开头使用以减少计算量),Flattened Networks也使用卷积拆分的形式修改网络层并展现了分解网络的极大潜力,独立与现有的方法,Factorized Networks创造了一种类似于卷积拆分的拓扑连接的使用方式,而随后Xception网络模型验证了通过放大深度可分离滤波器的技巧超过了InceptionV3网络模型的表现,还有Squeezenet也使用了bottleneck的方法设计一个小规模的网络模型。为了减小网络规模还有的方法是收缩、分解或者压缩预训练网络,在压缩方面有许多研究,例如product quantization、hashing、pruning、vector quantization、Huffman coding等方法。 

  已有的构建神经网络模型的方法一般可以分为压缩预训练的网络或者直接训练小规模的网络,为了能够在有限的资源限制条件下使用小规模的网络模型来满足应用需求,作者提出了MobileNet,不像其他网络模型只是一味降低网络模型的参数量减少其规模而没有考虑到网络模型的运行速度,MobileNet主要对网络模型的卷积方式进行了优化使得网络模型能够在保证准确率的情况下兼顾运行速度的目标。

MobileNet网络模型结构:

MobileNet的改进核心在于深度可分离卷积这一点。深度可分离卷积是一种能够将一般的卷积操作分解成深度卷积和1x1的点卷积方式,MobileNet的深度卷积就是将每个卷积核对应一个通道图进行卷积操作,而1x1卷积核的点卷积则是将深度卷积的输出作为输入,对各个特征图进行1x1的正常卷积操作使其结合起来。普通的卷积操作是以整体的形式在一层之内对输入的特征图进行卷积操作并将各个通道的卷积结果进行融合,而深度可分离卷积则拆分整个过程为两步,显示对单幅通道图进行卷积操作,然后再使用1x1卷积操作对特征图进行融合,这种拆分卷积的方式在减小计算量和网络模型规模上取得了显著地效果。具体操作如下图1所示,图1中a代表一般的标准卷积方式,图2中bc代表一般的标准卷积方式分解成了深度卷积(如图b)和1x1点卷积(如图c),一般的卷积层的输入特征图F的格式设为D FxDFxM,其输出特征图G格式设为DGxDGxN。DF设为正方形特征图的长宽维度,M是卷积层输入特征图的通道数量,DG、N分别是正方形输出特征图的长宽维度和通道数量。标准卷积层的操作是通过运算规模为DkxDkxMxN的卷积核K进行卷积(此处Dk代表卷积核的维度、M代表输入特征图通道数、N是输出通道数),假定标准卷积操作的滑距为1且padding已经算好,则标准卷积操作的运算过程如下式(1)所示:

   (1)

  标准卷积的计算量如下式(2)所示:

  (2)

  标准卷积的计算量依赖于输入通道数M和输出通道数N以及卷积核尺寸DkxDk以及特征图尺寸DFxDF的乘积,MobileNet以这些参数和它们之间的相互作用关系为出发点进行设计,首先它使用了深度可分离卷积来拆分输出通道数量和卷积核尺寸之间的相互作用。标准的卷积操作基于卷积核对特征图进行滤波并且将特征进行融合以产生一个新的特征表示,滤波和融合的步骤通过深度可分离卷积的分解卷积方式拆分成两步以减小后续的计算量。

  深度可分离卷积由两层组成:一层是深度卷积,另一层是点卷积。深度卷积即使用单个卷积核卷积单个通道特征图,点卷积则是使用1x1的卷积核对深度卷积的输出进行一个线性融合,MobileNet在这些各个网络层后面都使用BatchNormalization和ReLU操作。单个卷积核卷积单个通道特征图的深度卷积运算过程可以表示为下式(3)所示:

  (3)

  上式(3)中代表深度卷积中的尺寸为DkxDkxM的卷积核,式中的第m个卷积核对输入特征图Fm个通道图进行计算产生输出特征图MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解_第1张图片的第m个通道图

  深度卷积的计算量如下式(4)为:

  (4)

  深度卷积相比标准卷积运算量大大减小,然而深度卷积只是对输入的各个通道特征图进行了卷积并没有将它们融合产生出新的特征,因此在深度卷积层的基础上,再附加一个额外的1x1卷积层对深度卷积的输出结果进行卷积操作以产生新的特征。

深度卷积和1x1(点卷积)卷积相结合就称之为深度可分离卷积,深度可分离卷积的运算量如下式(5)所示:

  (5)

 通过将标准卷积操作拆分为两步相结合,减少的运算量如下式(6)所示:

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解_第2张图片  (6)

 MobileNet使用3x3卷积核规模的深度可分离卷积操作情况下,相比相同3x3卷积核的标准卷积操作降低了8-9倍计算量。


MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解_第3张图片

图1.标准卷积方式(a)和深度可分离卷积方式(b、c)

你可能感兴趣的:(网络模型)