MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications(2017)

文章介绍了MobileNets的高效架构,基于深度可分离卷积,通过宽度乘法器和分辨率乘法器实现模型大小和延迟的平衡。实验表明,MobileNets在保持高精度的同时,适用于移动和嵌入式应用,且在多种任务中表现出色。
摘要由CSDN通过智能技术生成



原文链接

Abstract

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

1. Introduction

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

2. Prior Work

本文提出了一类网络体系结构,它允许模型开发人员专门为其应用程序选择符合资源限制(延迟、大小)的小型网络。MobileNets主要专注于优化延迟,但也会产生小型网络。许多关于小型网络的论文只关注大小而不考虑速度。

MobileNet主要是由深度可分离卷积构建的,最初在[26]中引入,随后在Inception模型[13]中使用,以减少前几层的计算

获得小型网络的另一种方法是缩小、分解或压缩预训练的网络。
文献中提出了基于积量化[36]、哈希[2]、剪枝、矢量量化和霍夫曼编码[5]的压缩方法。此外,还提出了各种分解方法来加速预训练网络[14,20]。另一种训练小型网络的方法是蒸馏[9],它使用一个较大的网络来训练一个较小的网络。它是我们方法的补充,在第4节的一些用例中会涉及到。另一种新兴的方法是低比特网络[4,22,11]

3. MobileNet Architecture

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

3.1. Depthwise Separable Convolution

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

此为后面全文的假设前提
标准卷积层以DF × DF × M特征图F作为输入,生成DF × DF × N特征图G,其中DF为正方形输入特征图的空间宽度和高度,M为输入通道数(输入深度),DG为正方形输出特征图的空间宽度和高度,N为输出通道数(输出深度)
标准卷积层由大小为DK ×DK ×M×N的卷积核K来参数化,其中DK是假设为平方的核的空间维度,M是输入通道数,N是前面定义的输出通道数。
假设步长为1,填充为1,标准卷积的输出特征映射计算为:
标准卷积的计算代价为:

其中,计算代价乘取决于输入通道数M、输出通道数N、核大小Dk × Dk和特征映射大小DF × DF

MobileNet模型解决了这些术语及其相互作用。首先,它使用深度可分离卷积来打破输出通道数量和核大小之间的相互作用
标准卷积运算的作用是在卷积核的基础上过滤特征并组合特征以产生新的表示。过滤和组合步骤可以通过使用分解卷积(称为深度可分离卷积)分为两个步骤,从而大大减少了计算成本

深度可分离卷积由深度卷积和点卷积两层组成。我们使用深度卷积对每个输入通道(输入深度)应用单个滤波器。然后使用点卷积(一个简单的1×1卷积)来创建深度层输出的线性组合。MobileNet对两个层都使用批规范和ReLU非线性。

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

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

深度卷积的计算代价为:DkDkM1Df*Df

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

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

通过将卷积表示为过滤和组合的两步过程,我们可以减少计算量:
MobileNet使用3 × 3深度可分离卷积,其使用的计算量比标准卷积少8到9倍,而且精度只有很小的降低

在空间维度上进行额外的因式分解(如[16,31])并不能节省太多额外的计算,因为深度卷积只需要很少的计算

3.2. Network Structure and Training

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

简单地用少量的Multi-Adds来定义网络是不够的。确保这些操作能够有效地实现也很重要
我们的模型结构将几乎所有的计算都放在密集的1 × 1卷积中。这可以通过高度优化的一般矩阵乘法(GEMM)函数来实现卷积通常由GEMM实现,但需要在内存中进行初始的重新排序,称为im2col,以便将其映射到GEMM。例如,流行的Caffe包就使用了这种方法[15]。1 × 1卷积不需要在内存中重新排序,可以直接使用GEMM实现,GEMM是最优化的数值线性代数算法之一。MobileNet在1 × 1卷积中花费了95%的计算时间,其中也有75%的参数,如表2所示。几乎所有的附加参数都在完全连接层中
MobileNet模型在TensorFlow[1]中使用RMSprop[33]进行异步梯度下降训练,类似于Inception V3[31]。然而,与训练大型模型相反,我们使用较少的正则化和数据增强技术,因为小型模型的过拟合问题较少。在训练MobileNets时,我们不使用侧头或标签平滑,并且通过限制大型Inception训练中使用的小作物的大小来减少图像失真的数量[31]。此外,我们发现在深度滤波器上放置很少或没有权重衰减(l2正则化)是很重要的,因为它们的参数很少。对于下一节中的ImageNet基准测试,无论模型大小如何,所有模型都使用相同的训练参数进行训练

3.3. Width Multiplier: Thinner Models

虽然基本的MobileNet架构已经很小,延迟也很低,但很多时候,特定的用例或应用程序可能需要模型更小、更快。为了构建这些更小、计算成本更低的模型,我们引入了一个非常简单的参数α,称为宽度乘法器。宽度乘法器α的作用是在每一层均匀地薄化网络
对于给定的层和宽度乘法器α,输入通道数M变为αM,输出通道数N变为αN
宽度乘子为α的深度可分离卷积的计算代价为:

其中α∈(0,1],典型设置为1、0.75、0.5、0.25。α =1为MobileNet基线,α<1 .减少mobilenet

很显然宽度乘法器具有将计算成本和参数数量以大约α^2的倍数减少的效果。宽度乘数可以应用于任何模型结构,以定义一个新的更小的模型,具有合理的精度,延迟和大小权衡。它用于定义一个需要从头开始训练的新的简化结构

3.4. Resolution Multiplier: Reduced Representation

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

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

其中ρ∈(0,1],通常隐式设置,使得网络的输入分辨率分别为224、192、160或128。ρ =1为基准MobileNet和ρ<1 .减少计算mobilenet。分辨率乘法器的计算成本降低了ρ^2并不改变参数量(kkCinCout==DkDkMN)

作为一个例子,我们可以看看MobileNet中的一个典型层,看看深度可分离卷积、宽度乘法器和分辨率乘法器是如何降低成本和参数的。表3显示了当架构收缩方法依次应用于层时,层的计算量和参数数量。第一行显示了一个完整卷积层的Multi- Adds和参数,其输入特征映射的大小为14 × 14 × 512,核K的大小为3 × 3 × 512 × 512。我们将在下一节中详细讨论资源和准确性之间的权衡
请注意,每一行都是在前一行之上添加的累积效应。这个例子是一个内部MobileNet层,DK =3, M =512, N =512, DF =14

4. Experiments

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




5. Conclusion

我们提出了一种新的基于深度可分离卷积的模型结构,称为MobileNets。我们研究了一些导致高效模型的重要设计决策。然后,我们演示了如何使用宽度乘法器和分辨率乘法器构建更小更快的mobilenet,通过权衡合理的精度来减少尺寸和延迟。然后,我们将不同的mobilenet与流行的模型进行了比较,展示了优越的尺寸、速度和准确性特征。最后,我们展示了MobileNet在应用于各种任务时的有效性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值