专栏首页YZh学习记录MobileNetv1 论文阅读
原创

MobileNetv1 论文阅读

1. 摘要及引言

我们针对移动端以及嵌入式视觉的应用提出了一类有效的模型叫MobileNets。MobileNets基于一种流线型结构使用深度可分离卷积来构造轻型权重深度神经网络。我们介绍两个能够有效权衡延迟和准确率的简单的全局超参数。这些超参数允许模型构造器能够根据特定问题选择合适大小的模型。

2. 现有工作

论文第二章对现有工作做了简要回顾及总结,总结如下:

近期已经有一些构造小而有效的神经网络的文献,

如SqueezeNet

Flattened convolutional neural networks for feedforward acceleration、

Imagenet classification using binary convolutional neural networks、

Factorized convolutional neural networks、

Quantized convolutional neural networks for mobile devices。

这些方法可以大概分为要么是压缩预训练网络,要么直接训练小型网络

本文提出一类神经网络结构允许特定模型开发人员对于其应用上可以选择一个小型网络能匹配已有限制性的资源(延迟、尺寸)。MobileNets首先聚焦于优化延迟,但是也产生小型网络,许多文献在小型网络上只聚焦于尺寸但是没有考虑过速度问题。

MobileNets首先用深度可分离卷积(Rigid-motion scattering for image classification中首先被提出)进行构建,随后被用在inception结构中(GoogLeNetv2)来减少首先几层的计算量。Flattened networks构建网络运用完全分解的卷积并证明了极大分解网络的重要性。而Factorized Networks介绍了一个相似的分解卷积和拓扑连接的使用。随后,Xception network描述了如何放大深度可分离滤波器来完成InceptionV3网络。另一个小型网络是SqueezeNet,使用bottleneck的方法来设计一个小型网络。其他的减少计算的网络包含STN(Structured trans- forms for small-footprint deep learning.)和deep fried convnets(Deep fried convnets)。

另一种不同的途径就是收缩、分解、压缩预训练网络。基于乘积量化的压缩(Quantized convolutional neural networks for mobile devices.)基于哈希的压缩(Compressing neural networks with the hashing trick)基于剪枝、矢量量化、霍夫曼编码的压缩(Deep compression: Com- pressing deep neural network with pruning, trained quantiza- tion and huffman coding.)也被提出来。另外各种因子分解也被提出来加速预训练网络(Speeding up convolutional neural networks with low rank expansions.)(Speeding-up convolutional neural net- works using fine-tuned cp-decomposition.)其他方法来训练小型网络即为蒸馏法(Distillingtheknowledge in a neural network)即用一个大型的网络来教导一个小型网络。其于我们的方法相辅相成,在第4节中包含了一些我们的用例。另一种新兴的方法即低比特网络(Training deep neural networks with low precision multiplications.)(Quantized neural networks: Training neural net- works with low precision weights and activations.)(Xnor- net: Imagenet classification using binary convolutional neu- ral networks.)。

3. MobileNet结构

3.1 深度可分离卷积

卷积类型汇总:

2D卷积,3D卷积,深度可分离卷积。分组卷积,空洞卷积等

https://blog.csdn.net/gwplovekimi/article/details/89890510

【目前对反卷积,空间可分离卷积不太理解】

空洞卷积知识点:

感受野大小,卷积核大小,空洞率

https://blog.csdn.net/hfuter2016212862/article/details/105931187/

3.2 网络结构和训练

图1 mobileNet v1 网络结构
图2 普通卷积与深度可分离卷积

MobileNet95%的计算时间都花费在1x1的逐点卷积上,并且占参数量的75%,如表2所示。其他额外的参数几乎都集中于全连接层。

而,与训练大型网络模型不同的是,我们使用了非常少的正则化以及数据增强技术,因为小模型很少有过拟合的问题。当训练MobileNet时,我们没有使用side heads或者标签平滑操作,另外通过限制在大型Inception层训练中小的裁剪的大小来减少失真图片的数量。另外,我们发现在深度卷积中尽量不加入权重衰减(L2范数)是非常重要的,因为深度卷积中参数量很小。

3.3 宽度乘法器:更薄的模型

为了构建这些更小并且计算量更小的模型,我们引入了一种非常简单的参数α叫做宽度乘法器。宽度乘法器α的作用就是对每一层均匀薄化。

给定一个层以及宽度乘法器α,输入通道数M变成了αM,并且输出通道数变成αN。

加上宽度乘法器的深度可分离卷积的计算量如下:DK∗DK∗αM∗DF∗DF+αM∗αN∗DF∗DF

其中:输入通道数M、输出通道数N、卷积核大小DK、输出特征图大小DF

由于α∈(0,1],一般设置为1\0.75\0.5\0.25。

当α=1的时候就是最基本的MobileNet,

当α<1时,就是薄化的MobileNet。

宽度乘法器对计算量和参数量的减少大约α平方倍。宽度乘法器可以应用在任何模型结构来定义一个更瘦的模型,并且权衡合理的精度、延迟的大小。宽度乘法器常用来薄化一个新的需要从头开始训练的网络结构。

3.4 分辨率乘法器:约化表达

第二个薄化神经网络计算量的超参数是分辨率乘法器ρ。

实际上,我们通过设置ρ来隐式的设置输入的分辨率大小。

我们现在可以对网络中的核心层的深度可分离卷积加上宽度乘法器α以及分辨率乘法器ρ来表达计算量:DK∗DK∗αM∗ρDF∗ρDF+αM∗αN∗ρDF∗ρDF

其中ρ∈(0,1],一般隐式的设置以便于输入网络的图像分辨率为224\192\160\128等。

当ρ=1时为最基本的MobileNet,

当ρ<1时,则为薄化的MobileNet。分辨率乘法器对网络约化大约ρ的平方倍。

接下来举个例子,MobileNet中的一个典型的层以及深度可分离卷积、宽度乘法器、分辨率乘法器是如何约化计算量和参数量。

表3中展示了一层的计算量和参数量以及结构收缩的这些方法应用在这些层之后的变化。第一行显示了全连接层的Mult-Adds和参数量,其输入特征图为14x14x512,并且卷积核的尺寸为3x3x512x512。我们将在下一节详细阐述资源和准确率之间的权衡关系。

4. 实验

4.1 比较标准卷积网络与深度可分离卷积网络MobileNet

如表4,我们可以看见在ImageNet数据集上使用深度可分离卷积相较于标准卷积准确率只减少了1%,但在计算量和参数量上却减少了很多。

为了使MobileNet更浅,表1中的5层14x14x512的特征尺寸的可分离卷积层都被去掉了。表5展示了相同计算量参数量的情况下,让MobileNets薄化3%比让它网络更浅效果更好。

4.2 模型压缩超参数

表6展示了利用宽度乘法器αα对MobileNet网络结构进行薄化后准确率,计算量和尺寸之间的权衡关系。准确率直到宽度乘法器αα下降到0.25才显示下降很多。

表7展示了通过利用约化的MobileNets时不同分辨率乘法器时准确率、计算量和尺寸之间的权衡关系。准确率随着分辨率下降而平滑减小。

图4显示了16个不同的模型在ImageNet中准确率和计算量之间的权衡。这16个模型由4个不同的宽度乘法器{1,0.75,0.5,0.25}以及不同分辨率{224,192,160,128}组成。当αα=0.25时,模型变得非常小,整个结果呈现对数线性跳跃。

图5显示了16个不同模型在ImageNet中准确率和参数量之间的权衡。这16个模型由4个不同的宽度乘法器{1,0.75,0.5,0.25}以及不同分辨率{224,192,160,128}组成。

表8比较了最基本的MobileNet与原始GoogleNet和VGG16。MobileNet和VGG16准确率几乎一样,但是参数量少了32倍,计算量少了27倍。相较于GoogleNet而言,准确率更高,并且参数量和计算量都少了2.5倍。

表9比较了约化后的MobileNet(α=0.5,并且分辨率为160x160,原本为224x224)与AlexNet以及SqueezeNet。约化后的MobileNet相较于这两个模型,准确率都高,并且计算量相较于AlexNet少了9.4倍比SqueezeNet少了22倍。

4.3 细粒度识别

斯坦福狗数据集.我们使用网上的噪声数据集先预训练一个细粒度识别狗的模型,然后在斯坦福狗数据集上进行精调。结果显示在表10中。MobileNet几乎可以实现最好的结果,并且大大减少了计算量和尺寸。

4.4 大规模地理信息

我们在相同数据集上利用MobileNet结构重新训练PlaNet,因为PlaNet基于inceptionV3结构,其有5200万参数以及5.74亿的乘加计算量。而MobileNet只有1300万参数量以及几百万的乘加计算量。在表11中,MobileNet相较于PlaNet只有少数准确率的下降,然而大幅度的优于Im2GPS。

4.5 人脸属性

我们使用MobileNet结构提炼一个人脸属性分类器。通过训练分类器来蒸馏工作来模拟一个大型模型的输出,而不是真实的标签。因此能够训练非常大(接近无限)的未标记的数据集。结合蒸馏训练的可扩展性以及MobileNet的简约参数化,终端系统不仅要求正则化(权重衰减和早停),而且增强了性能。如表12中可以明显看到基于MobileNet-base分类器针对模型收缩更有弹性变化:它在跨属性间实现了一个相同的mAP但是只用了1%的乘加运算。

4.6 目标检测

我们在COCO数据集上训练得到结果并且赢得了2016COCO挑战赛。在表13中,MobileNet与VGG和InceptionV2在Faster-RCNN以及SSD框架下进行比较。

在我们的实验中,SSD由分辨率为300的输入图片进行检测,Faster-RCNN有300和600两种分辨率进行比较。Faster-RCNN模型每张图片测试了300RPN候选区域框,模型利用COCO的训练和验证集进行训练,包含了8000张微缩图片,并且在微缩图片中进行测试。对于上述框架,MobileNet与其他网络进行比较,计算复杂度和模型尺寸相当于其他模型的一小部分。

4.7 人脸嵌入

FaceNet是艺术人脸识别模型中最好的。它构建了基于三次损失的人脸嵌入。为了构建移动端FaceNet模型,我们在训练集上通过最小化FaceNet和MobileNet之间的平方差来蒸馏训练。结果展示在表14中。

5 结论

我们提出了一个新的模型基于深度可分离卷积网络结构MobileNet。我们调研了一些重要的设计决策来引领一个有效的模型。然后我们描述了如何使用宽度乘法器和分辨率乘法器通过权衡准确率来减少尺寸和延迟来构建更小更快的MobileNets。然后将MobileNet与著名的模型在尺寸、速度和准确率上进行比较。我们总结了当MobileNet应用在各种任务中的有效性。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 论文翻译:Deep Learning on Radar Centric 3D Object Detection

    即使许多现有的3D目标检测算法主要依赖于摄像头和LiDAR,但camera和LiDAR容易受到恶劣天气和光照条件的影响。radar能够抵抗这种情况。近期研究表明...

    yzh
  • MobileNetV2 论文阅读

    MobileNetv2架构是基于倒置残差结构(inverted residual structure),原本的残差结构的主分支是有三个卷积,两个逐点卷积通道数较...

    yzh
  • CAM 系列论文阅读总结

    CAM全称Class Activation Mapping,既类别激活映射图,也被称为类别热力图。

    yzh
  • OpenStack Neutron之层次化端口绑定

    作者简介:肖宏辉,毕业于中科院研究生院,思科认证网络互连专家(CCIE),8年的工作经验,其中6年云计算开发经验,关注网络,OpenStack,SDN,NFV等...

    SDNLAB
  • 在线机器学习算法理论与实践

    Online Learning(在线机器学习)是工业界比较常用的机器学习算法,在很多场景下都能有很好的效果。本文主要介绍Online Learning的基本原理...

    用户1208773
  • Oracle 中 sys和system帐号的区别

      安装完成oracle后,通常都会发现有2个系统级别的帐号可以登录,但从来没有考虑过这2个帐号之间有什么区别,后来从一位老师那里得知了区别所在,便记录下来。

    程序员一一涤生
  • 深度强化学习 ( DQN ) 初探

    程序你好
  • 深度强化学习 ( DQN ) 初探

    "DQN"又被称作深度Q网络, 即卷积神经网络 + Q-Learning, 本文首先介绍Q-Learning的相关知识,接着介绍CNN相关知识,最后给出一个训练...

    罗晖
  • 深度学习的fine-tuning过程

    在深度学习过程中,获取数据集后,在搭建自己的网络之前需要进行的是微调,通过别人现有的网络观察自己数据的实验结果,并在此基础上,初步确定自己网络的大体结构,其中微...

    云时之间
  • LVHA

    用户1696846

扫码关注云+社区

领取腾讯云代金券