MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications--论文笔记
论文笔记
资料
1.代码地址
还没上传
2.论文地址
https://arxiv.org/abs/1704.04861
3.数据集地址
还没上传
1论文摘要的翻译
本研究引入了一种新型高效的移动视觉模型系列 mobilenet ,该网络架构基于流线型设计并结合深度可分离卷积模块构造轻量级深度学习架构 。为了实现对计算延迟与分类精度的最佳平衡 ,我们提出了两组全局调节参数设置方案 。通过设定不同的调节参数组合方案 ,在不同应用场景下实现对计算资源与分类性能的最佳平衡 。针对资源分配与性能优化问题展开了系统性实验研究 ,并在图像分类领域所取得的表现优于现有主流方法 。进一步验证了该方法在多个实际应用场景中的有效性 ,包括对象检测 、细粒度分类 、人脸属性识别以及大规模地理定位等多个重要任务 。
2论文的创新点
- 开发了一种命名为mobilenet的高性能架构,在移动设备和平板电脑等嵌入式视觉设备中展现出卓越表现。
- 我们提出了两个简洁的全局超参数配置方案,在平衡性能与效率方面展现出优异效果。
3 论文方法的概述
网络架构
3.1 Depthwise Separable Convolution
MobileNet模型主要依赖于深度可分离的滤波器。这种设计方法本质上是对常规二维空间域中的二维乘法进行频域运算的转换。该机制通过将常规二维空间域中的二维乘法转换为频域运算来实现特征提取,并且在每个输入通道分别应用一个滤波器以提取特定特征。随后的一系列操作用于整合这些特征,并显著降低了计算复杂度与模型体积。”如图所示

3.1.1 标准卷积
在标准卷积层结构中,
其中D_F代表输入特征图的正方形空间尺寸,
M表示输入通道的数量(即输入深度),
而D_G则代表输出特征映射的正方形空间尺寸,
N则表示输出通道的数量(即输出深度)。
具体来说,在卷积操作中,
其结果是以大小分别为\times\times
的形式呈现。
标准卷积层由大小为D_K ×D_K ×M ×N的卷积核K来参数化,其中D_K是假设为平方的核的空间维度,M是输入通道数,N是前面定义的输出通道数,假设步长为1,填充为1,标准卷积的输出特征映射计算为:
\mathbf{G}_{k,l,n}=\sum_{i,j,m}\mathbf{K}_{i,j,m,n}\cdot\mathbf{F}_{k+i-1,l+j-1,m}\quad
标准卷积运算所需的计算复杂度为:
D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F
其中其计算复杂度主要由输入通道数量M、输出通道数量N以及核尺寸及其对应的特征映射尺寸所决定。
MobileNet模型通过巧妙设计其架构来解决这些问题及其相互影响。
3.1.2 深度可分离卷积
滤波与融合步骤可通过分层卷积实现,并通过逐元素可分离的卷积显著降低了计算开销。
通过逐元素可分离的深度卷积对每个输入通道单独施加滤波器。
随后采用1×1点态卷积生成深度层输出特征的线性组合。
每个输入通道对应一个滤波器的应用。
\hat{\mathbf{G}}_{k,l,m}=\sum_{i,j}\hat{\mathbf{K}}_{i,j,m}\cdot\mathbf{F}_{k+i-1,l+j-1,m}
其中,\hat{K}K是大小为D_K × D_K × M的深度卷积核,其中,\hat{K}中的第M个滤波器应用于F中的第m_{th}通道,产生经过滤波的输出特征映射G的第m_{th}个通道。
深度卷积的计算代价为:
D_K · D_K · M · D_F · D_F
深度卷积相对于标准卷积是非常有效的。然而,它只过滤输入通道,而不组合它们来创建新功能。因此,为了生成这些新特征,需要一个额外的层,通过1 × 1卷积计算深度卷积输出的线性组合。
深度可分离卷积代价:D_K·D_K·M·D_F·D_F + M·N·D_F·D_F它是深度卷积和1 × 1点卷积的总和
通过将卷积表示为过滤和组合的两步过程,我们可以减少计算量:
\begin{aligned}&\frac{D_{K}\cdot D_{K}\cdot M\cdot D_{F}\cdot D_{F}+M\cdot N\cdot D_{F}\cdot D_{F}}{D_{K}\cdot D_{K}\cdot M\cdot N\cdot D_{F}\cdot D_{F}}\\ &=\quad\frac1N+\frac1{D_K^2}\end{aligned}
MobileNet使用3 × 3深度可分离卷积,其使用的计算量比标准卷积少8到9倍,而且精度只有很小的降低,
3.2 网络结构和训练
MobileNet架构的概念可见于表1中详细说明。每一层之后均接一个Batch Normalization(BN)操作并施加ReLU激活函数,在此过程中始终保持神经网络的深度学习特性。然而,在最后一层全连接层中并未采用ReLU激活函数,并通过softmax层级实现最终分类任务的完成。

图3通过对比包含标准卷积BN和ReLU激活函数的层以及包含深度卷积1×1点卷积并经BN和ReLU激活函数处理后的分解层来进行功能比较分析

在深度卷积和第一层中使用跨行卷积进行下采样操作。空间分辨率经由平均池化操作降至1,在完全连接层之前实施。该网络架构总计包含28个计算单元。
非结构化的稀疏矩阵运算一般情况下不会超过密集矩阵运算的速度(除非其稀疏度非常高)。我们的模型架构将几乎所有的计算集中在高度优化的一维卷积(即1×1卷积)上。这些计算可以通过通用矩阵乘法(GEMM)函数高效完成。卷积运算通常会利用GEMM进行加速(称为im2col),但这需要先对数据进行内存重排以便映射到通用矩阵乘法上。例如,在Caffe等流行深度学习框架中就采用了这种方法以提高效率。
对于1×1卷积层来说,在执行神经元激活函数之前无需对输入数据进行内存重排即可直接利用高效的通用矩阵乘法(GEMM)进行加速。需要注意的是,GEMM是一种经过高度优化的数值线性代数算法。
根据实验结果,MobileNet网络架构在执行1×1卷积时占用了95%以上的计算资源,其中约75%左右是用于网络参数量相关的操作,具体数据可见表2所示.此外,剩余参数也都集中在完全连接层中参与运算。

3.3 宽度倍增器:更薄的模型
宽度乘法器α的作用是在每一层均匀地薄化网络。宽度乘子α,则输入通道数M变为αM,输出通道数N变为αN。
宽度乘子为α的深度可分离卷积的计算代价为:
D_K\cdot D_K\cdot\alpha M\cdot D_F\cdot D_F+\alpha M\cdot\alpha N\cdot D_F\cdot D_F
其中α∈(0,1),典型设置为1、0.75、0.5、0.25。α = 1为基线MobileNet,α < 1为减少的MobileNet。宽度乘法器具有将计算成本和参数数量以大约α^2的倍数减少的效果。宽度乘数可以应用于任何模型结构,以定义一个新的更小的模型,具有合理的精度,延迟和大小权衡。它用于定义一个需要从头开始训练的新的简化结构
3.4 分辨率倍增器:减少代表性
在降低神经网络计算成本的过程中,分辨率乘数ρ被识别为第二个关键超参数。它通过缩放输入图像及其后续层内的表示来实现这一目标。值得注意的是,在实践中我们通过指定输入分辨率来隐式地设定该缩放因子ρ。基于此假设,在当前研究中我们可以将网络核心层的关键计算复杂度建模为宽度缩放因子α与分辨率缩放因子ρ的深度可分卷积形式:
D_K\cdot D_K\cdot\alpha M\cdot\rho D_F\cdot\rho D_F+\alpha N
其中ρ∈(0,1)通常通过隐式设定来优化性能,并确保输入分辨率为224、192、160或128中的一个选项
ρ等于MobileNe的基础版本,在这种情况下(即当ρ小于1时),则采用的是更节省计算资源的设计方案。通过分辨率乘法器实现的成本降低幅度约为ρ平方。
以MobileNet为例分析其典型的层结构。
深度可分离卷积、宽度乘法器以及分辨率乘法器均致力于在减少计算复杂度的同时优化模型参数。
表3详细列出了在连续应用架构缩减策略于各层时所对应的计算复杂度与参数规模变化情况。
第一行展示了单个标准卷积操作的基本属性:输入特征图尺寸为14×14×512,并采用了3×3的标准卷积核配置。

4 论文实验
4.1 模型选择
首先,在这项研究中我们采用了深度可分离卷积架构实现MobileNet模型的设计方案,并将其与基于完整卷积设计的传统模型进行了性能对比实验。观察到表4中的数据表明,在ImageNet测试集上与完全卷积相比仅降低了1%的分类精度然而却显著减少了计算量以及参数消耗水平

我们计划展示使用宽度倍增器的较薄模型与使用较少层的较浅模型进行对比分析的结果。为了实现MobileNet更加简洁高效的目标,在表1中移除特征尺寸为14×14×512区域内的5层可分离滤波器。

4.2 模型收缩超参数
表6呈现了通过使用缩放因子α缩减MobileNet架构所带来的精度、计算复杂度与规模之间的权衡关系。实验结果显示,在缩放因子α逐渐减小时,系统性能持续优化;但当缩放因子降至α = 0.25时,性能急剧下降。

表7呈现了经过训练采用降低了输入分辨率的mobilenet后的情况,并详细列出了不同分辨率乘法器在精度、计算能力和大小上的权衡关系。研究发现,在降低输入分辨率的过程中,模型的精度稳步减少。

图4呈现了宽度乘子α∈\{1, 0.75, 0.5, 0.25\}与分辨率ρ∈\{224, 192, 160, 128\}交叉乘积所得结果在ImageNet上的分类准确率与计算资源间的权衡关系研究。研究发现,在宽度乘子取值为α=0.25时(即模型规模极小时),其分类性能呈现出对数线性增长的趋势

通过图5可以看出,在宽度乘数α∈{1, 0.75, 0.5, 0.25}以及分辨率ρ∈{224, 192, 160, 128}时的交叉乘积分析下,一共生成了16个模型,并分析了这些模型在ImageNet数据集上的表现及其参数数量之间的关系

对比实验中,完整MobileNet与原始GoogleNet[30]以及VGG16[27]之间的性能进行了全面评估。实验结果表明:其准确率几乎与VGG16相当;然而,在模型参数规模上实现了显著缩减(约为原始参数量的32倍);同时计算效率也得到了显著提升(约降低至原来的27倍)。进一步对比发现:相比而言,MobileNet的精度更高;然而,在体积上更为紧凑,在计算资源消耗方面也实现了大幅优化(约减少至原来的2.5倍)。

表9对比分析了采用α=0.5以及分辨率缩减至160×160的轻量化MobileNet架构。相比而言,在性能提升方面,轻量化MobileNet相较于AlexNet提升了约4%,其计算复杂度却下降至原来的约9.4%。相比之下,在保持相近尺寸的前提下,轻量化MobileNet在计算开销上较SqueezeNe减少了约22倍的同时仍能实现约4%的优势。

4.3. 细粒度识别
基于Stanford Dogs数据集上的 MobileNet 模型实现细粒度识别任务[。我们改进了现有方法,在互联网上获取了一个规模更大但存在噪声的数据集作为基础[. 利用该有噪声的网络数据进行预训练后, 我们在此基础上对细粒度狗识别模型进行了微调[. 表10展示了 Stanford Dogs 测试集中实验结果[. 在大幅减少计算量与尺寸的前提下, MobileNet 实现了处于最先进水平的结果[.

4.4 大规模地理定位
PlaNet将其卫星定位任务定义为确定地球上某一地点的问题。他的方法是将地球划分为地理单元网格,并在此基础上构建目标类别。该模型利用数百万张地理标记图片进行训练以提高定位精度。基于Inception V3架构的完整模型拥有5200万个可训练参数和57.4亿次乘法加法运算(multi-add)。使用MobileNet架构重新训练后的模型仅包含1300万个可训练参数。通常情况下有300万个参数,
最后一层则拥有1, 万多个,
而额外的乘法加法运算部分则包含约58万项计算
如表11所示, 虽然MobileNet版本更为紧凑, 但相较于PlaNet而言, 其性能仅有微小下降. 此外, 它们的性能均显著优于Im2GPS.

4.5. Face Attributes
另一个应用实例是对具有复杂而难以理解训练程序的大规模系统的压缩任务。在人脸属性分类领域中,我们深入探讨了MobileNet与蒸馏之间的协同作用机制及其性能提升效果,并重点展示了蒸馏作为一种深度学习知识迁移技术的核心原理。
通过MobileNet架构提取人脸属性分类器的方法表明:蒸馏机制的工作原理在于模仿较大模型2的行为而非其真实标签,在大规模(可能无限制)未标注数据集上实现目标。
研究结果表明:结合蒸馏训练带来的扩展优势与MobileNet简洁的设计特点,在无需额外正则化手段(如权重衰减与提前终止)的情况下显著提升了系统性能。
实验数据显示:基于MobileNet框架设计的人脸属性分类器展现出良好的普适性,在表征关键属性时实现了与内部特征相似的表现质量;同时仅占用总计算资源约1%,展现出卓越的有效性。

4.6. Object Detection
表13系统性地对MobileNet与Faster-RCNN[23]及SSD[21]等框架在VGG和Inception V2网络下进行了功能对比分析。在实验设计中发现,在测试集上采用不同模型架构的性能表现存在显著差异。具体而言,在我们的实验设置中发现,在测试集上采用不同模型架构的性能表现存在显著差异。具体而言,在测试集上的实验结果表明,在测试集上的实验结果表明,在测试集上的性能指标结果显示,在测试集上的性能指标结果显示

5总结
我们引入了一种基于深度可分离卷积的新模型架构命名为MobileNets随后探讨了影响模型效率的关键设计要素这些要素为我们提供了优化的基础随后我们展示了如何利用宽度乘法器和分辨率乘法器构建出更加精简快速的mobilenet结构通过权衡适当精度来实现尺寸和延迟的优化最终我们验证了MobileNet在多任务场景中的卓越性能
