MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文笔记
来源:互联网 发布:狸窝mp4视频转换器mac 编辑:程序博客网 时间:2024/05/16 09:55
Abstract
作者针对手机和嵌入式视觉应用设备提出了一类叫做MobileNets的非常有效的模型。MobileNets基于采用了depthwise separable convolutions的流线型网络结构来构建轻量级的DNN。作者引入了两个全局超参数(width
multiplier
一、Introduction
在AlexNet赢得ILSVRC 2012之后深度卷积网络开始流行,CNN开始广泛应用于机器视觉领域。目前有个趋势是设计更深、更复杂的网络来获取更高的精度,然而在实际应用中,由于模型尺寸和速度的约束,这种以模型大小和速度为代价来提高模型精度的改进的需求并不大。在机器人、自动驾驶、AR等现实生活应用场景中,往往要求视觉识别任务能在计算能力有限的硬件平台上实时完成。
针对手机和其它嵌入式视觉应用的设计需求,这篇论文提出了一种非常有效的模型结构和2个超参数来帮助模型构建者轻松构建低延迟的小模型。
论文的第2部分回顾了人们以前为构建小模型所做出的努力。
第3部分描述了MobileNet的网络结构和width multiplier、resolution multiplier两个辅助构建更小、更高效MobileNets的超参数。
第4部分描述了作者在ImageNet上实验和一些其他的广泛应用。
第5部分进行了总结。
二、Prior Work
在最近公开的一些论文暗示了人们对于构建高效的小型神经网络的兴趣日渐提升。现有的构建高效小型神经网络的方法可以大致归为2类,一类是压缩已经训练好的网络,另一类是直接训练一个小网络。
本文提出了一种允许开发者根据实际应用设备的资源限制(如延迟、尺寸)针对性的选择网络大小的网络结构。MobileNets最初主要是为了优化模型的识别速度降低延迟,但是也能够产出小模型。其他许多设计小网络的论文把重心放在了网络大小却忽略的速度。
MobileNets主要使用depthwise separable convolutions构建。depthwise separable convolutions最开始在一篇论文Rigid-motion scattering for image classification中提出,后来被用在Inception模型上减小前几层的计算量。
论文Flattenedconvolutional neural networks for feedforward acceleration中的Flattened networks用完全因式分解的卷积构建了一个网络,并展现了极度因式分解网络的潜力。
论文Factorized convolutional neural networks介绍了一种更小型的因式分解卷积和拓扑连接的使用。
随后论文Xception: Deep learning with depthwise separable convolutions中,Xception网络演示了如何增加depthwise separable filters以胜过InceptionV3。
另一篇论文提出的Squeezenet使用了bottleneck的方法设计小网络。
其他减小计算量的网络还有 structured transform networks 和 deep fried convnets 。
另一类获得小网络的方法是缩小、因式分解或压缩训练好的网络。
压缩网络的方法有product quantization、hashing、pruning、vector quantization 和 Huffman coding 。
另外还有许多用来加速训练好的网络的变种因式分解方法被提出。
另一种训练小网络的方法是蒸馏法(distillation),这类方法是用一个大型网络来教一个小网络。蒸馏法在本文第4部分的一些用例中和MobileNets形成互补。
还有一种方法是low bit networks。
三、MobileNet Architecture
在本节作者会首先介绍构建MobileNet时使用的核心层depthwise separable 卷积层,然后介绍MobileNet的网络结构和用来缩小模型的两个超参数width multiplier 和 resolution multiplier。
3.1 Depthwise Separable Convolution
MobileNet模型基于depthwise separable卷积层构建。一个
一个标准的卷积层把滤波和融合输出放在一步进行。而depthwise separable卷积层把这个实现分为2层,一层做滤波一层做融合。这种因式分解可以有效的降低计算量和模型尺寸。
图2是一个标准卷积层分解为一个depthwise卷积层和一个pointwise卷积层的示意图。
一个标准卷积层的参数形状是
在stride为1,加上和卷积核尺寸对应的padding使
标准卷积层通过卷积核对特征进行滤波并融合特征来产出新的表示(representation),MobileNets使用depthwise separable卷积层把滤波和输出特征融合分解为2步从而降低了计算量。
depthwise卷积层的输入F形为
pointwise卷积层的输入F形为
depthwise separable卷积层的总计算量为:
对比depthwise separable卷积层的计算量和标准卷积层的计算量:
MobileNet的depthwise separable卷积层使用
MobileNet在depthwise separable卷积层的depthwise卷积层和pointwise卷积层中均加入了BN和ReLU。
3.2 Network Structure and Training
除了第一层使用了标准卷积层,Mobilenet的主要网络结构基于前面提到过的depthwise separable卷积层。以简单的方式定义网络有助于探索网络拓扑以找到一个好的网络。Mobilenet的结构定义见表1。
所有的卷积层后面都跟着一个BN和一个非线性激活函数ReLU,最后的全连接层的输出直接给到softmax层做分类。
图3对比了标准的卷积层+BN+ReLU和depthwise separable卷积层+BN+ReLU。针对depthwise separable卷积层,depthwise 卷积层和pointwise 卷积层后面都跟着BN和ReLU。
网络的主体部分没有使用池化层做降采样,而是通过卷积层的strided实现。只有最后一个卷积层后面跟了一个平均池化层把空间分辨率降低到1,然后把输出给到最后的全连接层。把每个depthwise separable卷积层当成2层计算,只计算卷积层和全连接层的话,MobileNet有28层。
想要提高网络的计算速度,只是在定义网络的时候使用较少的Mult-Adds是不够的,还要保证这些操作符的实现是高效的。举个例子,非结构化的稀疏矩阵运算速度不一定明显比密集矩阵运算速度快,除非这个稀疏矩阵真的非常稀疏。从前面分析过depthwise separable卷积层的计算量,depthwise卷积层的计算量为
如表2所示,MobileNet 约有95%的计算时间花费在
MobileNet 模型使用TensorFlow训练,采用了和Inception V3训练时相似的RMSprop优化器和异步更新梯度方法。和训练大模型不同的是,因为小模型相对不容易过拟合,在训练MobileNet时作者用了较少的正则化和数据增强。作者没有使用 side heads 和 label smoothing,并通过限制图片crop的尺寸来减少distortions的图片的数量。而且,作者发现在depthwise卷积层使用很小、甚至0的权重衰减(L2的正则化)是很重要的,因为depthwise卷积层在MobileNet中的的参数占比本来就很小。 对于作者的这个观点,我的理解是,对于ImageNet数据集,这是合理的,因为ImageNet的数据量很大,相对于ImageNet那么大的数据量,MobileNet是一个小模型,不容易过拟合。但是如果在一个小规模数据集上训练MobileNet,是很可能出现过拟合的,要根据具体情况决定是否使用各种防止过拟合的方法。
文章后面的所有模型,无论模型尺寸是多少,在ImageNet上的benchmarks都是用相同的参数训练的。
3.3 Width Multiplier: Thinner Models
虽然基础MobileNet结构已经非常小、延迟非常低,但是很多时候一些特殊的应用场景需要更小、更快的模型。为了能够方便的构建这些尺寸更小、计算量也更小的模型,作者引入了一个简单的参数width multiplier
3.4 Resolution Multiplier: Reduced Representation
第二个用来减小网络计算量的超参数是resolution multiplier
举例说明在MobileNet中depthwise separable卷积层、width multiplier和resolution multiplier对计算量和参数量的影响。表3中,每行的修改都是基于上一行的,其中第一行是一个标准卷积层,输入特征图的尺寸是
四、Experiments
在本节,作者首先调查了depthwise separable卷积层的效果,并证明了缩小网络时,和减少网络层数相比,减小网络的宽度是个更好的选择。接着,作者展示了通过折中选择减小width multiplier和resolution multiplier来减小网络的结果,并和其他的流行模型做了比较。最后,作者调查了MobileNets在不同领域的可用性。
4.1 Model Choices
作者首先展示了使用了depthwise separable卷积层的MobileNet和使用标准卷积层的模型的对比。如表4,使用depthwise separable卷积层相对于使用标准卷积层,在ImageNet上精度只下降了1%,但是减少了大量的计算和参数。接着,作者展示了使用width multiplier的瘦长网络和移除表1中5个输入为
4.2 Model Shrinking Hyperparameters
精度、计算量、模型尺寸和width multiplier
精度、计算量、模型尺寸和网络输入分辨率的关系如表7所示。精度随着网络输入分辨率的下降比较平滑的下降。
图4显示了在width multiplier
图5展示了在width multiplier
如表8所示,标准的MobileNet和原始的GoogleNet相比,精度更高,模型更小,计算量只有其
表9比较了
4.3 Fine Grained Recognition
作者针对斯坦福的细粒度狗分类数据集,训练了MobileNet。作者扩展了论文The unreasonable effectiveness of noisy data for fine-grained recognition中的方法,在网络上收集了大量的带有噪声的训练集,使用网络收集的带噪声的训练集做预训练,然后在斯坦福的狗数据集上fine-tune。结果如表10所示,MobileNet在大幅降低计算量和模型尺寸的前提下,几乎获得了state of the art的结果。
4.4 Large Scale Geolocalizaton
PlaNet通过把地球分成一个个地理栅格作为分类类别,在上百万有地理标签的图片上训练卷积网络,把照片在哪拍摄的问题转变为了图像分类问题。PlaNet表现出超过Im2GPS方法的精度,成功的定位了大量变化的图片。作者使用MobileNet作为PlaNet的网络结构,代替原本使用的有5200万参数、5.74亿mult-adds操作符的Inception V3进行了重新训练。MobileNet只有1300万的参数,其中300万在网络结构的主体上,1000万在最后一层;并且只有58万的mult-adds操作符。如表11所示,使用MobileNet只比使用Inception V3精度轻微下降,甚至有些情况精度更高。而且,精度大幅超过Im2GPS。
4.5. Face Attributes
另一个MobileNet的用例是压缩具有未知或复杂训练流程的大型系统。在人脸属性分类任务中,作者证明了MobileNet和distillation的协作关系。distillation是深度学习中迁移技术。作者打算把一个在类似YFCC100M的多属性数据集上训练的大型的人脸属性分类器从7500万的参数和16亿的Mult-Adds进行压缩精简。
作者使用MobileNet网络结构提取一个人脸分类器。Distillation通过让小网络模仿学习大网络的输出来得到一个有类似功能的小网络,由于小网络的训练标记是大网络的输出而不是真实的人工标记数据,因而可以使用大量未标记的图片进行训练,这样就有了几乎无限扩大训练集的潜力。结合了distillation扩充数据集的能力和MobileNet参数精简的网络结构,最终系统训练的时候不仅不需要使用正则化,而且还能提高精度。如表12所示,基于MobileNet的分类器在模型压缩时展现了非常好的性能,只用了1%的Multi-Adds就得到了相近的mAP。
4.6 Object Detection
MobileNet也可以在目标检测系统中作为高效的基础网络部署。作者基于2016 COCO目标检测竞赛的一些优秀算法,替换基础网络为MobileNet在COCO目标检测数据集上重新训练。MobileNet使用Faster-RCNN和SSD算法框架同VGG和Inception V2的对比如表13所示。实验中,SSD使用300的输入分辨率,Faster-RCNN分别使用300和600两种分辨率。Faster-RCNN的RPN每张图给出300个bbox给检测网络。这些模型都在COCO train+val除了8k minival的图像上训练,使用minival的图像进行评估。无论是SSD还是Faster-RCNN,MobileNet都在较小的计算代价和模型尺寸的情况下得到了还可以的结果。
4.7 Face Embeddings
FaceNet是基于triplet loss的构建face embeddings的state of the art的人脸检测模型。作者利用distillation,通过最小化FaceNet和MobileNet在训练集的输出的方差构建一个在基于MobileNet的手机上可用的FaceNet模型。结果如表14所示。
五、Conclusion
作者在这篇论文中提出了一种基于depthwise separable卷积层的模型MobileNets。作者调查研究了决定模型效率的重要设计因素,并演示了如何使用width multiplier 和 resolution multiplier构建权衡了合理精度、尺寸和延迟的更小更快的MobileNets。作者还通过和流行的网络进行比较,展现了MobileNets优秀的尺寸、速度、精度特性。MobileNet在一系列广泛变化的任务中被证明有效。MobileNet现已在TensorFlow中发布。
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文笔记
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- [论文阅读]MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- [论文解读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- 手机CNN网络模型--MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- 网络小型化MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- Reading Note: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications个人理解
- 轻量化网络:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- How to design DL model(1):Efficient Convolutional Neural Networks for Mobile Vision Applications
- 论文记录_MobileNets Efficient Convolutional Neural Networks for Mobile Vision Application
- 论文记录_MobileNets Efficient Convolutional Neural Networks for Mobile Vision Application
- 《Hardware Accelerated Convolutional Neural Networks for Synthetic Vision Systems》笔记
- 16 Quantized Convolutional Neural Networks for Mobile Devices论文翻译笔记
- 论文笔记《Convolutional Neural Networks for Sentence Classification》
- 【论文笔记】Large-Margin Softmax Loss for Convolutional Neural Networks
- Uva 10391
- JAVA 基础知识 数组
- 设计模式(4)-抽象工厂模式及抽象工厂与工厂模式的区别
- Javascript模块化编程(三):require.js的用法
- mysql(10):基础,ORDER 子句的语法介绍
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文笔记
- jQuery –AJAX
- day04_innerHTML属性
- Qt+OpenCV以时间命名视频名字
- Mindjet MindManager 2018(思维导图)官方注册版64位V2018.18.1.154下载 | mindmanager中文破解版
- importError: No module named site
- Java 面试题 精准推荐
- android闪光灯控制
- Unity+Vuforia+Window10打包 PC