《MobileNets: Efficient Convolutional Neural Networks for Mobile VisionApplications》中文翻译

摘要:

我们为移动和嵌入式视觉应用程序提出了一类名为mobilenet的高效模型。mobilenet基于一种流线型的架构,使用深度可分离卷积来构建轻量级的深度神经网络。我们引入了两个简单的全局超参数,可以有效地在延迟和准确性之间进行权衡。这些超参数允许模型构建者根据问题的约束为他们的应用程序选择合适大小的模型。我们在资源和准确性的权衡上进行了大量的实验,并显示了与其他流行模型相比的强大性能ImageNet分类。然后,我们在广泛的应用和用例中展示了mobilenet的有效性,包括对象检测、细粒度分类、人脸属性和大规模地理定位。

1.引言

自从AlexNet[19]通过赢得ImageNet挑战而普及深度卷积神经网络以来,卷积神经网络已经在计算机视觉中无处不在:ILSVRC 2012[24]。为了达到更高的精度,总的趋势是制作更深、更复杂的网络[27,31,29,8]。然而,这些提高准确性的进步并不一定会使网络在规模和速度方面更高效。在许多现实世界的应用中,如机器人、自动驾驶汽车和增强现实,识别任务需要在计算有限的平台上及时执行。

本文描述了一种高效的网络架构和一组两个超参数,以构建非常小的、低延迟的模型,可以很容易地满足移动和嵌入式视觉应用的设计需求。第2节回顾了之前建立小模型的工作。第3节描述了MobileNet架构和两个超参数宽度乘法器和分辨率乘法器,以定义更小和更高效的MobileNet。第4部分描述了ImageNet上的实验以及各种不同的应用程序和用例。第5节以总结和结论结束。

2.之前的工作

在最近的文献中,人们对构建小型和高效的神经网络越来越感兴趣,例如[16,34,12、36、22]。许多不同的方法一般可以分为压缩预训练网络和直接训练小型网络。本文提出了一类网络架构,允许模型开发人员为其应用程序选择匹配资源限制(延迟、大小)的小型网络。mobilenet主要专注于优化延迟,但也产生小型网络。许多关于小型网络的论文只关注规模,而没有考虑速度。

mobilenet主要是由深度可分离卷积构建的,该卷积最初在[26]中引入,随后在Inception模型[13]中使用,以减少前几层的计算。扁平化网络[16]是由完全分解卷积构建的网络,展示了极分解网络的潜力。与本文无关的是,分解网络[34]引入了类似的分解卷积以及拓扑连接的使用。随后,Xception网络[3]演示了如何扩展深度可分离过滤器以执行Inception V3网络。另一个小型网络是
Squeezenet[12]使用瓶颈方法设计一个非常小的网络。其他简化计算网络包括结构化变换网络[28]和deep fried convnets[37]。获得小型网络的另一种方法是收缩、分解或压缩预先训练的网络。文献中已经提出了基于积量化[36]、哈希[2]、剪枝、矢量量化和Huffman编码[5]的压缩方法。此外,人们还提出了各种分解方法来加速预训练的网络[14,20]。另一种训练小网络的方法是蒸馏[9],它使用一个较大的网络来教一个较小的网络。它是对我们的方法的补充,在第4节的一些用例中已经介绍过了。另一种新兴的方法是低位网络[4,22,11]。

 图1 MobileNet模型可以应用于各种识别任务,以提高设备智能的效率

3.MobileNet架构

在本节中,我们首先描述了核心层,MobileNet是建立在其上的深度可分离的过滤器。然后描述了MobileNet的网络结构,最后描述了两个模型的收缩超参数、宽度乘法器和分辨率乘法器。

3.1深度可分离卷积

MobileNet模型基于深度可分卷积这是一种分解卷积的形式,它将一个标准卷积分解为深度卷积和一个1×1卷积称为点卷积。对于MobileNets,深度卷积应用一个单一的滤波器到每个输入通道。然后,逐点卷积应用1×1卷积将输出与深度卷积组合在一起。一个标准的卷积在一个步骤中既可以过滤输入,又可以将输入组合成一组新的输出。深度可分离卷积将其分为两层,一层用于滤波另一层用于合并。这种分解方法可以大大减少计算量和模型大小。图2显示了如何将标准卷积2(a)分解为深度卷积2(b)和1 × 1点的卷积2 (c)。

 (a) 标准卷积过滤器

 (b) Depthwise 卷积过滤器

 (c) 1×1在深度可分离卷积的背景下称为点态卷积的卷积滤波器

图2 将(a)中的标准卷积滤波器替换为(b)中的深度卷积和(c)中的点卷积两层,构建深度可分离滤波器。

标准卷积层以D_F × D_F × M特征图F作为输入,得到D_F × D_F × N特征图G,其中D_F为方形输入特征图map1的空间宽度和高度,M为输入通道数(输入深度),D_G为正方形输出feature map的空间宽度和高度,N为输出通道数(输出深度)。标准卷积层由大小为D_K×D_K×M×N的卷积核K参数化,其中D_K为核的空间维数,假设为平方,M为输入通道数,N为前面定义的输出通道数。假设步幅为1和填充,标准卷积的输出特征图计算如下:

标准卷积的计算代价为:

 

 其中计算代价与输入通道数M、输出通道数N相乘,核大小D_K × D_K和特征映射大小D_F × D_F。MobileNet模型解决了这些术语中的每一个以及它们之间的交互。首先,它使用深度可分离卷积来打破输出通道数与内核大小之间的相互作用。

标准卷积运算具有基于卷积核的特征滤波和特征组合以产生新的表示的效果。通过使用称为深度可分离卷积的分解卷积,可以将滤波和组合步骤分成两个步骤,以大幅降低计算成本。

深度可分离卷积由两层组成:深度卷积和点卷积。我们使用深度卷积来为每个输入通道(输入深度)应用一个过滤器。然后使用点态卷积(一个简单的1×1卷积)创建深度层输出的线性组合。mobilenet在这两层都使用批处理规范(BN)和ReLU非线性。

每个输入通道有一个滤波器的深度卷积(输入深度)可以写成:

 其中Kˆ为大小为D_K × D_K × M的深度卷积核,将Kˆ中的第M个滤波器应用于F中的第M个通道,得到过滤后的输出feature mapGˆ的第M个通道。

深度卷积的计算代价为:

 相对于标准卷积,深度卷积是非常有效的。然而,它只过滤输入通道,并没有将它们组合起来创建新的功能。因此,为了生成这些新特征,需要一个额外的层,通过1 × 1的卷积计算深度卷积输出的线性组合。

深度卷积和1 × 1的组合(逐点)卷积被称为深度可分离卷积,它最初是在[26]中引入的。

深度可分离卷积的代价:

 也就是深度卷积和1×1点态卷积的总和。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值