天天看点

MobileNet论文翻译

对照英文原文阅读

Abstract

我们为移动和嵌入式视觉应用提出了一种称为MobileNets的有效模型。 MobileNets基于简化的架构,该架构使用深度可分离卷积来构建轻型深度神经网络。 我们介绍了两个简单的全局超参数,它们可以有效地在延迟和准确性之间进行权衡。 这些超参数允许模型构建者根据问题的约束条件为其应用选择合适大小的模型。 我们在资源和准确性之间进行了广泛的权衡取舍,与ImageNet分类中的其他流行模型相比,我们展示了强大的性能。 然后,我们演示了MobileNet在各种应用程序和用例(包括对象检测,细粒度分类,面部属性和大规模地理定位)中的有效性。

Introduction

自从AlexNet [19]通过赢得ImageNet挑战:ILSVRC 2012 [24]来推广深度卷积神经网络以来,卷积神经网络就已经在计算机视觉中变得无处不在。 总的趋势是建立更深,更复杂的网络以实现更高的准确性[27、31、29、8]。 但是,这些提高准确性的进步并不一定会使网络在大小和速度方面更加高效。 在许多现实世界的应用程序中,例如机器人技术,自动驾驶汽车增强现实技术,需要在计算受限的平台上及时进行热识别任务。

本文描述了一种有效的网络体系结构和两个超参数集,以建立非常小的,低延迟的模型,这些模型可以轻松地满足移动和嵌入式视觉应用的设计要求。 第2节回顾了构建小型模型的先前工作。第3节介绍了MobileNet体系结构以及两个超参数宽度乘数和分辨率乘数-较小更有效的MobileNets。 第4节介绍了ImageNet上的实验以及各种不同的应用程序和用例。 第5节以总结和结论结束。

PriorWork

在最近的文献中,人们对建立小型高效的神经网络越来越感兴趣。 [16、34、12、36、22]。 通常可以将许多不同的方法归类为压缩预训练网络或直接训练小型网络。 本文提出了一类网络体系结构,允许模型开发人员专门为其应用选择一个与资源限制(延迟,大小)相匹配的小型网络。 MobileNets主要致力于优化延迟,但也可以产生小型网络。 关于小型网络的许多论文只关注规模,而没有考虑速度。

MobileNet主要是由深度可分离的卷积建立的,该卷积最初是在[26]中引入,然后在Inception模型[13]中用于减少第一层的计算量。 Flattenednetworks [16]从完全分解的卷积中构建了一个网络,并显示了高度分解的网络的潜力。 独立于本篇论文,Factorized Networks [34]引入了类似的因式卷积以及拓扑连接的使用。 随后,Xception网络[3]演示了如何按比例扩展深度可分离过滤器以执行Inception V3网络。 另一个小型网络是Squeezenet [12],它使用瓶颈的方法来设计每个小型网络。 其他减少的计算网络包括结构化转换网络[28]和油炸卷积网络[37]。

获得小型网络的另一种方法是收缩,分解或压缩预训练的网络。 在文献中已经提出了基于乘积量化[36],散列[2]以及修剪,矢量量化和霍夫曼编码[5]的压缩。 另外,已经提出了各种因式分解来加速预训练的网络[14、20]。 训练小型网络的另一种方法是蒸馏[9],它使用较大的网络来教授较小的网络。 它是我们方法的补充,在第4节的一些用例中进行了介绍。另一种新兴方法是低位网络[4,22,11]。

MobileNet Architecture

在本节中,我们首先描述MobileNet所基于的核心层,它们是深度可分离的过滤器。 我们描述了MobileNet网络的结构,并以两个模型缩小的超参数宽度乘数和分辨率乘数的描述作为结束。

Depthwise Separable Convolution

MobileNet模型基于深度可分离卷积,它是分解卷积的一种形式,可将标准卷积分解为深度卷积,并称为1×1卷积,称为逐点卷积。 对于MobileNet,深度卷积将单个滤波器应用于每个输入通道。 然后,逐点卷积应用1×1卷积来组合深度卷积。 标准卷积既可以过滤,也可以一步一步将输入组合到一组新的输出中。 深度可分离的卷积将其分为两层,一个用于过滤的单独层和一个用于合并的单独层。 这种分解具有显着减少计算和模型大小的效果。 图2显示了如何将标准卷积2(a)分解为深度卷积2(b)和1×1点向卷积2(c)。

标准卷积层以DF×DF×M特征图F作为输入,并生成DF×DF×N特征图G,其中DF是正方形输入特征图的空间宽度和高度,M是输入通道数( 输入深度),DG是方形输出特征图的空间宽度和高度,N是输出通道的数量(输出深度)。

标准卷积层由convolutionkernelKofsizeDK×DK×M×N参数化,其中DK是假定为正方形的内核的空间尺寸,M是输入通道数,N是输出通道数,如先前所定义。

假设跨度为1和填充为标准卷积的输出特征图,计算公式为:

标准卷积的计算成本为:

其中计算成本乘以输入通道数M,输出通道数N,内核大小Dk×Dk和特征图大小DF×DF。 MobileNet模型解决了这些术语及其相互作用。 首先,它使用深度可分离卷积来打破输出通道数与内核大小之间的相互作用。

标准卷积运算具有基于卷积链过滤特征和组合特征的作用,以产生新的表示形式。 过滤和组合步骤可以通过使用称为深度可分离卷积的分解卷积分为两个步骤,以大幅降低计算成本。

深度可分离卷积由两层组成:深度卷积和点卷积。 我们使用深度卷积在每个输入通道(输入深度)上应用一个滤波器。 点向卷积是一种简单的1×1卷积,用于创建深度层输出的线性组合。 MobileNets对这两个层都使用了batchnorm和ReLU非线性。

每个输入通道(输入深度)具有一个滤波器的深度卷积可以写为:

其中ˆ K是大小为DK×DK×M的深度卷积核,其中ˆ K中的第m个滤波器应用于F中的第m个通道,以生成过滤后的输出特征图的第m个通道深度卷积的计算成本为:

深度卷积相对于标准卷积非常有效。 但是,它仅过滤输入通道,不会将它们组合以创建新功能。 因此,需要额外的一层来计算通过1×1卷积的深度卷积输出的线性组合,以便生成这些新特征。

深度卷积和1×1(点向)卷积的组合称为深度可分离卷积,最初是在[26]中引入的。

深度可分离卷积代价:

这是深度和1×1点向卷积的总和。

通过将卷积表示为两个步骤的过滤和合并过程,我们可以减少以下计算:

MobileNet使用3×3深度可分离卷积,它们比标准卷积使用8到9倍的无计算时间,而准确度仅降低了一点,如第4节所示。

诸如[16,31]中的空间维度上的附加因式分解并不会节省很多额外的计算,因为在深度卷积中花费很少的计算。图2.将(a)中的标准卷积滤波器替换为两层:(b)中的深度卷积和(c)中的点积卷积,以构建深度可分离的滤波器。

Network Structure and Training

除了第一层是完整卷积之外,MobileNet结构建立在上一节所述的深度可分离卷积上。通过以这种简单的术语定义网络,我们可以轻松地探索网络拓扑以找到一个好的网络。表1中定义了MobileNet体系结构。所有层都通过batchnorm [13]和ReLU非线性处理,最后的完全连接层除外,该层没有非线性,并馈入softmax层进行分类。图3将具有规则卷积,batchnorm和ReLU非线性的层与具有深度卷积,1×1点向卷积以及每个卷积层之后的batchnorm和ReLU的分解层进行了对比。下采样采用深度卷积以及第一层中的跨步卷积进行处理。最后的平均池在完全连接的层之前将空间分辨率降低为1。将深度和点积卷积计为单独的层,MobileNet有28层。

仅根据少量的Mult-Adds定义网络是不够的。确保这些操作可以有效实施也很重要。例如,直到非常高的稀疏度,非结构化稀疏矩阵运算通常不比密集矩阵运算快。我们的模型结构将几乎所有的计算强度1×1卷积。这可以通过高度优化的通用矩阵乘法(GEMM)函数来实现。卷积通常由GEMM实现,但需要在内存中进行名为im2col的初始重新排序,才能将其映射到GEMM。例如,这种方法在流行的Caffe软件包中使用[15]。 1×1卷积不需要这种重新排序的内存,可以直接用GEMM实现,GEMM是最优化的数值线性代数算法之一。如表2所示,MobileNet将其95%的计算时间花费在1×1卷积中,其中也包含75%的参数。几乎所有其他参数都位于完全连接的层中。

使用RMSprop [33]在TensorFlow [1]中使用与Inception V3 [31]类似的异步梯度下降训练了MobileNet模型。 但是,与训练大型模型相反,我们使用较少的正则化和数据增强技术,因为小型模型的过度拟合问题较少。 在训练MobileNets时,我们不使用侧边或标签平滑,并且通过限制在大型Inception训练中使用的小作物的大小来减少失真的图像数量[31]。 另外,我们发现重要的是,由于提振参数斜率,所以对深度过滤器进行很小的权重衰减(l 2正则化)就很重要。 对于ImageNet基准,无论模型的大小如何,都应使用相同的训练参数来训练后续模型的模型。

Width Multiplier: Thinner Models

尽管基本的MobileNet体系结构已经很小并且延迟很短,但是在特定的用例或应用程序中,很多时候可能要求模型更小,更快。 为了构建这些较小的和较少的计算昂贵的模型,我们引入了一个非常简单的参数α,称为宽度乘数。 宽度乘数的作用是使网络在每一层均匀地变薄。 对于给定的图层宽度乘数α,输入通道数M变为αM,输出通道数N变为αN。

具有宽度乘数α的深度可分离卷积的计算成本为:

其中,α∈(0,1]的典型设置为1、0.75、0.5和0.25。α= 1是基准MobileNet,α<1是简化的MobileNets。宽度乘数具有降低计算成本和二次方参数数量的作用 宽度乘数可以应用于任何模型结构,以合理的精度,潜伏期和大小折衷来定义新的较小模型,用于定义需要从头开始训练的新的简化结构。

Resolution Multiplier: Reduced Representation

第二个超参数可得出神经网络的计算成本,即分辨率乘数ρ。 我们将其应用于输入图像,然后通过相同的乘数来减少每一层的内部表示。 实际上,我们通过设置输入分辨率来隐式设置ρ。

现在,我们可以将网络核心层的计算成本表示为具有宽度乘数α和分辨率乘数ρ的深度可分离卷积:

其中ρ∈(0,1]通常是隐式设置的,因此网络的输入分辨率为224、192、160或128。ρ= 1是基准MobileNet,而ρ<1是简化的计算MobileNets。 将计算成本降低ρ2的效果。

作为示例,我们可以查看MobileNet中的典型层,并了解深度可分离卷积,宽度乘数和分辨率乘数如何减少成本和参数。 表3显示了随着体系结构缩减方法依次应用于该层而计算和该层参数的数量。 第一行显示了完整卷积层的Mult-Adds和参数,其输入特征图的大小为14×14×512,内核K的大小为3×3×512×512。我们将在下一节中详细讨论资源和准确性之间的取舍。

继续阅读