美文网首页
MobileNets: Efficient Convolutio

MobileNets: Efficient Convolutio

作者: 表达_ | 来源:发表于2019-09-25 16:44 被阅读0次

    Abstract

    针对移动端和嵌入式视觉应用问题,本文提出一类名为MobileNets的高效模型。它的基本单元是轻量化深度网络的深度可分离的卷积操作组成的流线型网络结构。引入了两个能够平衡延迟和精度的超参数。这些超参数允许模型构建者根据问题的约束为其应用程序选择适当大小的模型。我们在资源和精度权衡方面进行了大量的实验。与其他流行的ImageNet分类模型相比,我们的模型显示了较强的性能。我们在许多诸如目标检测、细粒度分类、人脸检索和大范围的地理定位任务上证明了MobileNets的高效性。

    1 Introduction

    自从AlexNet通过赢得了2012年ImageNet挑战赛ILSVRC冠军的方式推广了深度学习以来,卷积神经网络变得无处不在。为了获得提升模型的分类正确率,业界广泛的做法是让模型变得更深和更复杂。但是,这些提升模型正确率的先进做法并不一定会使网络在规模和速度方面变得更加高效。在很多现实生活中的应用,例如机器人、自动驾驶和虚拟现实,识别任务需要在计算资源有限的平台上及时实现。本文描述了一个高效的网络架构和一组包含两个超参数的集合,以便构建非常小而且低延迟的模型,这些模型可以很容易地匹配移动和嵌入式视觉应用程序的设计需求。

    2 Prior Work

    在最近的研究中,研究者对建立小而高效模型越来越感兴趣。许多不同的方法通常可以分为压缩预训练模型和直接训练小模型。MobileNet主要关注于优化延迟但也产生小型网络模型。

    Small Network

    1)Flattened network:展示完全分解的网络和完全分解网络的潜能。
    2)Factorized network:引入了一种类似于网络卷积分解和拓扑结构的连接。
    3)Xception Network:如何拓展深度可分离卷积核以便超过Inception V3的性能。
    4)SqueezeNet:使用bottleneck的方法设计了一个小型网络。
    5)Structured transform network、deep fried convnets。

    Compressing Pretrained networks

    1)product quantization
    2)hashing
    3)pruning、vector quantization and Huffman coding
    4)distillation which uses a larger network to teach a smaller network
    5)low bit networks

    3 MobileNet Architecture

    MobileNet核心是深度可分离卷积(depthwise separable convolution)。深度可分离卷积将标准卷积操作分解为深度卷积和逐点卷积。这样的分解可以大幅度降低参数量和计算量。

    3.1 Depthwise Separable Convolution

    image.png

    输入的特征图尺寸为(D_F, D_F, M),采用的标准卷积K为(D_K, D_K, M, N)(如上图(a)所示),输出特征映射尺寸为(D_G, D_G, N)。
    标准卷积的卷积计算公式为:

    image.png
    对应的计算量为:
    image.png
    MobileNet利用深度可分离卷积操作将标准卷积拆分为深度卷积和逐点卷积:
    • 深度卷积负责滤波作用,尺寸为(D_K, D_K, 1, M)如图(b)所示。输出特征为()
    • 逐点卷积负责转换通道(combining features)。尺寸为(1, 1, M, N)。
      深度卷积的卷积公式为:
      image.png
      深度卷积的计算量为:
      image.png
      深度可分离卷积的计算量为
      image.png
      计算量减少为:
      image.png

    3.2 Network Structure and Training

    标准卷积和MobileNet中使用的深度可分离卷积的结构对比如下:


    image.png

    注意:MobileNet需要下采样时,则在上一层的深度卷积取步长为2。

    MobileNet具体的结构如下:


    image.png

    除了最后一层FC层没有非线性激活函数外,其他层都有BN和RELU非线性函数。

    MobileNet几乎将所有的密集运算放在了1\times1卷积上,这可以使用general matrix multiply(GEMM)functions优化。在MobileNet中有95%的时间花在了1\times1卷积上,这部分也占了75%的参数。图下表所示:

    image.png
    剩下的参数几乎都在FC层上了。
    在tensorflow中使用RMSprop对MobileNet做训练,使用类似于Inception V3的异步梯度下降。与训练大型网络模型不同的是,使用了较少的正则化和数据增强技术,因为较小的模型不容易过拟合。没有使用side heads和label smoothing,我们发现在深度卷积核上使用较少的L2正则化或者不设置权重衰减很重要,因为这部分的参数很少。

    3.3 Width Multiplier: Thinner Models

    为了得到更小和计算损耗更少的模型,引入了第一个控制模型大小的超参数:宽度因子α,用于控制输入和输出的通道数,即输入通道从M变为αM,输出通道从N变为αN
    深度卷积和逐点卷积的计算量:

    image.png
    α可设置为∈(0,1],通常取1,0.75,0.5,和0.25。
    计算量减少为原来的:
    =+

    3.4 Resolution Multiplier:Reduced Representation

    引入了第二个控制模型大小的超参数:分辨率因子ρ。
    深度可分离卷积的参数量为:

    image.png
    可设置ρ∈(0,1],通常设置输入分辨率为224,192,160和128。
    计算量减少为:
    =+
    分辨率因子将计算量和参数降低了约ρ^2倍,可以方便的调节模型。
    下表展示了宽度因子和分辨率因子对模型的影响:
    image.png

    第一行是标准卷积的参数量和Multi-Adds;第二行是将标准卷积改为深度可分离卷积,参数量降低约为原来的1/10,Multi-Adds降低为原本的1/9。使用α和ρ参数再将参数降低一半,Multi-Adds再成倍下降。

    4 Experiments

    实验部分主要研究以下4个方面:1)深度可分离卷积的影响、宽度因子的影响、两个超参数的权衡、与其他模型的对比。

    4.1 Model Choices

    使用深度可分离卷积的MobileNet与使用标准卷积的MobileNet之间的对比:


    image.png

    在精度上损失了1%,但是计算量和参数量降低了一个数量级。

    原MobileNet的配置如下:

    image.png
    为了进一步缩小模型,可将MobileNet中的5层的深度可分离卷积去除。
    实验结果对比:
    image.png
    可以看到在类似的参数量和计算量下,精度减小了3%。(中间的深度可分离卷积起到过滤特征的作用,参数量少,冗余度相比于大量逐点卷积应该是少很多的。)

    4.2 Model Shrinking Hyperparameters

    单参数验证

    表6展示宽度因子对模型参数量、计算量精度
    的影响,表7显示分辨率因子对模型参数量、计算量精度的影响:


    image.png

    使用过程中要权衡参数对模型性能和大小的影响。

    交叉验证计算量对精度的影响

    图4显示了16个交叉的模型在ImageNet上的表现,宽度因子的取值为α∈{1,0.75,0.5,0.25},分辨率取值为{224,192,160,128}。


    image.png

    当模型越来越小时,精度可近似呈对数跳跃形式下降。

    交叉验证参数量对精度影响

    图4显示了16个交叉的模型在ImageNet上的表现,宽度因子的取值为α∈{1,0.75,0.5,0.25},分辨率取值为{224,192,160,128}。


    image.png

    与其他先进模型的对比

    表8将完整的MobileNet与原始GoogleNet和VGG-16对比,MobileNet与VGG16有相似的精度,参数量和计算量减少了2个数量级。

    image.png
    表9是MobileNet的宽度因子和分辨率设置为的缩小模型与其他模型对比结果,结果如下。
    image.png

    其他应用场景

    4.3 Fine Grained Recognition

    在Standford Dogs Dataset的表现如下:


    image.png

    MobileNet在计算量和参数量降低1个数量级的同时几乎保持相同的精度。

    4.4 Large Scale Geolocalization

    PlaNet是做大规模地理分类任务,使用了MobileNet的框架重新设计了PlaNet,对比如下:


    image.png

    基于Inception V3架构的PlaNet有5200万参数和574亿的Multi-Adds,而基于MobileNet的PlaNet只有1300万参数(300万主体参数,1000万是最后分类层参数)和58万的Multi-adds,相比之下,只是性能稍微受损,但还是比原Im2GPS效果好多了。

    4.5 Face Attributes

    MobileNet的框架技术可用于压缩模型,在Face Attributes任务中,验证了MobileNet的蒸馏技术的协同关系,蒸馏的核心是让小模型去模拟大模型,而不是直接逼近Ground Label:


    image.png

    将蒸馏技术和MobileNet技术精简性结合到一起,最终系统不仅不需要正则技术,而且表现出更强的性能。

    4.6 Object Detection

    image.png

    4.7 Face Embeddings

    FaceNet是现阶段最先进的人脸识别模型,基于MobileNet和蒸馏技术训练出结果如下:


    image.png

    Conclusion

    论文提出了一种基于深度可分离卷积的新模型MobileNet,同时提出了两个超参数用于快速调节适配到特定的环境。实验部分将MobileNet与许多先进模型做对比,展现出MobileNet在模型尺寸、计算速度和精度上的优势。

    相关文章

      网友评论

          本文标题:MobileNets: Efficient Convolutio

          本文链接:https://www.haomeiwen.com/subject/snzructx.html