MobileNetV2: Inverted Residuals and Linear Bottlenecks

Abstract

  • 在本文中,我们描述了一种新的移动架构MobileNetV2,它可以改善移动模型在多个任务和基准以及不同模型尺寸范围内的最先进性能。我们还描述了在我们称之为SSDLite的新框架中将这些移动模型应用于对象检测的有效方法。此外,我们演示了如何通过简化形式的DeepLabv3(我们称之为Mobile DeepLabv3)构建移动语义分段模型。
  • 基于倒置残余结构,其中快捷连接位于薄瓶颈层之间。中间膨胀层使用轻质的深度卷积来过滤特征作为非线性的来源。此外,我们发现为了保持代表能力,去除窄层中的非线性非常重要。我们证明这可以提高性能并提供导致这种设计的直觉。
  • 最后,我们的方法允许输入/输出域与转换的表达性分离,这为进一步分析提供了方便的框架。我们测量我们在ImageNet上的性能分类,COCO物体检测,VOC图像分割。 我们评估准确性与乘法加法(MAdd)测量的操作次数,实际延迟和参数数量之间的权衡。

Introduction

  • 本文介绍了一种新的神经网络架构,该架构专为移动和资源受限环境量身定制。我们的网络推动了移动定制计算机视觉模型的最新技术,通过显着减少所需的操作和内存数量,同时保持相同的精度。
  • 我们的主要贡献是一个新颖的层模块:具有线性瓶颈的倒置残差。 该模块将低维压缩表示作为输入,该表示首先扩展到高维,并使用轻量级深度卷积进行过滤,随后通过线性卷积将特征投影回低维表示。
  • 该模块可以在任何现代框架中使用标准操作有效地实现,并允许我们的模型使用标准基准测试在多个性能点上击败最新技术。此外,这种卷积模块特别适用于移动设计,因为它可以通过永远不会完全实现大型中间张量来显着减少推理期间所需的内存占用。这减少了许多嵌入式硬件设计中对主存储器访问的需求,这提供了少量非常快速的软件控制的高速缓冲存储器。

Related Work

  • 在过去的几年中,调整深度神经架构以在准确性和性能之间取得最佳平衡一直是一个积极研究的领域。最近,在算法架构探索方面取得了很多进展,包括超参数优化以及网络修剪和连接学习的各种方法。
  • 它保留了其简单性,不需要任何特殊操作员,同时显着提高其准确性,实现了移动应用的多种图像分类和检测任务的最新技术水平。

Preliminaries, Discussion and Intuition

  • 深度可分离卷积是许多有效神经网络架构的关键构建块,我们也在目前的工作中使用它们。基本思想是用分解版本替换完整的卷积运算符,该分解版本将卷积分成两个单独的层。第一层称为深度卷积,它通过对每个输入通道应用单个卷积滤波器来执行轻量级滤波。第二层是1×1卷积,称为逐点卷积,它负责通过计算输入通道的线性组合来构建新特征。
  • 深度可分离卷积是标准卷积层的直接替代品。根据经验,他们的工作几乎与普通卷积一样,但只需花费:
  • 长期以来,人们一直认为神经网络中的多种关注点可以嵌入到低维子空间中。 换句话说,当我们查看深度卷积层的所有单个d通道像素时,在这些值中编码的信息实际上位于某些流形中,而这些流形又可嵌入到低维子空间中。
  • 首先,通过简单地减少层的维度从而减少操作空间的维度,可以捕获和利用这样的事实。MobileNetV1已成功利用这一点,通过宽度乘数参数有效地在计算和精度之间进行权衡,并且已被纳入其他网络的高效模型设计中。遵循这种直觉,宽度乘数方法允许人们减少激活空间的维度,直到感兴趣的流体跨越整个空间。然而,当我们回想起深度卷积神经网络实际上是线性的协调变换,例如ReLU时,这种直觉就会崩溃。
  • 很容易看出,一般情况下,如果层变换ReLU(Bx)的结果具有非零体积S,则映射到内部S的点是通过输入的线性变换B获得的,从而表明该部分对应于全维输出的输入空间限于线性变换。换句话说,深度网络仅在输出域的非零体积部分具有线性分类器的能力。 
  • 另一方面,当ReLU折叠通道时,它不可避免地会丢失该通道中的信息。 但是,如果我们有很多通道,并且激活体中有一个结构,那么信息可能仍会保留在其他通道中。在补充材料中,我们表明如果输入流形可以嵌入到激活空间的显着低维子空间中,则ReLU变换保留信息,同时将所需的复杂性引入可表达函数集合中。
  • 总而言之,我们已经强调了两个属性,这两个属性表明了感兴趣的流形应位于高维激活空间的低维子空间中的要求:
  1. 如果在ReLU变换之后感兴趣的流形保持非零体积,则其对应于线性变换。
  2. ReLU能够保留有关输入流形的完整信息,但前提是输入流形位于输入空间的低维子空间中。
  • 这两个见解为我们提供了优化现有神经架构的经验暗示:假设感兴趣的流形是低维的,我们可以通过将线性瓶颈层插入卷积块来捕获它。实验证据表明,使用线性层是至关重要的,因为它可以防止非线性破坏太多信息。对于本文的其余部分,我们将利用瓶颈卷积。 我们将输入瓶颈尺寸与内部尺寸之间的比率称为膨胀比。
  • 受到瓶颈实际上包含所有必要信息的直觉的启发,而扩展层仅作为张量非线性转换的实现细节,我们直接在瓶颈之间使用快捷方式。插入快捷方式的动机类似于经典残差连接的动机:我们希望提高梯度在乘数层之间传播的能力。 然而,倒置设计的内存效率要高得多,并且在我们的实验中效果稍好一些。
  • 我们的体系结构的一个有趣的特性是,它在构建块(瓶颈层)的输入/输出域和层转换之间提供了自然的分离——这是一个将输入转换为输出的非线性函数。前者可以看作是每一层网络的容量,后者则是表现力。这与传统的卷积块(规则块和可分离块)形成了鲜明的对比,在卷积块中,表现力和容量交织在一起,是输出层深度的函数。特别是,在我们的例子中,当内层深度为0时,由于快捷连接,底层卷积就是标识函数。当膨胀比小于1时,这是一个经典的残余卷积块。但是,出于我们的目的,我们表明膨胀率大于1是最有用的。

Model Aechitecture

  • 基本构建块是一个带有残差的瓶颈深度可分卷积。该模块的详细结构如表1所示.MobileNetV2的体系结构包含初始完全卷积层和32个滤波器,后面是表2中描述的19个残余瓶颈层。由于其鲁棒性,我们使用ReLU6作为非线性 当用于低精度计算时。 我们总是使用内核大小3×3 标准形式的现代网络,并在训练期间利用丢失和批量归一化。
  • 除第一层外,我们在整个网络中使用恒定的扩展速率。在我们的实验中,我们发现5到10之间的扩展速率导致几乎相同的性能曲线,较小的网络通过略小的扩展速率获得更好的结果,而较大的网络具有稍微更好的性能和更大的扩展速率。
  • 我们通过使用输入图像分辨率和宽度乘数作为可调超参数来定制我们的架构到不同的性能点,可以根据所需的精度/性能权衡进行调整。我们的主要网络(宽度乘数1,224×224),计算成本为3亿乘法,并使用340万个参数。我们探索性能权衡,输入分辨率从96到224,宽度乘数从0.35到1.4。网络计算成本范围从7乘以585M MAdds,而模型大小在1.7M和6.9M参数之间变化。

Implementation Notes

  • 倒置的残留瓶颈层允许特别的存储器有效实现,这对于移动应用非常重要。

Conclusions and future work

  • 我们描述了一个非常简单的网络架构,使我们能够构建一系列高效的移动模型。我们的基本建筑单元具有多种特性,使其特别适合移动应用。它允许非常有效的内存推理,并依赖于所有神经框架中存在的标准操作。
  • 对于ImageNet数据集,我们的架构改进了各种性能点的最新技术水平。对于物体检测任务,我们的网络在准确性和模型复杂性方面优于COCO数据集上的最先进的实时检测器。值得注意的是,与YOLOv2相比,我们的架构与SSDLite检测模块相结合,计算量减少了20倍,参数减少了10倍。
  • 在理论方面:所提出的卷积块具有独特的属性,允许将网络表达性(由扩展层编码)与其容量(由瓶颈输入编码)分开。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值