HomeBlogTopicsPublish
  • rss

  • contact

© 2025 MIT Licensed

Topics→Machine Learning→Paper MobileNets

Machine Learning

Fundamentals
Decision TreeBackpropagationLinear 1Linear 2Linear 3Linear DualLinear IntroML Numerical MethodsNaive SolveLagrangian Conditions under Equality ConstraintsLagrangian Conditions under Inequality ConstraintsSupport Vector Machine 1Support Vector Machine 2Support Vector Machine 3Convex
Deep Learning Acceleration
Paper DartsPaper MobileNetsPaper ShuffleNetPaper HashingTricksPaper ShuffleNetV2Neural Architecture Search MilestonePyTorch Training Acceleration
Computer Vision
Paper RobotPaper InceptionV4Dataset Cityscapes
Reinforcement Learning
Paper Deep Q-Network

Paper MobileNets

October 2, 2018

by Frank

针对移动和嵌入式视觉应用,本文提出了一种高效的模型称之为 MobileNets,基于 depthwise separable convolutions 构造的一种轻量级神经网络。该模型使用两个超参数来平衡准确率和延迟,并针对二者的平衡在 ImageNet 上做了广泛的实验,与其他模型相比展现出了强大的性能。并通过实验展现了 ImageNet 在各种应用上的强大之处,包括目标检测,精细化分类,人脸属...

Abstract

针对移动和嵌入式视觉应用,本文提出了一种高效的模型称之为 MobileNets,基于 depthwise separable convolutions 构造的一种轻量级神经网络。该模型使用两个超参数来平衡准确率和延迟,并针对二者的平衡在 ImageNet 上做了广泛的实验,与其他模型相比展现出了强大的性能。并通过实验展现了 ImageNet 在各种应用上的强大之处,包括目标检测,精细化分类,人脸属性和大范围地理定位等。

1-Introduction

自从 AlexNet 使深度 CNN 变得流行起来,CNN 在计算机视觉方面变得无所不在,总体趋势在于发明更深更复杂的网络来实现更高的精度。然而这些改进在网络速度和尺寸上并没有起到促进作用,显示应用中的机器人,无人驾驶汽车,AR 等都需要在有限的计算平台下具有实时性。

本文提出了一种高效的网络结构和两个超参数构成的集合来构建用于以上应用的模型,章节 2 审视了前人在构建小型模型方面的经验,章节 3 描述了 MobileNet 的结构和宽度乘子,分辨率乘子这两个超参数,章节 4 描述了其在 ImageNet 和各种应用下的实验,最后章节 5 进行了总结。

2-Prior Work

构建高效的小尺寸网络在最近很流行,很多方法能被分类成两种:压缩欲训练网络或者直接训练小尺寸网络,本文提出的网络结构可以让搭建者来选择满足资源约束的小尺寸网络,MobileNet 主要专注于优化延迟并产出小尺寸网络,许多网络都只考虑了尺寸而没有速度。

MobileNets 利用 depthwise separable convolutions,Inception model 也利用这个来减少前几层的计算量。Flattened networks 利用全分解卷积来构建网络,并且展现了分解网络的潜力。Factorized networks 利用了相似的卷积分解,也利用了 topological connections。另外的还有 Xception network:通过缩放 depthwise separable filters。Squeezenet:利用 bottleneck。其他一些减少计算量的网络:structured transform network,deep fried convnets。

获得小尺寸网络的其他方法:对于欲训练网络的 shrinking,factorizing,compressing,其中 compressing 包含:product quantization,hashing,pruning,vector quantization,Huffman coding。其中 factorization 的方法:[14,20]文献。另外的方法还有 distillation(用大网络的输出来训练小网络),low bit networks。

3-MobileNet Architecture

这一章首先介绍核心的 depthwise separable filters,然后介绍 MobileNet 的网络结构,最后以 shrinking 的两个超参数(宽度乘子,分辨率乘子)的介绍结尾。

3.1-Depthwise Separable Convolutions

depthwise separable convolution 是将一个标准卷积分成了两部分:depthwise convolution 和 1x1 的卷积。同时也将一个卷积层分成了两层:filtering 和 combining。这样的分解可以极大地减少计算量和模型尺寸。标准卷积和 depthwise separable convolution 的对比如下图:两种卷积方式的区别

对于一个标准卷积,假设其输入维度为DF∗DF∗MD_{F}*D_{F}*MDF​∗DF​∗M,输出维度为DG∗DG∗ND_{G}*D_{G}*NDG​∗DG​∗N,卷积核的维度为DK∗DK∗M∗ND_{K}*D_{K}*M*NDK​∗DK​∗M∗N,那么在 stride=1,padding 的情况下,标准卷积的计算公式为:

Gk,l,n=∑i,j,mKi,j,m,n⋅Fk+i−1,l+j−1,mG_{k,l,n}=\sum_{i,j,m}K_{i,j,m,n}\cdot F_{k+i-1,l+j-1,m}Gk,l,n​=i,j,m∑​Ki,j,m,n​⋅Fk+i−1,l+j−1,m​

标准卷积的计算消耗为:

DK⋅DK⋅M⋅N⋅DF⋅DFD_{K}\cdot D_{K}\cdot M\cdot N\cdot D_{F}\cdot D_{F}DK​⋅DK​⋅M⋅N⋅DF​⋅DF​

而 depthwise separable convolution 的计算消耗为:

DK⋅DK⋅M⋅DF⋅DF+M⋅N⋅DF⋅DFD_{K}\cdot D_{K}\cdot M\cdot D_{F}\cdot D_{F}+M\cdot N\cdot D_{F}\cdot D_{F}DK​⋅DK​⋅M⋅DF​⋅DF​+M⋅N⋅DF​⋅DF​

前者为 depthwise convolution 的计算消耗,而后者为 1x1 的卷积的计算消耗,通过比较,二者的计算量之间的减少为:

DK⋅DK⋅M⋅DF⋅DF+M⋅N⋅DF⋅DFDK⋅DK⋅M⋅N⋅DF⋅DF=1N+1DK2\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}}=\frac{1}{N}+\frac{1}{D_{K}^{2}}DK​⋅DK​⋅M⋅N⋅DF​⋅DF​DK​⋅DK​⋅M⋅DF​⋅DF​+M⋅N⋅DF​⋅DF​​=N1​+DK2​1​

如果使用 3x3 的卷积核,那么计算量将减小 8-9 倍,并且在准确率上只有微小的降低。再进一步进行分解[16,31]并不会减少很多计算量因为 depthwise convolution 的计算量已经很小了。

3.2-Network Structure and Training

MobileNet 除了第一层是标准卷积之外,其余结构都是基于 depthwise separable convolution 来构建的。整个网络结构如下图:MobileNet的网络结构

值得一提的是,并不能以小数量的 Mult-Adds 就认为这个模型是高效的。让这些 Mult-Adds 操作能够高效实现同样也很重要。比如非结构化的稀疏矩阵操作并不一定比密集矩阵的操作更快,除非具有很高的稀疏度。我们的模型几乎将所有的计算转化为密集的 1x1 卷积操作,这种操作可以用一种经过高度优化的通用矩阵乘法(GEMM)来实现。通常的用 GEMM 实现的卷积操作需要先使用 im2col 来对输入在内存中重新进行排序,例如这样的操作可以用 Caffe 来实现。而我们的 1x1 卷积则不需要先排序,可以直接应用 GEMM 算法(最优的数值线性代数算法之一)。在 MobileNet 中,95%的 Mult-Adds 操作和 75%的参数都来自 1x1 卷积。

对于训练的细节:TensorFlow+RMSprop+asynchronous gradient descent(类似 InceptionV3)+更少的正则化和数据增强(小模型不容易过拟合)+很少或者没有 weight decay on the depthwise filters(因为里面已经只有很少的参数)

3.3-Width Multiplier: Thinner Models

尽管当前的 MobileNet 已经很小很快了,不过有时候还需要更小的模型,我们引入一个超参数α\alphaα(width multiplier)来构建这些更小的模型,这个参数的目标是均匀的在每一层来让整个网络变得更加瘦小。给定一个α\alphaα,则让输入通道数 M 变为αM\alpha MαM,输出通道数 N 变为αN\alpha NαN,α\alphaα的取值通常为 1,0.75,0.5,0.25,使用了该参数之后的计算量为:

DK⋅DK⋅αM⋅DF⋅DF+αM⋅αN⋅DF⋅DFD_{K}\cdot D_{K}\cdot \alpha M\cdot D_{F}\cdot D_{F}+\alpha M\cdot \alpha N\cdot D_{F}\cdot D_{F}DK​⋅DK​⋅αM⋅DF​⋅DF​+αM⋅αN⋅DF​⋅DF​

计算量大约变成了以前的α2\alpha^{2}α2

3.4-Resolution Multiplier: Reduced Representation

第二个减少网络计算量的超参数是ρ\rhoρ(resolution multiplier), 通过设置输入的分辨率来设置这一参数,然后内部的分辨率也会随之减少,在加上了超参数α,ρ\alpha,\rhoα,ρ之后的计算量则变为:

DK⋅DK⋅αM⋅ρDF⋅ρDF+αM⋅αN⋅ρDF⋅ρDFD_{K}\cdot D_{K}\cdot \alpha M\cdot \rho D_{F}\cdot \rho D_{F}+\alpha M\cdot \alpha N\cdot \rho D_{F}\cdot \rho D_{F}DK​⋅DK​⋅αM⋅ρDF​⋅ρDF​+αM⋅αN⋅ρDF​⋅ρDF​

通常ρ\rhoρ设定之后的分辨率为 224,192,160,128。注意在设定该参数之后计算量会发生变化,但是模型参数则不会发生变化。

4-Experiments

这部分主要讲了一些实验,首先是 depthwise separable convolution,标准卷积的对比,瘦小和浅层 MobileNet 的对比。然后介绍了两个超参数的实验结果,包括 ImageNet 的准确度,Multi-Adds 操作的数量和参数的数量。最后介绍了 MobileNet 在其它一些不同应用上(精细化分类,大尺度地理定位,人脸属性,目标检测,人脸嵌入)的实验结果。

4.1-Model Choices

试验结果表明,全卷积的 MobileNet 和 depthwise separable convolution 相比,精度差不多,但是 depthwise separable convolution 的参数和计算量相比而言小了很多。瘦小和浅层 MobileNet 相比,计算量差不多的情况下瘦小 MobileNet 精度更高一些。实验结果如图:关于模型选择的实验结果

4.2-Model Shrinking Hyperparameters

这一部分是讲关于上述两个超参数调参的,其实验结果如下图所示:超参数调参对比

超参数调参对比

与经典模型的对比

4.3-Fine Grained Recognition

利用 Stanford Dogs dataset 数据集和网上的一些包含噪声的数据上训练了应用于精细化分类的模型,并且进行了很好的调参,最后在减小计算量和模型尺寸的情况下得到了近似于 state of the art 的结果,实验结果如图精细化分类的实验结果

4.4-Large Scale Geolocalizaton

PlaNet 是将这个定位问题转化为一个分类问题来解决,PlaNet 已经成功定位了很多照片,并且在这个问题上的表现已经超过了 Im2GPS,用 MobileNet 结构在同样的数据下重新训练了 PlaNet,实验结果如下图:地理定位的实验结果

4.5-Face Attributes

MobileNet 还能够用于压缩未知训练过程的大规模系统,在人脸属性分类系统中使用了 MobileNet 和 distillation 的协同作用,在将二者进行结合之后,系统不仅不需要进行正则化,而且表现出来了更强的性能,实验结果如下图:人脸属性检测的实验结果

4.6-Object Detection

这个实验利用 VGG,Inception,MobileNet 在 SSD 和 Faster-RCNN 上对 COCO 数据集进行了训练,结果如下图:目标检测的实验结果

4.7-Face Embeddings

FaceNet 是 FaceEmbedding 的 state of the art 结果,这里同样的利用 distillation 来训练 Mobile FaceNet。结果如下图:人脸嵌入的实验结果

5-Conclusion

提出了基于 depthwise separable convolution 的模型结构,并且使用了 width multiplier 和 resolution multiplier 两个超参数来控制模型的复杂度,并且在模型尺寸,速度,准确度上面与其他模型进行了对比,证明了 MobileNet 在多种应用之下的高效性,下一步打算对 MobileNet 进行改进和进一步开发。

6-其他的一些相关总结

数据集:ImageNet(图像分类),Stanford Dogs dataset(精细化分类),YFCC100M(人脸属性),COCO(目标检测)

相关的论文:

数据集

《Imagenet large scale visual recognition challenge》(ImageNet,ILSVRC 2012)

《In First Workshop on Fine-Grained Visual Categorization》(Stanford Dogs dataset)

《Yfcc100m: The new data in multimedia research》(YFCC100M)

更深更复杂精度更高的神经网络

《Inception-v4,inception-resnet and the impact of residual connections onlearning》(InceptionV4)

《Rethinking the inception architecture for computer vision》(InceptionV3,空间维度的额外分解)

《Deep residual learning for image recognition》(resnet)

《Going deeper with convolutions》(GoogleNet)

《Very deep convolutional networks for large-scale image recognition》(VGG16)

《Imagenet classification with deep convolutional neural networks》(AlexNet)

神经网络的压缩加速

《Flattened convolutional neural networks for feedforward acceleration》(空间维度的额外分解)

《Factorized convolutional neural networks》(对卷积进行分解)

《Squeezenet: Alexnet-level accuracy with 50x fewer parameters and¡ 1mb model size》(利用 bottleneck 来实现小型网络)

《Quantized convolutional neural networks for mobile devices》(基于 product quantization 进行压缩)

《Xnornet:Imagenet classification using binary convolutional neural networks》(利用 low bit networks)

《Training deep neural networks with low precision multiplications》(利用 low bit networks)

《Quantized neural networks: Training neural networks with low precision weights and activations》(利用 low bit networks)

《Xception: Deep learning with depthwise separable convolutions》(缩放 depthwise separable filters)

《Structured transforms for small-footprint deep learning》(用于减少计算量的网络)

《Deep fried convnets》(用于减少计算量的网络)

《Compressing neural networks with the hashing trick》(利用哈希来压缩神经网络)

《Rigid-motion scattering for image classification》(最初提出标准卷积分解为 depthwise conv 和 1x1 conv)

《Deep compression: Compressing deep neural network with pruning, trained quantization and huffman coding》(利用哈夫曼编码压缩网络)

《Speeding up convolutional neural networks with low rank expansions》(额外的变量分解)

《Speeding-up convolutional neural networks using fine-tuned cp-decomposition》(额外的变量分解)

《Distilling the knowledge in a neural network》(利用 distillation 来从大型网络训练小网络,以进行压缩)

BN

《Batch normalization: Accelerating deep network training by reducing internal covariate shift》(InceptionV2 也从此而来)

框架

《Caffe: Convolutional architecture for fast feature embedding》

《Tensorflow: Large-scale machine learning on heterogeneous systems》

图像定位

《IM2GPS: estimating geographic information from a single image》(提出了 Im2GPS)

《Large-Scale Image Geolocalization》(关于 Im2GPS)

《PlaNet - Photo Geolocation with Convolutional Neural Networks》(PlaNet)

精细化分类

《The unreasonable effectiveness of noisy data for fine-grained recognition》

目标检测

《Faster r-cnn: Towards real-time object detection with region proposal networks》(Faster-RCNN 框架)

《Ssd: Single shot multibox detector》(SSD 框架)

人脸嵌入

《Facenet: A unified embedding for face recognition and clustering》(FaceNet,基于三元损失来构建人脸嵌入)

←Previous: Paper DartsNext: Paper ShuffleNet→

Comments