(五)MobileNet_v3----2019ICCV论文解读

Searching for MobileNetV3

Abstract

我们将结合互补的搜索技术以及新颖的体系结构设计,展示下一代MobileNets。通过结合NetAdapt算法的硬件感知网络架构搜索(NAS),将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检测上的MobileNetV2大致相同。对于Cityscapes分割,MobileNetV3-Large LRASPP比MobileNetV2 R-ASPP快34%。

1 Introduction

在这里插入图片描述
高效的神经网络在移动应用中正变得无处不在,从而实现了全新的设备上体验。 它们还是个人隐私的关键促成因素,使用户无需将其数据发送到要评估的服务器即可获得神经网络的好处。 神经网络效率的提高不仅可以通过更高的准确性和更低的延迟来改善用户体验,还可以通过降低功耗来帮助延长电池寿命。

本文介绍了我们开发MobileNetV3大模型和小模型所采用的方法,以便提供下一代高效,高效的神经网络模型来为设备上的计算机视觉提供动力。新的网络推动了最先进的技术发展,并演示了如何将自动搜索与新颖的体系结构相结合以构建有效的模型。

本文的目的是开发最佳的移动计算机视觉架构,以优化在移动设备上的准确性延迟。为此,我们引入了(1)互补搜索技术,(2)针对移动设置实用的非线性的新高效版本,(3)新的高效网络设计,(4)新的高效分段解码器。我们提供了详尽的实验,证明了每种技术在多种使用案例和移动电话上的功效评价值。

本文的结构如下。我们从第2节中的相关工作开始讨论。第3节回顾了用于移动模型的有效构建基块。第4节回顾了架构搜索以及MnasNet和NetAdapt算法的互补性。第5节介绍了新颖的架构设计,该设计提高了通过联合搜索发现的模型的效率。第6节介绍了用于分类,检测和细分的广泛实验,以证明其功效并了解不同元素的作用。第7节包含结论和未来的工作。

2 Related Work

近年来,设计深度神经网络架构以在精度和效率之间实现最佳折衷一直是一个活跃的研究领域。新颖的手工结构和算法神经体系结构搜索在推进该领域方面都发挥了重要作用。

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 Efficient Mobile Building Blocks

移动模型已经建立在越来越高效的构建块上。 MobileNetV1 [19]引入了深度可分离卷积作为传统卷积层的有效替代。深度可分离卷积通过将空间滤波与特征生成机制分离,有效地分解了传统卷积。深度可分离卷积由两个单独的层定义:用于空间滤波的轻量深度深度卷积和用于特征生成的较重的1x1点向卷积。

MobileNetV2 [39]引入了线性瓶颈和倒置残差结构,以便通过利用问题的低秩性质来使层结构更加有效。这种结构如图3所示,由1x1扩展卷积,深度卷积和1x1投影层定义。当且仅当它们具有相同数量的通道时,输入和输出才通过剩余连接进行连接。这种结构在输入和输出处保持紧凑的表示形式,同时在内部扩展到更高维度的特征空间以提高非线性每个通道变换的表达能力。

MnasNet [43]在MobileNetV2结构的基础上,通过将基于挤压和激励的轻量级注意模块引入瓶颈结构中。注意,与[20]中提出的基于ResNet的模块相比,挤压和激励模块集成在不同的位置。该模块被放置在扩展中的深度过滤器之后,以便引起注意,如图4所示。
在这里插入图片描述
对于MobileNetV3,我们使用这些层的组合作为构建块,以构建最有效的模型。层也通过修改的swish非线性进行升级[36、13、16]。挤压和激励以及急速的非线性都使用S形,这在定点算法中计算效率低下,同时也难以保持精度,因此我们将其替换为5.2所述的hard sigmoid[2,11]。

4 Network Search

网络搜索已经显示出它是发现和优化网络体系结构的非常强大的工具[53、43、5、48]。对于MobileNetV3,我们使用可感知平台的NAS通过优化每个网络块来搜索全局网络结构。然后,我们使用NetAdapt算法在每一层中搜索过滤器的数量。这些技术是互补的,可以组合起来以有效地找到给定硬件平台的优化模型。

4.1. Platform-Aware NAS for Block-wise Search

类似于[43],我们采用了平台感知的神经架构方法来查找全局网络结构。由于我们使用相同的基于RNN的控制器和相同的分解式分层搜索空间,因此对于目标延迟约为80ms的大型移动模型,我们发现的结果与[43]相似。因此,我们只需重复使用与最初的大型移动模型相同的MnasNet-A1 [43],然后在其之上应用NetAdapt [48]和其他优化。

但是,我们观察到原始奖励设计并未针对小型移动模型进行优化。具体来说,它使用多目标奖励ACC(m)×[LAT(m)/ T AR] w来近似Pareto最优解,方法是根据以下公式平衡每个模型m的模型精度ACC(m)和等待时间LAT(m)目标等待时间T AR。我们观察到,对于小型模型,精度随着时延的变化会更加显着。因此,我们需要较小的权重因子w = -0.15(与[43]中的原始w = -0.07相比),以补偿不同延迟下较大的精度变化。通过使用新的权重因子w进行增强,我们从头开始进行新的体系结构搜索,以找到初始的种子模型,然后应用NetAdapt和其他优化来获得最终的MobileNetV3-Small模型。

4.2. NetAdapt for Layer-wise Search

我们在架构搜索中采用的第二种技术是NetAdapt [48]。这种方法是对可感知平台的NAS的补充:它允许以顺序的方式微调各个层,而不是尝试推断粗糙但全局的体系结构。有关完整的详细信息,请参阅原始论文。简而言之,该技术进行如下:

​ 1.首先从平台感知型NAS发现的种子网络架构开始。

​ 2.对于每个步骤:(a)生成一组新提案。每个提议都代表对体系结构的修改,与上一步骤相比,该体系结构至少使延迟减少了δ。 (b)对于每个建议,我们使用上一步中的预训练模型,并填充新建议的体系结构,并适当地截断和随机初始化丢失的权重。微调每个提案的T步,以粗略估计准确性。 (c)根据某些指标选择最佳建议。

​ 3.重复上一步,直到达到目标延迟。

在[48]中,度量标准是最小化精度变化。我们修改了该算法,并最小化了等待时间变化和准确性变化之间的比率。也就是说,对于在每个NetAdapt步骤中生成的所有投标,我们选择一个最大化的建议:ΔAcc/|Δlatency|,其中Δlatency满足2(a)中的约束。直觉是,因为我们的建议是离散的,所以我们更喜欢使权衡曲线的斜率最大化的建议。

重复此过程,直到延迟达到其目标,然后我们从头开始重新训练新架构。我们使用与[48]中的MobilenetV2相同的提案生成器。具体来说,我们允许以下两种类型的提案:

​ 1.减小任何扩展层的大小;

​ 2.减少共享相同瓶颈大小的所有块的瓶颈-保持剩余连接。

对于我们的实验,我们使用T = 10000并发现,虽然它提高了建议的初始精调的准确性,但是当从头开始训练时,它不会改变最终准确性。我们设置δ= 0.01 | L |,其中L是种子模型的等待时间。

5 Network Improvements

除了网络搜索外,我们还为模型引入了几个新组件,以进一步改进最终模型。我们在网络的开头和结尾重新设计了计算昂贵的层。我们还介绍了新的非线性h-swish,这是最近的swish非线性的改进版本,它计算速度更快,对量化更友好。

5.1. Redesigning Expensive Layers

通过架构搜索找到模型后,我们会发现某些最后一层以及一些较早的层比其他层更昂贵。我们建议对体系结构进行一些修改,以减少这些慢层的等待时间,同时保持准确性。这些修改超出了当前搜索空间的范围。

第一个修改重做了网络的最后几层如何交互以更有效地产生最终功能。当前基于MobileNetV2的倒置瓶颈结构和变体的模型使用1x1卷积作为最后一层,以便扩展到更高维度的特征空间。该层对于具有丰富的预测功能至关重要。但是,这要付出额外的等待时间。

为了减少延迟并保留高维特征,我们将该层移到最终的平均池之外。现在以1x1的空间分辨率而不是7x7的空间分辨率计算出最终的要素集。这种设计选择的结果是,就计算和等待时间而言,特征的计算变得几乎免费。

一旦减轻了该特征生成层的成本,就不再需要先前的瓶颈投影层来减少计算量。此观察结果使我们能够删除先前瓶颈层中的投影和过滤层,从而进一步降低了计算复杂性。原始的和优化的最后阶段可以在图5中看到。有效的最后阶段将等待时间减少了7毫秒,这是运行时间的11%,并减少了3000万次MAdds的操作次数,而几乎没有准确性的损失。第6节包含详细结果。

另一个昂贵的层是最初的过滤器集。 当前的移动模型倾向于在完整的3x3卷积中使用32个滤波器来构建用于边缘检测的初始滤波器组。 通常,这些滤镜是彼此的镜像。 我们尝试减少滤波器的数量并使用不同的非线性来尝试减少冗余。 我们决定在该层的性能以及其他经过测试的非线性上使用硬swish非线性。 使用ReLU或swish,我们能够将过滤器数量减少到16个,同时保持与32个过滤器相同的精度。 这样可以节省额外的2毫秒和1000万个MAdd。
在这里插入图片描述

5.2. Nonlinearities

在[36、13、16]中引入了一种称为swish的非线性,当该非线性用作ReLU的直接替代品时,可以显着提高神经网络的准确性。非线性定义为
 swish  x = x σ ( x ) \text { swish } x=x \cdot \sigma(x)
尽管这种非线性提高了准确性,但在嵌入式环境中却带来了非零成本,因为S型函数在移动设备上的计算成本更高。我们以两种方式处理这个问题。

1.我们用它的分段线性硬模拟代替Sigmoid函数:类似于[11,44]的ReLU6(x + 3)6。微小的区别是我们使用ReLU6而不是自定义裁剪常数。同样,swish的硬版本变成
h  -swish  [ x ] = x ReLU 6 ( x + 3 ) 6 \mathrm{h} \text { -swish }[x]=x \frac{\operatorname{ReLU} 6(x+3)}{6}
最近在[2]中也提出了类似版本的“艰苦尝试”。 图6显示了S型和S型非线性的软,硬形式的比较。我们选择常数的原因是简单性,并且与原始的平滑形式非常匹配。 在我们的实验中,我们发现所有这些功能的硬版本在准确性上没有明显的区别,但是从部署角度来看具有多重优势。 首先,几乎所有软件和硬件框架都提供了ReLU6的优化实现。 其次,在量化模式下,它消除了由于近似S形的不同实现而导致的潜在数值精度损失。 最后,在实践中,h-swish可以实现为分段功能,以减少内存访问次数,从而大大降低了等待时间成本。

2.随着我们深入网络,应用非线性的成本降低,这是因为每当分辨率降低时,每个层的激活内存通常都会减半。顺便说一句,我们发现,仅在更深层次中使用它们就可以实现大部分收益。因此,在我们的架构中,我们仅在模型的后半部分使用h-swish。准确的布局请参见表1和2。

即使进行了这些优化,h-swish仍然会带来一些延迟成本。但是,正如我们在第6节中所演示的那样,对准确性和延迟的净影响是积极的,没有优化,而在使用基于分段函数的优化实现时则是实质性的。
在这里插入图片描述

5.3. Large squeeze-and-excite

在[43]中,挤压和激发瓶颈的大小是卷积瓶颈的大小。相反,我们将它们全部替换为固定为扩展层中通道数的1/4。我们发现这样做可以在不增加参数数量的情况下提高准确性,并且不会产生明显的等待时间。

5.4. MobileNetV3 Definitions

MobileNetV3定义为两个模型:MobileNetV3Large和MobileNetV3-Small。这些模型分别针对高资源和低资源的用例。通过应用可感知平台的NAS和NetAdapt进行网络搜索并结合本节中定义的网络改进来创建模型。有关我们网络的完整规格,请参见表1和2。

6 Experiments

我们目前的实验结果证明了新MobileNetV3模型的有效性。我们报告有关分类,检测和细分的结果。我们还报告了各种消融研究,以阐明各种设计决策的影响。

6.1. Classification

在这里插入图片描述
在这里插入图片描述
作为一种标准,我们将ImageNet [38]用于我们所有的分类实验,并比较准确性与各种资源使用量度,例如等待时间和乘积(MAdds)。

6.1.1 Training setup

我们使用在0.9x动量的标准tensorflow RMSProp Optimizer在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 Measurement setup

为了测量延迟,我们使用标准的Google Pixel手机,并通过标准的TFLite Benchmark Tool运行所有网络。我们在所有测量中均使用单线程大内核。我们不报告多核推断时间,因为我们发现此设置对移动应用程序不太实用。我们为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%的方式胜过MobileNetV3Large。另一方面,分辨率比乘数提供了更好的折衷。但是,应该注意,分辨率通常是由问题决定的(例如,分段和检测问题通常需要更高的分辨率),因此不能始终用作可调参数。

6.2.1 Ablation study

非线性的影响在表5中,我们研究了在何处插入h-swish非线性的选择,以及在天真的实现上使用优化实现的改进。 可以看出,使用优化的h-swish实现可以节省6毫秒(超过运行时间的10%)。 与传统的ReLU相比,优化的h-swish仅增加了1ms的时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图8显示了基于非线性选择和网络宽度的有效边界。 MobileNetV3在网络中间使用h-swish,显然主导了ReLU。有趣的是,向整个网络添加h-swish略胜于扩展网络的插值边界。
其他组件的影响在图9中,我们显示了不同组件的引入如何沿着等待时间/准确性曲线移动。

6.3. Detection

我们使用MobileNetV3作为SSDLite [39]中骨干特征提取器的直接替代,并与COCO数据集上的其他骨干网络进行比较[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比具有几乎相同的mAP的MobileNetVV2快27%。 具有通道减少功能的MobileNetV3-Small也比MobileNetV2和MnasNet高2.4和0.5 mAP,而速度却快35%。 对于这两种MobileNetV3模型,信道减少技巧均有助于将等待时间减少约15%,而无mAP损失,这表明Imagenet分类和COCO对象检测可能更喜欢不同的特征提取器形状。

在这里插入图片描述

6.4. Semantic Segmentation

在本小节中,我们将MobileNetV2 [39]和提出的MobileNetV3用作移动语义分段任务的网络骨干。此外,我们比较了两个细分头。在[39]中提出了第一个,称为R-ASPP。 R-ASPP是原子空间金字塔池化模块[7、8、9]的简化设计,该模块仅采用由1×1卷积和全局平均池化操作[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]相同的训练方案。我们所有的模型都是从零开始训练的,而无需在ImageNet [38]上进行预训练,并使用单尺度输入进行评估。与对象检测类似,我们观察到可以将网络主干的最后一个块中的信道减少2倍,而不会显着降低性能。我们认为这是因为主干网是针对1000类ImageNet图像分类而设计的[38],而Cityscapes上只有19个类,这意味着主干网中存在一些通道冗余。

我们在Tab7中报告我们的Cityscapes验证集结果。 如表中所示,我们观察到(1)将网络主干的最后一个块中的信道减少2倍,可以显着提高速度,同时保持类似的性能(行1与行2,行5与行2)。第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 Conclusions and future work

在本文中,我们介绍了MobileNetV3大模型和小模型,这些模型展示了移动分类,检测和分段方面的最新技术。 我们已经描述了我们利用多种网络体系结构搜索算法所做的努力以及网络设计的进步,以交付下一代移动模型。 我们还展示了如何以友好的量化方式高效地适应像swish这样的非线性并施加挤压和激励,并将其作为有效工具引入移动模型领域。 我们还介绍了一种称为LR-ASPP的新型轻量级分段解码器。 尽管仍然存在如何最好地将自动搜索技术与人类直觉相结合的悬而未决的问题,但我们很高兴介绍这些最初的积极成果,并将在以后的工作中继续完善方法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了66 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_18315295/article/details/104242873