深度学习之图像分类(十)MobileNets翻译与总结

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

Abstract

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

  1. 使用深度可分离卷积来构建轻量级深度神经网络
  2. 使用两个全局参数在延迟和准确性之间进行平衡。

 1.Introduction

自从AlexNet[19]通过赢得ImageNet Challenge:ILSVRC 2012[24]普及了深度卷积神经网络以来,卷积神经网络在计算机视觉中变得无处不在。总的趋势是制造更深更复杂的网络,以获得更高的精度[27-VGG,31-GoogleNet,29-inception-v4,8-resnet]。然而,这些提高准确性的进步并不一定使网络在规模和速度方面更有效。在许多现实世界的应用中,如机器人、自动驾驶汽车和增强现实,识别任务需要在计算有限的平台上及时执行。

1.深度卷积神经网络向更深更复杂的网络发展,但是一些轻量级的应用方面发展困难。

本文描述了一种高效的网络架构和一组两个超参数,以构建非常小、低延迟的模型,这些模型可以轻松满足移动和嵌入式视觉应用的设计要求。第2节回顾了以前在构建小模型方面的工作。第3节描述了MobileNet架构和两个超参数宽度超参数和分辨率超参数,以定义更小、更高效的MobileNet。第4节描述了ImageNet上的实验以及各种不同的应用程序和用例。第5节以总结和结论结束。

2.Prior Work

在最近的文献中,人们对构建小型高效的神经网络越来越感兴趣,例如[16,34-分解卷积,12-squeezeNet,36-量化,22]。许多不同的方法通常可以分为压缩预训练网络或直接训练小网络。本文提出了一类网络体系结构,允许模型开发人员专门为他们的应用程序选择符合资源限制(延迟、大小)的小型网络。MobileNets主要关注延迟优化,但也产生小型网络。许多关于小型网络的论文只关注规模,而不考虑速度。

1.MobileNet可以通过调节参数,允许模型开发人员专门为他们的应用程序选择符合资源限制(延迟、大小)的小型网络

2.以前的小型网络只关注规模,不考虑速度,MobileNet即降低了规模也考虑延迟优化。

MobileNets主要由深度可分离卷积构建,最初在[26]中引入,随后在inception模型[13]中使用(空间可分离卷积,ResNeXT中使用的是group conv),以减少前几层的计算。扁平网络[16用于前馈加速的扁平卷积神经网络]由完全因式分解的卷积构建网络,并展示了极度因式分解网络的潜力。独立于本文,因式分解网络[34]引入了类似的因式分解卷积以及拓扑连接的使用。随后,Xception network[3 Xception:具有深度可分离卷积的深度学习]展示了如何扩展深度可分离滤波器(Xception是先进行逐点卷积,然后进行深度分离卷积),以超越Inception V3网络。另一个小型网络是Squeezenet[12 Squeezenet:Alexnet级别的精度,参数减少50倍,模型大小为1mb。],它使用瓶颈方法来设计一个非常小的网络。其他简化计算网络包括结构化转换网络[28]和油炸convnets[37]。

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

  1. 对已经训练好的网络压缩瘦身
  2. 知识蒸馏是用大的网络所预测的标签作为小网络的输入进行训练
  3. 以极少的比特来存储权重值
  4. 直接加速卷积运算:im2col+GEMM、Winograd、低秩分解

卷积神经网络工程实践技巧_哔哩哔哩_bilibili

3. MobileNet Architecture

在本节中,我们首先描述构建MobileNet的核心层,这些核心层是深度上可分离的过滤器。然后描述了MobileNet的网络结构,最后描述了两个模型收缩超参数宽度乘法器和分辨率乘法器。

3.1. Depthwise Separable Convolution

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

图二。(a)中的标准卷积滤波器被两层取代:(b)中的深度卷积和(c)中的点方向卷积,以构建深度方向可分离滤波器。

卷积计算量近似等于卷积核的高 x 卷积核的宽 x 卷积核的channel x 输入特征矩阵的高 x 输入特征矩阵的宽

标准卷积层将DF × DF × M特征图F作为输入,并产生DF × DF × N特征图G,其中DF是方形输入特征图(我们假设输出特征图与输入特征图具有相同的空间维度,并且两个特征图都是正方形的。我们的模型收缩结果推广到具有任意大小和纵横比的特征图。)的空间宽度和高度,M是输入通道的数量(输入深度),DF是方形输出特征图的空间宽度和高度,N是输出通道的数量(输出深度)。

DK是卷积核的尺寸,M是卷积核的通道数,N是卷积核个数

标准卷积层由大小为DK × DK × M × N的卷积核K参数化,其中DK是假设为平方的核的空间维度,M是输入通道的数量,N是先前定义的输出通道的数量。

假设步幅1和填充,标准卷积的输出特征图计算如下:

卷积核求向量数量积的公式

标准卷积的计算成本为:

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

标准卷积运算具有基于卷积核过滤特征并组合特征以产生新表示的效果。滤波和组合步骤可以通过使用称为深度可分离卷积的因式分解卷积分成两个步骤,以显著降低计算成本。

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

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

其中,^K是大小为DK × DK × M的深度卷积核,其中,将^K中的第M个滤波器应用于F中的第M个通道,以产生滤波后的输出特征映射^G的第M个通道。

深度卷积的计算成本为:

相对于标准卷积,深度卷积非常有效。然而,它只过滤输入通道,而不组合它们来创建新的功能。因此,为了生成这些新特征,需要通过1 × 1卷积计算深度卷积输出的线性组合的附加层。

深度卷积和1 × 1(逐点)卷积的组合称为深度可分卷积,最初在[26]中引入。深度可分离卷积成本:参数量为DKxDKxM+MxN

它是深度卷积和1 × 1点卷积之和。

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

MobileNet使用3 × 3深度可分离卷积,其计算量比标准卷积少8到9倍,精度仅略有下降,如第4节所示。

诸如[16,31]中的空间维度中的额外因式分解不会节省太多的额外计算,因为在深度卷积中花费的计算非常少。

3.2. Network Structure and Training

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

图三。左图:带有batchnorm和ReLU的标准卷积层。右图:深度方向可分离卷积,具有深度方向和点方向层,后跟batchnorm和ReLU。

仅仅用少量的多加法来定义网络是不够的。确保这些操作能够有效实施也很重要。例如,非结构化稀疏矩阵运算通常不会比密集矩阵运算更快,直到非常高的稀疏水平。我们的模型结构将几乎所有的计算放入密集的1 × 1卷积中。这可以用高度优化的通用矩阵乘法(GEMM)函数来实现。卷积通常由GEMM实现,但需要在称为im2col的内存中进行初始重新排序,以便将其映射到GEMM。例如,这种方法被用在流行的咖啡包装中[15]。1 × 1卷积不需要在内存中重新排序,可以直接用GEMM实现,GEMM是最优化的数值线性代数算法之一。MobileNet将95%的计算时间花在1 × 1卷积上,卷积中还有75%的参数,如表2所示。几乎所有的附加参数都在全连接层中。

1. MobileNet将95%的计算时间花在1 × 1卷积上,卷积中还有75%的参数,所以对1x1卷积进行加速和降低参数非常的必要,并且1x1的卷积核是非常容易加速的

MobileNet模型在TensorFlow[1]中使用RMSprop[33]进行训练,具有类似于Inception V3[31]的异步梯度下降。然而,与训练大模型相反,我们使用较少的正则化和数据扩充技术,因为小模型在过度拟合方面的问题较少。当训练MobileNets时,我们不使用侧头(多分类头,后来证明,浅层的分类头对于模型准确率的提高作用非常小,所以放弃了浅层分类头的使用)或标签平滑(lable smothing),并且通过限制大型初始训练中使用的小作物的大小来减少图像失真的数量[31]。此外,我们发现在深度方向滤波器上放置很少或没有权重衰减(l2正则化)是很重要的,()因为它们中的参数很少。对于下一节中的ImageNet基准测试,无论模型的大小如何,所有模型都使用相同的训练参数进行训练。

L2正则化是一种常用的正则化方法,也被称为权重衰减。它通过在损失函数中添加一个正则化项,来惩罚模型的复杂度,从而防止过拟合。L2正则化的正则化项是模型参数的平方和,即:

L2正则化项 = λ * ||w||^2

其中,λ是正则化强度超参数,w是模型参数。

L2正则化的作用是使得模型参数更加平滑,避免出现过于复杂的模型。在神经网络中,L2正则化可以通过在反向传播时对梯度进行调整来实现。

模型复杂度是由模型的参数量和参数的大小范围所决定的

L1、L2正则化是降低参数的大小范围

Dropout是降低参数量,这样神经元的输入会随机的被失活,下一层神经元不会完全的依赖某一个神经元的输入,这样每个神经元的权重都会降低,这样模型的复杂度也会随之降低,这样Dropout也起到了L2正则化的作用。

L1通常用于增加稀疏性,L2一般用于减小“复杂度”,且L2有唯一解

如果用标准的梯度下降法或是随机梯度下降,那么L2正则化和权重衰减是等价的。这也是我在视频里讲到的。如果是用Adam这样的优化后的算法,那么权重衰减和L2正则化就不等价了, 这个时候用权重衰减效果更好

机器学习之正则化方法_哈尔滨张谦蛋的博客-CSDN博客

3.3. Width Multiplier: Thinner Models

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

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

其中α∈(0,1),典型设置为1、0.75、0.5和0.25。α=1是基线移动网,α<1是约简移动网。宽度乘法器具有将计算成本和参数数量大约二次减少α2的效果。宽度乘法器可以应用于任何模型结构,以定义具有合理精度、延迟和大小权衡的新的更小的模型。它用于定义需要从头开始训练的新的简化结构。

3.4. Resolution Multiplier: Reduced Representation

降低神经网络计算成本的第二个超参数是分辨率乘数ρ。我们将此应用于输入图像,并且每层的内部表示随后减少相同的乘数。实际上,我们通过设置输入分辨率来隐式设置ρ。

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

其中ρ∈(0,1)通常被隐式设置,使得网络的输入分辨率为224、192、160或128。ρ=1是基线移动网络,ρ<1是简化计算移动网络。分辨率乘法器具有将计算成本降低ρ2的效果。

表3。修改标准卷积的资源使用情况。请注意,每一行都是在前一行之上添加的累积效应。此示例适用于DK=3、M=512、N=512、DF=14的内部MobileNet层。

作为一个例子,我们可以看看MobileNet中的一个典型层,看看深度可分离卷积、宽度乘法器和分辨率乘法器如何降低成本和参数。表3显示了当体系结构收缩方法依次应用于层时,层的参数的计算和数量。第一行显示了完整卷积层的多加法和参数,输入要素图大小为14 × 14 × 512,核K大小为3 × 3 × 512 × 512。我们将在下一节详细讨论资源和准确性之间的权衡。

4. Experiments

在本节中,我们首先研究深度卷积的影响,以及通过减少网络宽度而不是层数来选择收缩。然后,我们展示了基于两个超参数:宽度乘数和分辨率乘数来减少网络的权衡,并将结果与一些流行的模型进行了比较。然后,我们研究了应用于许多不同应用程序的MobileNets。

4.1. Model Choices

首先,我们展示了具有深度可分离卷积的MobileNet的结果,并与具有完全卷积的模型进行了比较。在表4中,我们看到,与完全卷积相比,在ImageNet上使用深度可分离卷积仅将精度降低1%,并且在多加法和参数方面节省了大量成本。

在精度降低很小的情况下,参数量仅为1/8左右,表明模型的轻量化

接下来,我们将展示具有宽度乘数的较薄模型与使用较少层数的较浅模型的比较结果。为了使MobileNet更浅,删除了表1中特征尺寸为14 × 14 × 512的5层可分离过滤器。表5显示,在相似的计算和参数数量下,使移动网络更薄比使其更浅好3%。

4.2. Model Shrinking Hyperparameters

表6显示了使用宽度乘数α缩小MobileNet体系结构的准确性、计算和大小权衡。精度平稳下降,直到架构在α=0.25时变得太小。

前两个网络相比,模型的精度降低2.2%,但是参数量却降低40%

表7显示了通过用降低的输入分辨率训练MobileNets,不同分辨率乘法器的精度、计算和大小权衡。精度随着分辨率的提高而平稳下降。

降低图片输入尺寸之后,模型的精度降低较小,但是模型的运算复杂度大幅降低。

图4显示了由宽度乘数α∈{1,0.75,0.5,0.25}和分辨率{224,192,160,128}的叉积制成的16个模型的ImageNet精度和计算之间的权衡。当模型在α=0.25时变得非常小时,结果是带有跳跃的对数线性。

图4。此图显示了ImageNet基准测试中计算(Mult-Adds)和准确性之间的权衡。请注意精度和计算之间的对数线性相关性。

图5显示了由宽度乘数α∈{1,0.75,0.5,0.25}和分辨率{224,192,160,128}的叉积制成的16个模型的ImageNet精度和参数数量之间的权衡。

MobileNet的α和β参数的设计,可以供研究人员根据自己实际情况选择自己的模型参数。

图5。此图显示了ImageNet基准测试中参数数量和准确性之间的权衡。颜色编码输入分辨率。参数的数量不会根据输入分辨率而变化。

表8将完整的MobileNet与原始的GoogleNet[30]和VGG16[27]进行了比较。MobileNet几乎与VGG16一样精确,但体积小32倍,计算强度低27倍。它比GoogleNet更精确,同时更小,计算量少2.5倍以上。

MobileNet与GoogleNet和VGGNet的精度相差不大,但是计算复杂度和参数量远远小于GoogleNet和VGGNet

表9比较了宽度乘数α=0.5和分辨率160 × 160的简化MobileNet。简化的MobileNet比AlexNet[19]好4%,同时比AlexNet小45倍,计算量少9.4倍。在大约相同的大小和22倍的计算量下,它也比Squeezenet[12]好4%。

4.3. Fine Grained Recognition

我们训练MobileNet在斯坦福Dogs数据集上进行细粒度识别[17]。我们扩展了[18]的方法,从网络上收集了比[18]更大但噪音更大的训练集。我们使用噪声网络数据预训练一个细粒度的狗识别模型,然后在斯坦福狗训练集上微调模型。斯坦福狗测试集的结果如表10所示。MobileNet几乎可以在大大减少的计算和大小的情况下实现[18]的最先进的结果。

在细粒度的识别方面,模型与InceptionV3的识别精度相差不大,但是模型的计算量和参数量远远小于InceptionV3,表明MobileNet不仅仅在图像识别方面具有良好的使用能力,在其他任务方面也有良好的能力。

4.4. Large Scale Geolocalizaton

PlaNet[35]将确定一张照片在地球上的什么地方拍摄的任务作为一个分类问题。该方法将地球划分为地理单元网格,作为目标类别,并在数百万张地理标记照片上训练卷积神经网络。PlaNet已被证明能够成功定位各种照片,并优于完成相同任务的Im2GPS[6,7]。

我们在相同的数据上使用MobileNet架构重新训练PlaNet。而基于Inception V3架构的全行星模型[31]有5200万个参数和57.4亿个多加法。MobileNet模型只有1300万个参数,通常300万个用于主体,1000万个用于最后一层,58万个mult-adds。如选项卡所示。11,与PlaNet相比,MobileNet版本的性能仅略有下降,尽管它要紧凑得多。而且,它仍然远远优于Im2GPS。

表11。使用MobileNet架构的PlaNet性能。百分比是Im2GPS测试数据集中定位在离地面一定距离内的部分。原始行星模型的数字是基于一个更新版本,该版本具有改进的架构和训练数据集。

4.5. Face Attributes

MobileNet的另一个用例是用未知或深奥的训练过程压缩大型系统。在人脸属性分类任务中,我们展示了MobileNet和蒸馏[9]之间的协同关系,蒸馏是一种用于深度网络的知识转移技术。我们试图约简一个具有7500万个参数和16亿个多加法的大型人脸属性分类器。分类器在类似于YFCC100M[32]的多属性数据集上训练。

我们使用MobileNet架构提取人脸属性分类器。蒸馏[9]通过训练分类器来模拟更大模型2的输出,而不是基本事实标签,从而能够从大型(可能是无限的)未标记数据集进行训练。结合蒸馏训练的可扩展性和MobileNet的简约参数化,最终系统不仅不需要正则化(例如重量衰减和早期停止),而且还展示了增强的性能。从Tab可以明显看出。12基于MobileNet的分类器对激进的模型收缩具有弹性:它实现了与内部分类器相似的跨属性平均精度(平均AP),同时仅消耗1%的多重加法。

表12。使用MobileNet架构的人脸属性分类。每一行对应一个不同的超参数设置(宽度乘数α和图像分辨率)。

4.6. Object Detection

MobileNet也可以作为现代目标检测系统中有效的基础网络。我们根据最近赢得2016年COCO挑战赛的工作,报告了MobileNet在COCO数据上进行对象检测训练的结果[10]。在表13中,在更快的RCNN[23]和SSD[21]框架下,MobileNet与VGG和盗梦空间V2[13]进行了比较。在我们的实验中,SSD以300输入分辨率(SSD 300)和更快的RCNN进行评估,并与300和600输入分辨率(更快的RCNN 300,更快的RCNN 600)进行比较。更快的RCNN模型评估每个图像的300个RPN建议框。模型在COCO train+val(不包括8k迷你图像)上训练,并在minival上评估。对于这两种框架,MobileNet实现了与其他网络相当的结果,而计算复杂性和模型大小只有一小部分。

表13。使用不同框架和网络架构的COCO对象检测结果比较。使用COCO主要挑战度量报告mAP(IoU时的AP=0.50:0.05:0.95)

4.7. Face Embeddings

FaceNet模型是最先进的人脸识别模型[25]。它基于三元组丢失来构建人脸嵌入。为了建立一个移动FaceNet模型,我们通过最小化FaceNet和MobileNet的输出对训练数据的平方差异来使用蒸馏进行训练。非常小的MobileNet模型的结果见表14。

5. Conclusion

我们提出了一种新的基于深度可分离卷积的模型架构,称为MobileNets。我们研究了导致有效模型的一些重要设计决策。然后,我们演示了如何使用宽度乘法器和分辨率乘法器构建更小更快的MobileNets,方法是在合理的精确度之间进行权衡,以减少大小和延迟。然后,我们将不同的MobileNets与流行的模型进行了比较,这些模型展示了优越的尺寸、速度和准确性特性。最后,我们展示了MobileNet在应用于各种任务时的有效性。作为帮助采用和探索MobileNets的下一步,我们计划发布张量流模型。

Ic2col

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值