mobilenetV3 是搜索技术和架构设计相结合的下一代mobilenet。MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法对移动电话cpu进行调优,然后通过新的架构改进对其进行改进。本文开始探索自动化搜索算法和网络设计如何协同工作,利用互补的方法来提高整体水平。通过这个过程,我们创建了两个新的发布的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,它们针对高资源和低资源用例。然后将这些模型应用于目标检测和语义分割。针对语义分割(或任何密集像素预测)任务,我们提出了一种新的高效分割解码器Lite reduce Atrous Spatial Pyramid Pooling (LR-ASPP)。我们实现了移动分类、检测和分割的最新技术成果。与MobileNetV2相比,MobileNetV3-Large在ImageNet分类上的准确率提高了3.2%,同时延迟降低了15%。与MobileNetV2相比,MobileNetV3-Small的准确率高4.6%,同时延迟降低了5%。MobileNetV3-Large检测速度比MobileNetV2快25%,在COCO检测上的精度大致相同。MobileNetV3-Large LR-ASPP的速度比MobileNetV2 R-ASPP快30%,在城市景观分割的精度类似.
本文的目标是开发最佳的移动计算机视觉架构,以优化移动设备上的精确延迟交换。为了实现这一点,我们引入了
设计深度神经网络结构来实现精度和效率之间的最优平衡是近年来一个活跃的研究领域。无论是新颖的手工结构还是算法神经结构搜索,都在这一领域发挥了重要作用。
SqueezeNet[22]广泛使用1x1卷积与squeeze和扩展模块,主要集中于减少参数的数量。最近的工作将关注点从减少参数转移到减少操作的数量(MAdds)和实际测量的延迟。MobileNetV1[19]采用深度可分离卷积,大大提高了计算效率。MobileNetV2[39]在此基础上进行了扩展,引入了一个具有反向残差和线性瓶颈的资源高效块。ShuffleNet[49]利用组卷积和信道洗牌操作进一步减少MAdds。CondenseNet[21]在训练阶段学习组卷积,以保持层与层之间有用的紧密连接,以便功能重用。ShiftNet[46]提出了与点向卷积交织的移位操作,以取代昂贵的空间卷积。
为了使体系结构设计过程自动化,首先引入了增强学习(RL)来搜索具有竞争力的精度的高效体系结构[53,54,3,27,35]。一个完全可配置的搜索空间可能会以指数级增长且难以处理。因此,早期的架构搜索工作主要关注单元级结构搜索,并且在所有层中重用相同的单元。最近,[43]探索了一个块级分层搜索空间,允许在网络的不同分辨率块上使用不同的层结构。为了降低搜索的计算成本,在[28,5,45]中使用了可微架构搜索框架,并进行了基于梯度的优化。针对现有网络适应受限移动平台的问题,[48,15,12]提出了更高效的自动化网络简化算法。量化[23,25,47,41,51,52,37]是另一个重要的补充努力,通过降低精度的算法来提高网络效率。最后,知识蒸馏[4,17]提供了一种附加的补充方法,在大型Teacher网络的指导下生成小而精确的Student网络。
Mobile模式已经建立在越来越高效的基础之上。MobileNetV1[19]引入深度可分离卷积作为传统卷积层的有效替代。深度可分卷积通过将空间滤波与特征生成机制分离,有效地分解了传统卷积。深度可分卷积由两个独立的层定义:用于空间滤波的轻量级深度卷积和用于特征生成的较重的1x1点卷积。
MobileNetV2[39]引入了线性瓶颈和反向残差结构,以便利用问题的低秩性质使层结构更加有效。这个结构如图3所示,由1x1展开卷积、深度卷积和1x1投影层定义。当且仅当输入和输出具有相同数量的通道时,才用剩余连接连接它们。该结构在保持输入和输出的紧凑表示的同时,内部扩展到高维特征空间,以提高非线性过通道变换的表达能力。
MnasNet[43]建立在MobileNetV2结构上,通过在瓶颈结构中引入基于squeeze和激励的轻量级注意模块。注意,与[20]中提出的基于ResNet的模块相比,挤压和激励模块集成在不同的位置。模块位于展开中的深度过滤器之后,以便注意应用于最大的表示,如图4所示。
对于MobileNetV3,我们使用这些层的组合作为构建块,以便构建最有效的模型。图层也通过修改swish nonlinearities来升级[36,13,16]。挤压和激励以及swish nonlinearities都使用了sigmoid,它的计算效率很低,而且很难在定点算法中保持精度,因此我们将其替换为h-sigmoid[2,11],如5.2节所讨论的。
网络搜索已经成为发现和优化网络架构的一个非常强大的工具[53,43,5,48]。对于MobileNetV3,我们使用平台感知platform-aware NAS通过优化每个网络块来搜索全局网络结构。然后,我们使用NetAdapt算法搜索每个层的过滤器数量。这些技术是互补的,可以结合起来为给定的硬件平台有效地找到优化模型。
与[43]类似,我们采用platform-aware 神经结构方法来寻找全局网络结构。由于我们使用相同的基于RNN的控制器和相同的分解层次搜索空间,所以对于目标延迟在80ms左右的大型移动模型,我们发现了与[43]类似的结果。因此,我们只需重用与初始大型移动模型相同的MnasNet-A1[43],然后在其上应用NetAdapt[48]和其他优化。
然而,我们发现最初的奖励设计并没有针对小型手机模型进行优化。具体来说,它使用一个多目标奖励ACC(m) [LAT(m)=TAR]w来近似pareto最优解,根据目标延迟TAR为每个模型m平衡模型精度ACC(m)和延迟LAT(m)。我们观察到,随着小模型的延迟时间的增加,准确度的变化会更加显著;因此,我们需要一个较小的权重因子w = -0.15(与[43]中原始的w = 0.07相比)来补偿不同延迟下较大的精度变化。在新的权重因子w的增强下,我们从头开始一个新的架构搜索,以找到初始的seed模型,然后应用NetAdapt和其他优化来获得最终的MobileNetV3-Small模型。
我们在架构搜索中使用的第二种技术是NetAdapt[48]。这种方法是对平台感知NAS的补充:它允许以顺序的方式对单个层进行微调,而不是试图推断出粗糙但全局的体系结构。详情请参阅原文。简而言之,这项技术的进展如下:
3.重复前面的步骤,直到达到目标延迟.
在[48]中,度量是为了最小化精度的变化。我们修改了这个算法,使延迟变化和精度变化的比例最小化。也就是说,对于每个NetAdapt步骤中生成的所有建议,我们选择一个最大化的建议: A c c / l a t e n c y Acc / latency Acc/latency 延迟满足2(a)中的约束。直觉告诉我们,由于我们的建议是离散的,所以我们更喜欢最大化权衡曲线斜率的建议。
这个过程重复进行,直到延迟达到目标,然后从头开始重新培训新的体系结构。我们使用与在[48]中为MobilenetV2使用相同的提案生成器。具体来说,我们允许以下两种提议:
在我们的实验中,我们使用T = 10000,发现虽然它增加了提案初始微调的准确性,但是当从零开始训练时,它并没有改变最终的准确性。我们设置δ= 0.01L, L是种子的延迟模型。
除了网络搜索,我们还为模型引入了几个新组件,以进一步改进最终模型。我们在网络的开始和结束时重新设计了计算成本高昂的层。我们还引入了一个新的非线性:h-swish,它是最近的swish非线性的修改版本,它更快计算和更加量化。
一旦通过体系结构搜索找到模型,我们就会发现最后一些层以及一些早期层比其他层更昂贵。我们建议对架构进行一些修改,以减少这些慢层的延迟,同时保持准确性。这些修改超出了当前搜索空间的范围。
第一个修改重新设计网络的最后几层如何交互,以便更有效地生成最终特征。基于MobileNetV2倒置瓶颈结构和变体的当前模型使用1x1卷积作为最终层,以便扩展到更高维度的特征空间。该层对于具有丰富的预测特征至关重要。然而,这是以额外延迟为代价的。
为了减少延迟并保留高维特征,我们将此层移动到最终平均池之后。最后一组特征现在以1x1空间分辨率而不是7x7空间分辨率计算。这种设计选择的结果是,在计算和延迟方面,特征的计算几乎是免费的。
一旦减轻了该特征生成层的成本,就不再需要先前的瓶颈投影层来减少计算。这种观察允许我们去除先前瓶颈层中的投影和过滤层,进一步降低了计算复杂性。原始和优化的最后阶段可以在图5中看到。有效的最后阶段将延迟减少10毫秒,这是运行时间的15%,并且操作次数减少了3千万MAdds,几乎没有精度损失。第6节包含详细结果。
另一个昂贵的层是初始的过滤器集。当前的移动模型倾向于在完整的3x3卷积中使用32个滤波器来构建用于边缘检测的初始滤波器组。这些过滤器通常是彼此的镜像。我们尝试减少滤波器的数量,并使用不同的非线性来尝试减少冗余。我们决定对这一层使用硬swish非线性,因为它的表现和其他非线性测试。我们能够将过滤器的数量减少到16个,同时保持与使用ReLU或swish的32个过滤器相同的精度。这节省了额外的3毫秒和1000万madd。
在[36,13,16]中引入了一种称为swish的非线性,当作为ReLU的替代变量时,它可以显著提高神经网络的准确性。非线性定义为
s w i s h x = x ∗ a ( x ) swish x = x*a(x) swishx=x∗a(x)
虽然这种非线性提高了精度,但在嵌入式环境中,它的成本是非零的,因为在移动设备上计算sigmoid函数要昂贵得多。我们用两种方法处理这个问题。
在[43]中,压缩-激发瓶颈的大小与卷积瓶颈的大小有关。取而代之的是,我们将它们全部替换为固定为膨胀层通道数的1/4。我们发现这样做可以在适当增加参数数量的情况下提高精度,并且没有明显的延迟成本。
MobileNetV3定义为两个模型:MobileNetV3-large,MobileNetV3-Small。这些模型分别针对高资源用例和低资源用例。通过应用平台感知的NAS和NetAdapt进行网络搜索,并结合本节定义的网络改进,可以创建模型。我们的网络的完整规范见表1和表2。
我们提供了实验结果来证明新的MobileNetV3模型的有效性。我们报告分类、检测和分割的结果。我们也报告各种消融研究,以阐明各种设计决策的影响。
由于已经成为标准,我们在所有分类实验中都使用ImageNet[38],并将准确度与各种资源使用度量(如延迟和乘法加法(MAdds))进行比较。
我们使用同步的训练设置来训练我们的模型4x4 TPU Pod[24]采用标准 tensorflow的RMSPropOptimizer,动量为0.9。我们使用初始学习率为0.1,批次大小为4096(每个芯片128张图像),学习率衰减率为每3个epoch降低0.01。我们使用 0.8的dropout, l2权值衰减为1e-5,图像预处理与Inception[42]相同。最后,我们使用衰减为0.9999的指数移动平均。我们所有的卷积层都使用批处理归一化层,平均衰减为0.99。
为了测量延迟,我们使用标准的谷歌像素手机,并通过标准的TFLite基准测试工具运行所有网络。我们在所有测量中都使用单线程大内核。我们没有报告多核推理时间,因为我们发现这种设置对移动应用程序不太实用。
如图1所示,我们的模型优于目前的技术状态,如MnasNet[43]、ProxylessNas[5]和MobileNetV2[39]。我们在表3中报告了不同像素手机上的浮点性能。我们在表4中包括量化结果。在图7中,我们展示了MobileNetV3性能权衡作为乘数和分辨率的函数。注意MobileNetV3- small的性能如何优于MobileNetV3- Large,它的乘数缩放到与性能匹配的程度,接近3%。另一方面,决议提供了比乘数更好的权衡。但是,需要注意的是,分辨率往往是由问题决定的(例如分割和检测问题通常需要更高的分辨率),因此t不能总是用作可调参数。
非线性的影响 在表5和图8中,我们展示了在何处插入h-swish的决定如何影响延迟。特别重要的是,我们注意到,在整个网络上使用h-swish会导致精度略有提高(0.2),同时增加了近20%的延迟,并再次回到有效边界。另一方面,与ReLU相比,使用h-swish提高了效率边界,尽管仍然比ReLU贵12%左右。最后,我们注意到,当h-swish通过融合到卷积运算符中得到优化时,我们预计h-swish和ReLU之间的延迟差距即使没有消失,也会显著减小。然而,h-swish和swish之间不可能有这样的改进,因为计算sigmoid本来就比较昂贵。图9中我们展示了不同组件的引入是如何沿着延迟/准确度曲线移动的。
我们使用MobileNetV3作为 SSDLite[39]中骨干特征提取器的替代模块,并与COCO dataset[26]上的其他骨干网络进行了比较。
在MobileNetV2[39]之后,我们将第一层SSDLite附加到输出步长为16的最后一个特征提取器层,并将第二层SSDLite附加到输出步长为32的最后一个特征提取器层。根据检测文献,我们将这两个特征提取层分别称为C4和C5。为MobileNetV3-Large, C4是第13个瓶颈块的膨胀层。对于MobileNetV3-Small, C4是第9个瓶颈块的膨胀层。对于这两个网络,C5都是池化层之前的一层。
我们还将C4和C5之间的所有特征层的信道数减少了2。这是因为MobileNetV3的最后几层被调优为输出1000个类,当将90个类转移到COCO时,这可能是多余的。COCO测试集的结果如表6所示。在信道缩减的情况下,MobileNetV3-Large比具有几乎相同映射的MobileNetV2快25%。在相同的延迟下,MobileNetV2和MnasNet比MobileNetV2和MnasNet高2.4和0.5。对于这两种MobileNetV3模型,通道减少技巧在没有地图丢失的情况下可以减少大约15%的延迟,这表明Imagenet分类和COCO对象检测可能更喜欢不同的特征提取器形状。
在本小节中,我们使用MobileNetV2[39]和提出的MobileNetV3作为移动语义分割的网络骨架。此外,我们比较了两个分割头。第一个是在[39]中提出的R-ASPP。R-ASPP是一种Atrous Spatial Pyramid Pooling模块的简化设计[7,8,9],它只采用由11个卷积和一个全局平均池化操作组成的两个分支[29,50]。
在本文中,我们提出了另一种轻量级分割头,称为Lite R-ASPP(或LR-ASPP),如图10所示。Lite R-ASPP是对R-ASPP的改进,它部署全局平均池的方式类似于压缩和激励模块[20],其中我们使用了一个大池内核,具有较大的步长(以节省一些计算),并且模块中只有一个11个卷积。我们对MobileNetV3的最后一个块应用atrous convolution[18, 40, 33, 6]来提取更密集的特性,并进一步从底层特性添加一个跳过连接[30]来捕获更详细的信息。
我们使用度量mIOU[14]对Cityscapes数据集[10]进行了实验,只利用了精细的注释。我们采用与[8,39]相同的培训方案。我们所有的模型都是从零开始训练,没有在ImageNet[38]上进行预训练,并使用单尺度输入进行评估。与目标检测类似,我们发现我们可以在不显著降低性能的情况下,将网络主干最后一块的信道减少2倍。我们认为这是因为主干网设计了1000类ImageNet图像分类[38],而Cityscapes只有19类,这意味着主干网中存在一定的信道冗余。
我们在表7中报告Cityscapes验证集的结果。如表所示,我们观察到
表8显示了我们的Cityscapes测试集结果。我们的以MobileNetV3为网络主干的细分模型,其性能分别比ESPNetv2[32]、CCC2[34]和ESPNetv1[32]好10.5%、10.6%、12.3%,但在Madds方面速度更快。在MobileNetV3的最后一个块中,当不使用atrous卷积提取密集特征图时,性能略有下降0.6%,但速度提高到1.98B(对于半分辨率输入),分别比ESPNetv2、CCC2和ESPNetv1快1.7倍、1.59倍和2.24倍。此外,我们的模型与MobileNetV3-Small作为网络骨干仍然优于所有他们至少一个健康的利润率6.2%。我们最快的模型版本比ESPNetv2-small好13.6%,推理速度稍微快一些
在本文中,我们介绍了MobileNetV3大小的模型,展示了在moblile分类、检测和分割方面的最新技术。我们描述了我们的努力,利用多种类型的网络架构搜索以及先进的网络设计,以交付下一代移动模型。我们还展示了如何适应非线性,如swish和应用压缩和激励的量化友好和有效的方式,将它们作为有效的工具引入移动模型领域。我们还介绍了一种新的轻量级分割解码器,称为LR-ASPP。尽管如何将自动搜索技术与人类直觉最好地结合起来仍然是一个悬而未决的问题,但我们很高兴地展示了这些初步的积极结果,并将在未来的工作中继续改进这些方法。