Abstract
- 我们介绍了基于互补搜索技术和新颖的体系结构设计相结合的下一代MobileNet。MobileNetV3通过硬件网络架构搜索(NAS)与NetAdapt算法相结合的方式调整到移动电话CPU,然后通过新颖的架构改进进行改进。
- 本文开始探索自动搜索算法和网络设计如何协同工作,以利用互补的方法来改善整体的现状。通过这个过程,我们为发布创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,它们针对高资源和低资源使用情况。然后,这些模型被适应并应用于对象检测和语义分割的任务。
- 对于语义分割(或任何密集像素预测)的任务,我们提出了一种新的有效分割解码器Lite Reduced Atrous Spatial Pyramid Pooling(LR-ASPP)。我们在移动分类、检测和分割方面取得了新的先进成果。
- MobileNetV3-Large在ImageNet分类上的准确度提高了3.2%,与MobileNetV2相比,延迟降低了15%。与MobileNetV2相比,MobileNetV3-Small的准确度提高了4.6%,同时将延迟降低了5%。MobileNetV3-大检测速度提高了25%,与COCO检测时的MobileNetV2大致相同。MobileNetV3-Large LR-ASPP比MobileNetV2 R-ASPP快30%,与Cityscapes细分的准确度相似。
Introduction
- 高效的神经网络在移动应用程序中变得无处不在,从而实现全新的设备体验。它们也是个人隐私的关键推动者,允许用户获得神经网络的好处,而无需将数据发送到服务器进行评估。神经网络效率的进步不仅通过更高的精确度和更低的延迟改善了用户体验,而且通过降低功耗有助于保持电池寿命。
- 本文介绍了我们开发MobileNetV3大型和小型模型的方法,以便为设备上的计算机视觉提供下一代高精度高效神经网络模型。新网络推动了最新技术的发展,并展示了如何将自动搜索与新颖的架构进步相结合,以构建有效的模型。
- 本文的目标是开发尽可能最好的移动计算机视觉架构,优化移动设备上的准确度权衡。为此,我们引入(1)互补搜索技术,(2)适用于移动设置的非线性新有效版本,(3)新有效网络设计,(4)新有效分割解码器。我们提供了全面的实验,证明了在广泛的用例和手机上评估的每种技术的效率和价值。
Related Work
- 近年来,设计深度神经网络架构以实现精度和效率之间的最佳权衡,是一个活跃的研究领域。新颖的手工结构和算法神经结构搜索都在推动这一领域发挥了重要作用。
- SqueezeNet广泛使用1x1卷积,挤压和扩展模块主要集中在减少参数数量上。最近的工作将重点从减少参数转移到减少操作数(MADD)和实际测量的延迟。MobileNetv1采用了深度可分离卷积,大大提高了计算效率。MobileNetv2通过引入一个具有反向残差和线性瓶颈的资源效率块来扩展这一点。ShuffleNet利用组卷积和信道混洗操作来进一步减少MAdds。CondenseNet在训练阶段学习分组卷积,以保持层之间有用的密集连接,以供专长使用。ShiftNet提出了与逐点卷积交织的移位操作,以取代昂贵的空间卷积。
- 为了使架构设计过程自动化,首先引入强化学习(RL)来搜索具有竞争精度的高效架构。完全可配置的搜索空间可以成倍增长并且难以处理。因此,架构搜索的早期工作集中在单元级结构搜索上,并且在所有层中重用相同的单元。最近,[43]探索了一种块级分层搜索空间,允许在网络的不同分辨率块处使用不同的层结构。为了降低搜索的计算成本,在[28,5,45]中使用了基于梯度优化的可微体系结构搜索框架。着重于使现有网络适应受限的移动平台,[48,15,12]提出了更有效的自动化网络简化算法。量化是另一项重要的补充工作,通过降低精度的算法来提高网络效率。最后,知识蒸馏提供了一种额外的补充方法,可以在大型“教师”网络的指导下生成小型精确的“学生”网络。
Efficient Mobile Building Blocks
- 移动模型已经建立在越来越高效的构建模块上。MobileNetV1引入了深度可分离卷积作为传统卷积层的有效替代。通过将空间滤波与特征生成机制分离,深度可分离卷积有效地分解了传统卷积。深度可分离卷积由两个单独的层定义:用于空间滤波的轻重量深度卷积和用于特征生成的较重的1x1逐点卷积。
- MobileNetV2引入了线性瓶颈和倒置残差结构,以通过利用问题的低秩性质来制造更有效的层结构。该结构如图3所示,由一个1x1展开卷积和一个1x1投影层定义。当且仅当它们具有相同数量的通道时,输入和输出才与剩余连接相连。这种结构在输入和输出端保持紧凑的表示,同时在内部扩展到更高的维特征空间,以增加非线性过通道变换的表现力。
- MnasNet基于MobileNetV2结构,将基于挤压和激发的轻量级注意模块引入瓶颈结构。请注意,挤压和激励模块集成在与[20]中提出的基于ResNet的模块不同的位置。该模块放置在深度过滤器中,以便将注意力应用于最大的表示。
- 对于MobileNetV3,我们使用这些层的组合作为构建块,以构建最有效的模型。挤压和激励以及Swish非线性都使用了Sigmoid,它既不擅长计算,也难以保持定点算法的准确性,因此我们将其替换为硬Sigmoid。
Netwoek Search
- 网络搜索已经证明是一种非常强大的工具,可用于发现和优化网络架构。对于MobileNetV3,我们使用平台感知NAS通过优化每个网络块来搜索全局网络结构。然后,我们使用NetAdapt算法在每层搜索过滤器的数量。这些技术是互补的,可以结合使用,为给定的硬件平台有效地找到优化的模型。
- 由于我们使用相同的基于RNN的控制器和相同的分解分层搜索空间,我们发现类似于[43]的大型移动模型的结果,目标延迟大约为80ms。因此,我们只需将相同的MnasNet-A1重新用作我们最初的大型移动模型,然后在上面应用NetAdapt[48]和其他优化。
- 但是,我们观察到原始奖励设计并未针对小型移动模型进行优化。因此,我们需要一个较小的权重因子w=-0.15,以补偿不同延迟的较大精度变化。通过这个新的权重因子w进行增强,我们从头开始一个新的架构搜索来确定初始种子模型,然后应用NetAdapt和其他优化来获得最终的MobileNet v3小模型。
- 我们在架构搜索中使用的第二种技术是NetAdapt。这种方法是平台感知NAS的补充:它允许以顺序方式对各个层进行微调,而不是试图粗略推断全局的架构。简而言之,该技术如下:
- 从平台感知NAS发现的种子网络架构开始。
- 生成一组新提案。 每个提案都代表了一种体系结构的修改,与前一步骤相比,该体系结构的延迟至少减少了δ。对于每个提议,我们使用预先训练的模型,从前面提取新的建议体系结构,截断并随机初始化缺失的权重。 微调每个T步骤的提议,以获得准确性的粗略估计。根据某些指标选择最佳提案。
- 迭代上一步骤,直到达到目标延迟。
Network Improvements
- 除了网络搜索,我们还为模型引入了几个新组件,以进一步改进最终模型。 我们在网络的开始和结束时重新设计了计算成本高昂的层。 我们还引入了一个新的非线性h-swish,最近的swish非线性的修改版本,它计算速度更快,量化更友好。
- 一旦通过体系结构搜索找到模型,我们就会发现最后一些层以及一些早期层比其他层更昂贵。我们提出了一些架构的修改,以便在保持精度的同时减少这些慢层的长度。这些修改超出了当前搜索范围的范围。
- 第一个修改修改了网络最后几层的交互方式,以便更有效地生成最终功能。基于MobileNet V2的反向瓶颈结构和变体的当前模型使用1x1卷积作为最终层,以扩展到更高维度的特征空间。为了具有丰富的预测特征,这一层至关重要。然而,这是以额外的延迟为代价的。
- 为了减少延迟并保留高维特征,我们将此层移到最终的平均池中。现在,这一组最终特征以1x1空间分辨率而不是7x7空间分辨率计算。 这种设计选择的结果是,在计算和延迟方面,特征的计算几乎是免费的。
- 一旦减轻了该特征生成层的成本,就不再需要先前的瓶颈投影层来减少计算。 这种观察允许我们去除先前瓶颈层中的投影和过滤层,进一步降低了计算复杂性。 原始和优化的最后阶段可以在图5中看到。高效的最后阶段将延迟减少10毫秒,这是运行时间的15%,并且操作次数减少了3千万MAdds,几乎没有精度损失。
- 另一个昂贵的层是初始的过滤器。 目前的移动模型倾向于在完整的3x3卷积中使用32个滤波器来构建用于边缘检测的初始滤波器组。 这些过滤器通常是彼此的镜像。我们尝试减少过滤器的数量并使用不同的非线性来尝试减少冗余。 我们决定使用该层的硬晃动非线性,因为它执行以及测试的其他非线性。 我们能够将滤波器的数量减少到16个,同时保持与使用ReLU或swish的32个滤波器相同的精度。 这节省了额外的3毫秒和1000万MAdds。
- 非线性定义为:虽然这种非线性提高了精度,但由于在移动设备上计算sigmoid函数要昂贵得多,因此在嵌入式环境中它具有非零成本。我们用两种方法来处理这个问题。
- 我们将sigmoid函数替换为其分段线性硬模拟:,类似于[11,44]。小的区别是我们使用Relu6而不是自定义剪裁常量。类似地,Swish的硬版本变成了:
- 最近在[2]中也提出了类似的硬开关版本。图6显示了软版和硬版Swish非线性的比较。我们选择常量的动机是简单,并且与原始的平滑版本很匹配。在我们的实验中,我们发现所有这些函数的硬版本在准确性上没有明显的差异,但是从部署的角度来看,它们有很多优点。首先,在几乎所有的软件和硬件框架上都可以使用relu6的优化实现。其次,在量化模式下,它消除了由于近似Sigmod的不同实现而引起的潜在数值精度损失。最后,即使优化实现的量化Sigmod往往远远慢于他们的relu对应。
- 随着我们深入网络,应用非线性的成本会降低,因为每一层激活存储器通常在分辨率下降时减半。顺便说一句,我们发现大多数好处都是通过只在深层使用它们来实现的。因此,在我们的架构中,我们只在模型的后半部分使用h-swish。
- 即使有了这些优化,H-Swish仍然会带来一些延迟成本。然而,正如我们在第6节中所展示的,对准确性和延迟的净影响是积极的,它为进一步的软件优化提供了一个场所:一旦平滑的sogmod被逐段线性函数所取代,大部分开销都在内存访问中,通过融合上一层的非线性可以消除。
- 在[43]中,挤压和激发瓶颈的大小与卷积瓶颈的大小相对应。相反,我们将它们全部替换为扩展层中通道数量的1/4。我们发现这样做可以在适当增加参数数量的情况下提高准确性,并且没有明显的延迟成本。
- 这些模型分别针对高资源使用案例和低资源使用案例。这些模型是通过应用支持平台的NAS和Netadapt进行网络搜索并结合本节中介绍的网络改进而创建的。
Conclusions And Future Work
- 在本文中,我们介绍了mobilenetv3大模型和小模型,展示了移动分类、检测和分割的最新技术。我们已经描述了我们利用多种类型的网络架构搜索以及网络设计的进步来交付下一代移动模型的努力。
- 我们还展示了如何适应像swish这样的非线性,并以量化友好和有效的方式应用挤压和激励,将它们作为有效的工具引入移动模型领域。
- 我们还介绍了一种称为lr-aspp的轻量化分段译码器。尽管如何最好地将自动搜索技术与人类的直觉结合起来仍然是一个悬而未决的问题,但我们很高兴地提出了这些第一个积极的结果,并将继续在未来的工作中重新确定方法。