搜索MobileNetV3
摘要
我们将结合互补的搜索技术和新颖的架构设计,展示下一代MobileNets。通过结合硬件感知的网络架构搜索(NAS)和NetAdapt算法,将MobileNetV3调整至手机CPU,然后通过新颖的架构改进对其进行改进。本文开始探索自动搜索算法和网络设计如何协同工作以利用互补的方法来改善整体技术水平。通过此过程,我们创建了两个用于重新发布的新MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,它们分别针对高资源和低资源的用例。然后将这些模型改编并应用于对象检测和语义分割的任务。对于语义分割(或任何密集像素预测)的任务,我们提出了一种新的有效分割解码器精简版减少空间金字塔空间池(LR-ASPP)。我们实现了移动分类,检测和分割的最新技术成果。与MobileNetVV2相比,MobileNetV3-Large在ImageNet分类上的准确度高3.2%,而延迟却降低了20%。与延迟相当的MobileNetV2模型相比,MobileNetV3-Small的准确度高6.6%。 MobileNetV3-Large的检测速度快25%以上,精度与COCO检测上的Mo-bileNetV2相同。对于Cityscapes分割,MobileNetV3-Large LR-ASPP比MobileNetV2 R-ASPP快34%。
1.引言
高效的神经网络在移动应用中正变得无处不在,从而实现了全新的设备上体验。它们还是个人隐私的关键推动力,使用户无需将其数据发送到要评估的服务器即可获得神经网络的好处。神经网络效率的提高不仅可以通过更高的准确性和更低的延迟来改善用户体验,而且还可以通过降低功耗来节省电池寿命。
本文介绍了我们为开发MobileNetV3大模型和小模型而采用的方法,以便提供下一代高效,高效的神经网络模型来为设备上的计算机视觉提供动力。新的网络推动了最新技术发展,并展示了如何将自动搜索与新颖的架构先进技术相结合,以构建有效的模型。
本文的目的是开发最佳的移动计算机视觉架构,以优化在移动设备上的精度-延迟权衡。为此,我们引入了(1)互补搜索技术,(2)适用于移动设置的非线性的新高效版本,(3)新的高效网络设计,(4)新的高效分段解码器。我们提供了详尽的实验,展示了在各种使用案例和移动电话上评估的每种技术的功效和价值。
本文的结构如下。我们将从第2节中的相关工作开始讨论。第3节回顾了用于移动模型的有效构建基块。第4节介绍架构搜索以及MnasNet和NetAdapt算法的互补性。第5节介绍了新颖的架构设计,该设计提高了通过联合搜索发现的模型的效率。第6节介绍了用于分类,检测和分段的广泛实验,以证明其有效性并了解不同元素的作用。第7节包含结论和未来的工作。
2.相关工作
近年来,设计深度神经网络架构以实现精度和效率之间的最佳折衷一直是一个活跃的研究领域。新颖的手工结构和算法神经体系结构搜索在推进该领域方面都发挥了重要作用。
SqueezeNet [22]广泛使用带有压缩和扩展模块的1x1卷积,主要侧重于减少参数数量。最近的工作将重点从减少参数转移到减少操作数(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]提供了一种额外的补充方法,可以在大型“教师”网络的指导下生成小的准确的“学生”网络。
3.高效的移动构建块
移动模型已经建立在越来越高效的构建块上。 MobileNetV1 [19]引入了深度方向可分离卷积作为传统卷积层的有效替代。深度可分离卷积通过将空间过滤与特征生成机制分离开来,有效地分解了传统卷积。深度可分离卷积由两个单独的层定义:用于空间滤波的轻型深度深度卷积和用于特征生成的较重的1x1点向卷积。
MobileNetV2 [39]引入了线性瓶颈和倒置残差结构,以便通过利用问题的低秩性质来提高效率。这种结构如图3所示,由1x1扩展卷积,深度卷积和1x1投影层定义。当且仅当它们具有相同数量的通道时,输入和输出才通过剩余连接进行连接。这种结构在输入和输出处保持紧凑的表示形式,同时在内部扩展到更高维度的特征空间以提高非线性每通道变换的表达能力。
MnasNet [43]通过在瓶颈结构中引入基于挤压和激励的轻量级注意力模块,在MobileNetV2结构的基础上构建。注意,与[20]中提出的基于ResNet的模块相比,挤压和激励模块集成在不同的位置。该模块在扩展中的深度过滤器之后放置,以便将注意力放在最大的表示上,如图4所示。
对于MobileNetV3,我们使用这些层的组合作为构建块,以构建最有效的模块。层也通过修改后的不振非线性来升级[36、13、16]。挤压和激励以及缓慢的非线性都使用S形,这对于定点算术的计算和保持精度都具有效率,因此效率低下,因此我们将其替换为5.2所述的硬S形[2,11]。
4.网络搜索
网络搜索已经证明是发现和优化网络体系结构的非常强大的工具[53、43、5、48]。对于MobileNetV3,我们使用可感知平台的NAS通过优化每个网络块来搜索全局网络结构。然后,我们使用NetAdapt算法在每层中搜索过滤器的数量。这些技术是互补的,可以组合起来以有效地找到给定硬件平台的优化模型。
4.1。平台感知NAS用于逐块搜索
类似于[43],我们采用了平台感知的神经架构方法来查找全局网络结构。由于我们使用相同的基于RNN的控制器和相同的分解式分层搜索空间,因此对于目标延迟约为80ms的大型移动模型,我们发现的结果与[43]相似。因此,我们只需重复使用与最初的大型移动模型相同的MnasNet-A1 [43],然后在其之上应用Ne-tAdapt [48]和其他优化。
但是,我们观察到原始奖励设计并未针对小型移动模型进行优化。具体而言,它通过基于每个模型m平衡模型精度ACC(m)和等待时间LAT(m),使用多目标奖励ACC(m)[LAT(m)= TAR] w近似帕累托最优解。目标等待时间TAR。我们观察到,对于小型模型,精度随着时延的变化会更加显着。因此,我们需要一个较小的权重系数w = 0:15(与[43]中的原始w = 0:07相比)来补偿不同延迟下更大的精度变化。通过使用新的权重因子w进行增强,我们从头开始进行新的架构搜索以找到初始种子模型,然后应用NetAdapt和其他优化来获得最终的MobileNetV3-Small模型。
4.2。 NetAdapt用于分层搜索
我们在架构搜索中采用的第二种技术是NetAdapt [48]。这种方法是对平台感知型NAS的补充:它允许按顺序对各个层进行微调,而不是试图推断出粗略但全局的体系结构。有关完整的详细信息,请参阅原始论文。简而言之,该技术进行如下:
1.首先从平台感知型NAS发现的种子网络架构开始。
2.对于每个步骤:
(a)生成一组新提案。每个提议都代表对体系结构的修改,与上一步相比,该体系至少可以减少延迟。
(b)对于每个建议,我们都使用上一步中的预训练模型,并填充新提出的体系结构,适当地截断并随机初始化丢失的权重。对T步的每个建议进行微调,以大致估计其准确性。
(c)根据某些指标选择最佳建议。
3.重复上一步,直到达到目标延迟。
在[48]中,度量标准是最小化精度变化。我们修改了该算法,并最小化了等待时间变化和精度变化之间的比率。也就是说,对于在每个NetAdapt步骤中生成的所有建议,我们选择一个最大化的建议:Acc j延迟j;延迟满足2(a)中的约束。直觉是,因为我们的提案是离散的,所以我们更喜欢最大化权衡曲线斜率的提案。
重复此过程,直到延迟达到目标,然后我们从头开始重新训练新架构。我们使用与[48]中所用的MobilenetV2相同的提议生成器。具体来说,我们允许以下两种类型的提案:
1.减小任何扩展层的大小;
2.减少共享相同瓶颈大小的所有块的瓶颈-保持剩余连接。
对于我们的实验,我们使用T = 10000,发现虽然它提高了提案的初始微调的精度,但是从头开始训练时,它并没有改变最终精度。我们设置= 0:01jLj,其中L是种子模型的等待时间。
5.网络改进
除了网络搜索外,我们还为模型引入了几个新组件,以进一步改进最终模型。我们在网络的开头和结尾重新设计了计算昂贵的层。我们还介绍了新的非线性h-swish,它是最近swish非线性的改进版本,它计算速度更快,对量化更友好。
5.1。重新设计昂贵的图层
通过架构搜索找到模型后,我们会发现某些最后一层以及一些较早的层比其他层更昂贵。我们建议对体系结构进行一些修改,以减少这些慢层的等待时间,同时保持精度。这些修改超出了当前搜索空间的范围。
第一个修改重做了网络的最后几个层如何交互以更有效地产生最终功能。当前基于Mo-bileNetV2的倒置瓶颈结构和变体的模型使用1x1卷积作为最后一层,以便扩展到更高维度的特征空间。为了具有丰富的预测功能,这一层至关重要。但是,这要付出额外的延迟。
为了减少等待时间并保留高维特征,我们将这一层移到最终平均池之外。现在以1x1的空间分辨率而不是7x7的空间分辨率计算出最终的要素集。这种设计选择的结果是,就计算和等待时间而言,特征的计算几乎变得免费。
一旦减轻了该特征生成层的成本,就不再需要先前的瓶颈投影层来减少计算量。这一观察结果使我们能够删除先前瓶颈层中的投影和过滤层,从而进一步降低了计算复杂度。原始的和优化的最后阶段可以在图5中看到。有效的最后阶段将等待时间减少了7毫秒,这是运行时间的11%,并减少了3000万个MAdds的操作次数,而几乎没有精度损失。第6节包含详细的结果。
另一个昂贵的层是过滤器的初始集合。当前移动模型倾向于在完整的3x3卷积中使用32个滤波器,以建立用于边缘检测的初始滤波器组。通常,这些滤镜是彼此的镜像。我们减少了滤波器的数量,并使用不同的非线性来尝试减少冗余,这是实验。我们决定在该层的性能以及其他经过测试的非线性上使用硬swish非线性。使用ReLU或swish,我们能够将过滤器数量减少到16个,同时保持与32个过滤器相同的精度。这样可以节省额外的2毫秒和1000万个MAdd。
5.2。非线性度
在[36,13,16]中引入了一个称为swwish的非线性,当它被用作ReLU的直接替代品时,可以显着提高神经网络的准确性。非线性定义为
尽管这种非线性提高了精度,但在嵌入式环境中却带来了非零成本,因为在移动设备上计算S型函数的成本要高得多。我们以两种方式处理这个问题。
1.我们将S形函数替换为其分段线性硬模拟:
类似于[11,44]。较小的区别是我们使用ReLU6而不是自定义裁剪常数。同样,swish的硬版本变成
最近在[2]中也提出了类似版本的“艰苦尝试”。 sig-moid和swish非线性的软版本和硬版本的比较如图6所示。我们选择常量的原因是简单性和与原始平滑版本的良好匹配。在我们的实验中,我们发现所有这些功能的硬版本在准确性上没有明显的区别,但是从部署的角度来看具有多重优势。首先,几乎所有软件和硬件框架都提供了ReLU6的优化实现。其次,在量化模式下,它消除了由近似Sig-Moid的不同实现方式引起的潜在数值精度损失。最后,在实践中,h-swish可以实现为分段功能,以减少内存访问量,从而大幅降低等待时间成本。
2.随着我们深入网络,应用非线性的成本降低,因为每当分辨率降低时,每个层的激活内存通常都会减半。顺便说一句,我们发现,仅通过在更深层次中使用它们,就可以实现大部分收益。因此,在我们的架构中,我们仅使用模型的后半部分。准确的布局请参考表1和2。
即使进行了这些优化,h-swish仍然会带来一些延迟成本。但是,正如我们在第6节中所演示的那样,对准确性和延迟的净影响是积极的,没有进行优化,而使用基于分段函数的优化实现时却是相当可观的。
5.3。大挤压激励
在[43]中,挤压和激发瓶颈的大小是卷积瓶颈的大小。相反,我们将它们全部替换为固定为扩展层中通道数量的1/4。我们发现这样做可以在不增加参数数量的情况下提高准确性,并且不会产生明显的延迟成本。
5.4。 MobileNetV3定义
MobileNetV3定义为两个模型:MobileNetV3-Large和MobileNetV3-Small。这些模型分别针对高资源和低资源的用例。这些模型是通过将可感知平台的NAS和Ne-tAdapt用于网络搜索并结合本节中定义的网络改进而创建的。有关我们网络的完整规格,请参见表1和2。
6.实验
我们目前的实验结果证明了新MobileNetV3模型的有效性。我们报告有关分类,检测和细分的结果。我们还报告了各种消融研究,以阐明各种设计决策的影响。
6.1。分类
作为标准,我们将ImageNet [38]用于所有分类实验,并将准确度与各种资源使用量度(例如延迟和乘法加法(MAdds))进行比较。
6.1.1培训设置
我们使用在0.9x动量的标准tensorflow RMSPropOp-timizer在4x4 TPU Pod [24]上的同步训练设置来训练模型。 我们使用0.1的初始学习率,批量大小为4096(每芯片128张图像),每3个周期的学习率衰减率0.01,我们使用0.8的辍学率,l2权重衰减1e-5和相同的图像 作为Inception进行预处理[42]。 最后,我们使用衰减为0.9999的指数移动平均值。 我们所有的卷积层都使用批量归一化层,平均衰减为0.99。
6.1.2测量设置
为了测量延迟,我们使用标准的Google Pixel手机,并通过标准的TFLiteBench-mark工具运行所有网络。我们在所有测量中都使用单线程大内核。我们不报告多核推断时间,因为我们发现此设置不适用于移动应用。我们为tensorflow lite贡献了一个原子的h-swish运算符,现在默认为最新版本。我们在图9中显示了优化的h-swish的影响。
6.2. Results
从图1可以看出,我们的模型优于当前的技术水平,例如MnasNet [43],ProxylessNas [5]和MobileNetV2 [39]。我们在表3中报告了不同Pixel手机上的浮点性能。我们在表4中包含了量化结果。
在图7中,我们显示了MobileNetV3的性能折衷与乘法器和分辨率的关系。请注意,MobileNetV3-Small如何通过乘数缩放以匹配性能近3%的方式胜过MobileNetV3-Large。另一方面,分辨率比乘数提供了更好的折衷。但是,应注意,分辨率通常是由问题决定的(例如,分段和检测问题通常需要更高的分辨率),因此不能始终用作可调参数。
6.2.1消融研究
Impact of non-linearities 在表5中,我们研究了在哪里插入h-swishs非线性的选择,以及在幼稚的实现上使用优化实现的改进。 可以看出,使用优化的h-swishsaves实现节省了6ms(超过运行时的10%)。 与传统的ReLU相比,Optimizedh-swishonly增加了1ms的附加时间。
图8显示了基于非线性选择和网络宽度的有效边界。 MobileNetV3在网络中间使用h-swish,显然主导了ReLU。 有趣的是,向整个网络添加h-swish略胜于扩展网络的插值边界。
Impact of other components 在图9中,我们显示了不同组件的引入如何沿着延迟/精度曲线移动。
6.3。侦测
我们使用MobileNetV3作为SSDLite [39]中的骨干特征提取器的替代产品,并与COCO数据集上的其他骨干网络进行比较[26]。
遵循MobileNetV2 [39],我们将SSDLite的第一层连接到输出步幅为16的最后特征提取器层,然后将SSDLite的第二层连接到输出步幅为32的最后特征提取器层。在文献中,我们将这两个特征提取层分别称为C4和C5。对于MobileNetV3-Large,C4是第13个瓶颈块的扩展层。对于MobileNetV3-Small,C4是第九个瓶颈块的扩展层。对于这两个网络,C5是池之前的层。
我们还减少了C4和C5by2之间所有要素层的通道数。这是因为MobileNetV3的最后几层已调整为输出1000类,当将其转移到具有90类的COCO时可能是多余的。
表中列出了COCO测试仪的结果。 6.通过减少信道,MobileNetV3-Large比具有几乎相同的mAP的MobileNetVV2快27%。具有通道减少功能的MobileNetV3-Small也比MobileNetV2和MnasNet高2:4和0:5 mAP,而速度却提高了35%。对于这两种MobileNetV3模型,信道减少技巧都将导致大约15%的延迟减少而没有mAP损失,这表明Imagenet分类和COCO对象检测可能更喜欢不同的特征提取器形状。
6.4。语义分割
在本小节中,我们将MobileNetV2 [39]和提出的MobileNetV3用作移动语义分割任务的网络骨干。此外,我们比较了两个细分头。在[39]中提出了第一个,称为R-ASPP。 R-ASPP是Atrous空间金字塔池化模块[7、8、9]的标志,该模块仅采用两个分支,包括a1 1con-卷积和全局平均池化操作[29,50]。在这项工作中,我们提出了另一个轻量级的细分头,称为Lite R-ASPP(或LR-ASPP),如图10所示。Lite R-ASPP是对R-ASPP的改进,它部署了全局以类似于“挤压和激励”模块[20]的方式进行平均池化,在该模型中,我们部署了一个大步幅的大型池化内核(以节省一些计算量),并且模块中只有一个1 1卷积。我们对MobileNetV3的最后一个块应用无穷卷积[18、40、33、6]以提取更密集的功能,并进一步从低级功能添加跳过连接[30]以捕获更多详细信息。
我们使用mIOU [14]在Cityscapes数据集[10]上进行实验,仅使用“精细”注解。我们采用与[8,39]相同的训练方案。 Allour模型无需在ImageNet上进行预训练就可以从头开始进行训练[38],并使用单个scalein-put进行评估。与对象检测类似,我们观察到可以将网络主干的最后一个块中的信道减少2倍,而不会显着降低性能。我们认为这是因为主干网是针对1000类ImageNet图像分类而设计的[38],而Cityscapes上只有19个类,这意味着主干网中存在一些通道冗余。
我们在Tab中报告我们的Cityscapes验证集结果。 7.如表中所示,我们观察到(1)将网络主干的最后一个块中的信道减少2倍,可以显着提高速度,同时保持类似的性能(第1行与第2行和第5行对比)与第6行相比,(2)提出的分割头LR-ASPP比R-ASPP稍快[39],同时性能得到了改善(第2行与第3行对比,第6行与第7行对比),(3)将分段头中的过滤器从256减少到128可提高速度,但性能会稍差一些(第3行与第4行,第7行与第8行),(4)使用相同设置时,MobileNetV3模型变体达到类似的性能,但比MobileNetV2的性能略快(行1与行5,行2与行6,行3与行7,行4与行8),(5)MobileNetV3-Small与MobileNetV2-0.5更快,并且(6)MobileNetV3-Small比MobileNetV2-0.35更好,同时产生类似的速度。
标签。图8显示了我们的Cityscapes测试集结果。我们将MobileNetV3作为网络主干的分段模型的性能分别比ESPNetv2 [32],CCC2 [34]和ESPNetv1 [32]高6.4%,10.6%,12.3%,而在MAdds方面则更快。在MobileNetV3的最后一个块中不使用原子卷积来提取密集的特征图时,性能会稍微下降0.6%,但是速度提高到1.98B(对于半分辨率输入),分别快了1.36、1.59和2.27倍分别比ESPNetv2,CCC2和ESPNetv1大。此外,我们以MobileNetV3-Small作为网络主干的模块仍然优于所有模块,至少健康增长2.1%。
7.结论和今后的工作
在本文中,我们介绍了MobileNetV3大模型和小模型,这些模型展示了移动分类,检测和分段方面的最新技术。 我们已经描述了我们利用多种网络架构搜索算法的努力以及网络设计方面的进步,以交付下一代移动模型。 我们还展示了如何以一种友好而有效的量化方式适应非线性(如摆幅)和施加挤压和激励,并将其引入移动模型领域,作为有效的工具。 我们还推出了一种新型的轻型分段解码器,称为LR-ASPP。 尽管如何最好地将自动搜索技术与人类直觉结合仍是一个悬而未决的问题,但我们很高兴介绍这些最初的积极成果,并将在以后的工作中继续完善方法。