【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文

Searching for MobileNetV3

MobileNet v3发表于2019年,该v3版本结合了v1的深度可分离卷积、v2的Inverted Residuals和Linear Bottleneck、SE模块,利用NAS(神经结构搜索)来搜索网络的配置和参数。

Abstract

  • 本文提出了基于互补搜索技术的组合以及新颖的架构设计的下一代移动互联网。MobileNetV3通过硬件网络架构搜索(NAS)的组合,辅以NetAdapt算法,并随后通过新颖的架构进步进行改进,从而适应移动电话CPU
  • 本文开始探索自动搜索算法和网络设计如何协同工作,以利用互补方法改善整体技术水平。通过这一过程,本文创建了两个新的MobileNet模型以供发布:MobileNetV3-Large和MobileNetV3-Small,它们针对高资源和低资源使用情况。这些模型然后被修改并应用于对象检测和语义分割的任务。
  • 对于语义分割(或任何密集像素预测)的任务,本文提出了一种新的高效分割解码器Lite Reduced Atrous Spatial Pyramid Pooling (LR-ASPP)。本文实现了移动分类、检测和分割的最新技术成果。
  • 与MobileNetV2相比,MobileNetV3-Large在ImageNet分类上的准确率提高了3.2%,同时将延迟降低了20%。与具有相当延迟的MobileNetV2模型相比,MobileNetV3-Small的准确性高6.6%。MobileNetV3-大型检测比MobileNetV2快25%以上,但在COCO检测上的准确性大致相同。对于城市景观分割,MobileNetV3-Large LRASPP比MobileNetV2 R-ASPP快34%,且精确度相似。
  • 相对重量级网络而言,轻量级网络的特点是参数少、计算量小、推理时间短。更适用于存储空间和功耗受限的场景,例如移动端嵌入式设备等边缘计算设备。因此轻量级网络受到了广泛的关注,其中MobileNet可谓是其中的佼佼者。MobileNetV3经过了V1和V2前两代的积累,性能和速度都表现优异。
  • MobileNetV3 参数是由NAS(network architecture search)搜索获取的,又继承的V1和V2的一些实用成果,并引人SE通道注意力机制,可谓集大成者
  • 论文地址:[1905.02244] Searching for MobileNetV3 (arxiv.org)

Introduction

  • 高效的神经网络在移动应用中变得无处不在,实现了全新的设备体验。它们也是个人隐私的关键使能器,允许用户获得神经网络的好处,而不需要将他们的数据发送到服务器进行评估。神经网络效率的进步不仅通过更高的精度和更低的延迟改善了用户体验,还通过降低功耗帮助延长了电池寿命
  • 本文描述了用来开发MobileNetV3大型和小型模型的方法,以便提供下一代高精度高效神经网络模型来支持设备上的计算机视觉。新的网络推动了技术的发展,并展示了如何将自动搜索与新颖的架构进步相结合,以构建有效的模型。
  • 本文的目标是开发尽可能好的移动计算机视觉架构,优化移动设备上的精度和速度。为了实现这一点,本文引入了
    • (1)互补搜索技术
    • (2)适用于移动环境的新的高效非线性版本激活函数,
    • (3)新的高效网络设计,
    • (4)新的高效分段解码器。
  • 本文还展示了在广泛的使用案例和移动电话上评估的每种技术的功效和价值的全面实验。
  • MobileNetV3 首先使用 MnasNet 进行粗略结构的搜索,然后使用强化学习从一组离散的选择中选择最优配置。之后,MobileNetV3 再使用 NetAdapt 对体系结构进行微调,这体现了 NetAdapt 的补充功能,它能够以较小的降幅对未充分利用的激活通道进行调整。
  • MobileNetV3 的另一个新颖想法是在核心架构中加入一种名为「Squeeze-and-Excitation」的神经网络(简称 SE-Net,也是 ImageNet 2017 图像分类冠军)。该神经网络的核心思想是通过显式地建模网络卷积特征通道之间的相互依赖关系,来提高网络所产生表示的质量。具体而言,就是通过学习来自动获取到每个特征通道的重要程度,然后依照这一结果去提升有用的特征并抑制对当前任务用处不大的特征。

Related Work

  • 近年来,设计深度神经网络架构以实现准确性和效率之间的最佳平衡一直是一个活跃的研究领域。新的手工结构和算法神经架构搜索在推进这一领域发挥了重要作用。

  • 轻量化网络主要有两种方法,分别为结构优化以及人工量化,但是以上两种方法都不能保证网络能够在不同的设备上都有较优的表现,而且目前的方法大都以非直接指标(计算量/参数量)作为指导,往往与实际结果有出入。

  • SqueezeNet广泛使用1x1卷积和挤压和扩展模块,主要关注减少参数的数量。最近的工作将重点从减少参数转移到减少操作次数(MAdds)和实际测量的等待时间。MobileNetV1采用深度方向可分离卷积来显著提高计算效率。MobileNetV2对此进行了扩展,引入了具有反向残差和线性瓶颈的资源高效模块

  • ShuffleNet利用组卷积和信道混洗操作来进一步减少MAdds。CondenseNet在训练阶段学习组卷积,以保持各层之间有用的密集连接,供特征重用。ShiftNet提出了与逐点卷积交织的移位操作,以取代昂贵的空间卷积。

  • 为了自动化架构设计流程,强化学习(RL)首先被引入,以搜索具有竞争准确性的高效架构。一个完全可配置的搜索空间可能会以指数级增长并且难以处理。因此,早期的架构搜索工作集中在单元级结构搜索上,相同的单元在所有层中被重用。

  • 最近,[Platform-aware neural architecture search for mobile]探索了块级分层搜索空间,允许网络的不同分辨率块具有不同的层结构。为了降低搜索的计算成本,在[DARTS,Proxylessnas,Fbnet]中使用了基于梯度优化的可微分架构搜索框架。着眼于使现有网络适应受限的移动平台,[Netadapt,AMC,Chamnet]提出了更有效的自动化网络简化算法。

    • NetAdapt作用:用户可以自动简化一个预训练的网络以使其达到硬件资源限制,同时最大化精确度。NetAdapt的网络优化以自动的方式进行,逐渐降低预训练网络的资源消耗,同时最大化精度。NetAdapt不仅可以生成一个满足预算的网络,而且可以生成一系列具有不同折衷程度的简化网络,从而实现动态的网络选择和进一步的研究。

    • NetAdapt的思想巧妙且有效,将优化目标分为多个小目标,并且将实际指标引入到优化过程中,能够自动化产生一系列平台相关的简化网络,不仅搜索速度快,而且得到简化网络在准确率和时延上都于较好的表现

    • 将 direct metrics(延时,能量,内存占用等等, 等等,或者是这些指标的结合)并入自适应算法,direct metrics 用empirical measurements (实证测量)分析,这样就不用对特殊平台的细节进行了解了(当然将来的改进可以对平台细节进行了解)。在每次迭代中,NetAdapt会差生很多network proposal并将他们在目标平台上测量,以测量结果指导NetAdapt产生下一批network proposal

    • 实现细节

      • 当前层选择的核数量基于经验估计来决定,逐步减少核数量并计算每个简化网络的资源消耗,选择能满足当前资源消耗约束的最大核数量。当减少当前层的核数量时,后一层的相关维度要对应修改,这个也要考虑到资源消耗计算中。
      • 有很多方法来决定选择保留的核,论文采用简单magnitude-based方法,即选择N个L2-norm最大的核,N由上面的步骤决定。
      • 在NetAdapt的每次迭代中,都使用相对较小的次数(short-term)fine-tune搜索到的简化网络来恢复准确率,这一步对于小网络而言相当重要。由于大量减少资源量,如果不这样做,网络的准确率可能会降为零,导致算法选择了错误的网络。随着算法的进行,虽然网络会持续训练,但还没到收敛的地步,所以当得到最后的一系列自适应网络后,使用较多的次数(long-term)fine-tune直到收敛作为最后一步。
  • 量化是另一个重要的研究方向,通过降低精度的算法来提高网络效率。最后,知识蒸馏提供了一种额外的补充方法,在大型“教师”网络的指导下,生成小型精确的“学生”网络。

Efficient Mobile Building Blocks

  • 移动模型建立在越来越高效的基础之上。MobileNetV1 引入了深度方向可分离卷积,作为传统卷积层的有效替代。深度方向可分离卷积通过将空间滤波与特征生成机制分离来有效地分解传统卷积。深度方向可分离卷积由两个单独的层定义:用于空间滤波的轻量深度方向卷积和用于特征生成的更重的1×1点方向卷积
  • MobileNetV2 引入了linear bottleneck 和inverted residual结构,以便通过利用问题的低秩性质来创建更高效的层结构。该结构如下图所示,由1×1扩展卷积、随后的深度卷积和1×1投影层定义。当且仅当输入和输出具有相同数量的通道时,它们用残差连接来连接。这种结构在输入和输出处保持紧凑的表示,同时在内部扩展到更高维的特征空间,以增加非线性管道变换的表达能力。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第1张图片
    • MobileNetV2 层(反向残差和线性瓶颈)。每个块由狭窄的输入和输出(瓶颈)组成,它们不具有非线性,随后扩展到更高维度的空间并投影到输出。残差连接瓶颈(而不是扩张)。
  • MnasNet 通过将基于挤压和激发的轻量级注意力模块引入瓶颈结构,构建了MobileNetV2结构。请注意,挤压和激励模块与[Squeeze-and-Excitation Networks]中提出的基于ResNet的模块集成在不同的位置。该模块被放置在扩展中的深度方向滤波器之后,以便将注意力应用到最大的表示上,如下图所示。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第2张图片
    • MobileNetV2 +Squeeze-and-Excite 。与[SEnet]相反,本文在残差层中应用了压缩和激发。本文根据不同的层使用不同的非线性。

Network Search

  • 网络搜索已经被证明是发现和优化网络架构的一个非常强大的工具。对于MobileNetV3,本文使用平台感知NAS通过优化每个网络块来搜索全局网络结构。然后,本文使用NetAdapt算法来搜索每层的过滤器数量。这些技术是互补的,可以结合起来有效地为给定的硬件平台找到优化的模型

Platform-Aware NAS for Block-wise Search

  • 类似于[Mnasnet],本文采用了一种平台感知的神经架构方法来寻找全局网络结构。由于本文使用相同的基于RNN的控制器和相同的分解式分层搜索空间,发现对于目标延迟约为80毫秒的大型移动模型,结果与[Mnasnet]相似。因此,本文简单地重用相同的MnasNet-A1作为本文最初的大型移动模型,然后在其上应用NetAdapt和其他优化。

  • 然而,实验观察到最初的激励设计并没有针对小型移动模型进行优化。具体地,它使用多目标回报 A C C ( m ) × [ L A T ( m ) / T A R ] w ACC(m) × [LAT (m)/TAR]^w ACC(m)×[LAT(m)/TAR]w来近似Pareto-optimal solutions,通过基于目标延迟TAR平衡每个模型m的模型精度ACC(m)和延迟LAT(m)。

    • 从定义上讲,帕累托最优描述的是一种资源最优化配置的状态。在帕累托最优的条件下,是没有办法在不让某一参与资源分配的一方利益受损的情况下,令另一方获得更大利益的。不可能再改善某些人的境况,而不使任何其他人受损。一个人得益,必然伴随着另一个人受损失。
    • 帕累托最优就是,已经无法进行帕累托改进了,任何能做大蛋糕的措施,在做大蛋糕之前,先会造成某一群体的蛋糕变小。
    • “既得利益集团先让出些蛋糕给一部分人吃,这一部分人吃了之后才能有力气,一起把整个蛋糕做大,然后大家都可以多分蛋糕。”——这就叫卡尔多改进
  • 本文观察到,对于小模型来说,随着延迟的增加,精确度的变化更加显著;因此,需要一个更小的权重因子w = 0.15(相对于[Mnasnet]中的原始权重因子w = 0.07),以补偿不同延迟下更大的精度变化。利用这个新的权重因子w,从头开始新的架构搜索,以找到初始种子模型,然后应用NetAdapt和其他优化来获得最终的MobileNetV3-Small模型。

NetAdapt for Layer-wise Search

  • 本文在架构搜索中采用的第二个技术是NetAdapt。这种方法是对平台感知型NAS的补充:它允许以连续的方式对各个层进行微调,而不是试图推断粗糙但全局的体系结构。通过查阅原始文件以了解全部细节。简而言之,该技术如下进行:
    • 从平台感知型NAS发现的种子网络体系结构开始。
    • 对于每个步骤:
      • a,生成一组新建议。每一个建议都代表了一个架构的修改,与前一个步骤相比,至少减少了δ的延迟。
      • b,对于每个建议,都使用上一步中预先训练好的模型,并填充新提议的架构,适当地截断和随机初始化缺失的权重。对T个步骤的每个建议进行微调,以获得精确度的粗略估计。
      • c,根据一些标准选择最佳方案。
    • 重复上一步,直到达到目标延迟。
  • 在[Netadapt]中,度量标准是最小化精度变化。本文修改了这个算法,并且最小化了延迟变化和准确性变化之间的比率。也就是说,对于在每个NetAdapt步骤中生成的所有建议,本文选择一个最大化的建议: ▲ A c c ▲ l a t e n c y \frac{▲Acc}{▲latency} latencyAcc满足上面的步骤a中的约束。直觉是,因为生成的建议是离散的,本文更喜欢最大化权衡曲线斜率的建议。
  • 这个过程一直重复,直到延迟达到目标,然后本文从头开始重新训练新的架构。本文使用与[Netadapt]中MobilenetV2相同的建议生成器。具体来说,本文允许以下两种类型的提议:
    • 减小任何膨胀层的尺寸;
    • 减少共享相同瓶颈大小的所有块中的瓶颈——以保持残差连接。
  • 对于本文的实验,使用T = 10000(知识蒸馏的温度),并且发现虽然它增加了建议的初始微调的准确性,但是当从头开始训练时,它不改变最终的准确性。我们设置δ = 0.01|L|,其中L是种子模型的延迟。

在网络结构搜索中,作者结合两种技术:资源受限的NAS(platform-aware NAS)与NetAdapt,前者用于在计算和参数量受限的前提下搜索网络的各个模块,所以称之为模块级的搜索(Block-wise Search) ,后者用于对各个模块确定之后网络层的微调。

Network Improvements

  • 除了网络搜索,本文还在模型中引入了几个新的组件,以进一步改进最终的模型。本文在网络的起点和终点重新设计计算成本高昂的层。还引入了一个新的非线性度,h-swish,它是最近的swish非线性度的一个改进版本,计算速度更快,更易于量化

  • Swish函数的表达式是f ( x ) = x ⋅ σ ( x ) ,σ ( x ) 就是sigmoid函数。因为sigmoid函数的饱和性容易导致梯度消失,借鉴ReLU的效果,当x 非常大的时候,这个时候有f(x)趋近于x,但是当x → − ∞ , 则 f ( x ) → 0 ,函数的大致走势和ReLU比较相似,但是又比ReLU复杂。

  • 通常在函数上体现就是加几个超参数进去,然后呈现出更多的特性。在Swish中,加了一个超参数使得函数表达式变成了f(x)=x⋅σ(βx),然后说这个β 可以是常量,或者是可训练参数。函数的图像如下。

    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第3张图片

    • 接下来就是考虑这个激活函数的反向传播了,核心步骤就是求导。显然这里就是复合求导。f(x)=x⋅σ(βx)则有:

      • f ′ ( x ) = σ ( β x ) + β x ⋅ σ ( β x ) ( 1 − σ ( β x ) ) = σ ( β x ) + β x ⋅ σ ( β x ) − β x ⋅ σ ( β x ) 2 = β x ⋅ σ ( β x ) + σ ( β x ) ( 1 − β x ⋅ σ ( β x ) ) = β ⋅ f ( x ) + σ ( β x ) ( 1 − β ⋅ f ( x ) ) f'(x)=σ(βx)+βx·σ(βx)(1-σ(βx))\\ =σ(βx)+βx·σ(βx)-βx·σ(βx)^2\\ =βx·σ(βx)+σ(βx)(1-βx·σ(βx))\\ =β·f(x)+σ(βx)(1-β·f(x)) f(x)=σ(βx)+βxσ(βx)(1σ(βx))=σ(βx)+βxσ(βx)βxσ(βx)2=βxσ(βx)+σ(βx)(1βxσ(βx))=βf(x)+σ(βx)(1βf(x))
  • Swish 激活函数已经被证明是一种比 ReLU 更佳的激活函数,但是相比 ReLU,它的计 算更复杂,因为有 sigmoid 函数。为了能够在移动设备上应用 swish 并降低它的计算开销, 提出了 h-swish。h-swish 激活函数:

  • h − s w i s h [ x ] = x ⋅ R e L U 6 ( x + 3 ) 6 h-swish[x]=x·\frac{ReLU6(x+3)}{6} hswish[x]=x6ReLU6(x+3)

Redesigning Expensive Layers

  • 一旦通过架构搜索找到模型,本文观察到一些最后的层以及一些早期的层比其他层更昂贵。本文建议对架构进行一些修改,以减少这些慢速层的延迟,同时保持准确性。这些修改超出了当前搜索空间的范围
  • 第一次修改,修改了网络最后几层的交互方式,以便更有效地生成最终特征。基于MobileNetV2的反向瓶颈结构和变体的当前模型使用1x1卷积作为最终层,以便扩展到更高维度的特征空间。为了获得丰富的预测要素,该图层至关重要。然而,这是以额外的延迟为代价的。
  • 为了减少延迟并保留高维特征,本文将这一层移过最终平均池。现在,以1x1空间分辨率而不是7x7空间分辨率计算最终的特征集。这种设计选择的结果是功能的计算在计算和等待时间方面变得几乎不消耗。
  • 一旦降低了该特征生成层的成本,就不再需要先前的瓶颈投影层来减少计算。这种观察允许本文去除之前瓶颈层中的投影和过滤层,进一步降低计算复杂度。原始和优化的末级可以在下图中看到。高效的最后一级将延迟减少了7毫秒,这是运行时间的11%,并将操作数量减少了3000万MAdds,而几乎没有损失准确性。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第4张图片
    • 原末级与高效末级的比较。这个更有效的最后一级能够在网络末端丢弃三个昂贵的层而不损失准确性。
    • 在mobilenetv2中,在avg pooling之前,存在一个1x1的卷积层,目的是提高特征图的维度,更有利于结构的预测,但是这其实带来了一定的计算量了,所以这里作者修改了,将其放在avg pooling的后面,首先利用avg pooling将特征图大小由7x7降到了1x1,降到1x1后,然后再利用1x1提高维度,这样就减少了7x7=49倍的计算量。
    • 为了进一步的降低计算量,作者直接去掉了前面纺锤型卷积的3x3以及1x1卷积,进一步减少了计算量,就变成了如上图第二行所示的结构,作者将其中的3x3以及1x1去掉后,精度并没有得到损失。这里降低了大约15ms的速度。
  • 另一个昂贵的层是最初的一组过滤器。当前的移动模型倾向于在完整的3×3卷积中使用32个滤波器来构建用于边缘检测的初始滤波器组。通常这些过滤器是彼此的镜像。本文尝试减少滤波器的数量,并使用不同的非线性来减少冗余。本文决定对这一层使用hard swish非线性激活函数,因为它的表现与测试的其他非线性一样好。本文能够将过滤器的数量减少到16个,同时保持与使用ReLU或swish的32个过滤器相同的精度。这额外节省了2毫秒和1000万MAdds。

Nonlinearities

  • 在[Searching for activation functions,Sigmoidweighted linear units for neural network function approximation in reinforcement learning,Bridging nonlinearities and stochastic regularizers with gaussian error linear units]中,引入了一种称为swish的非线性,当用作ReLU的替代时,它显著提高了神经网络的精度。非线性定义为:

    • s w i s h ( x ) = x ⋅ δ ( x ) swish(x) = x·\delta(x) swish(x)=xδ(x)
  • 虽然这种非线性提高了精度,但在嵌入式环境中也带来了并不是零成本,因为在移动设备上计算sigmoid函数的成本要高得多。本文用两种方法处理这个问题。

    • 本文用分段线性硬模拟代替sigmoid函数: R e L U 6 ( x + 3 ) 6 \frac{ReLU6(x+3)}{6} 6ReLU6(x+3),类似于[Binaryconnect,Curves and Surfaces in Computer Vision and Graphics]。微小的区别是我们使用ReLU6而不是一个定制的裁剪常数。类似地,swish的硬版本变成了:

      • h − s w i s h ( x ) = x ⋅ R e L U 6 ( x + 3 ) 6 h-swish(x)=x·\frac{ReLU6(x+3)}{6} hswish(x)=x6ReLU6(x+3)
    • [Semantic segmentation of satellite images using a modified cnn with hard-swish activation function]中最近也提出了类似版本的hard-swish。sigmoid和swish非线性的软版本和硬版本的比较如下图所示。

      • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第5张图片
      • Sigmoid和swish非线性及其“硬”对应项。
    • 本文选择常数的动机是简单,并且与最初的平滑版本很好地匹配。在本文的实验中,发现所有这些函数的硬版本在准确性上没有明显的差异,但是从部署的角度来看有多种优势。

      • 首先,ReLU6的优化实现可以在几乎所有的软件和硬件框架上使用。
      • 第二,在量化模式下,它消除了由近似sigmoid的不同实现引起的潜在数值精度损失。
      • 最后,在实践中,h-swish可以实现为分段函数,以减少存储器访问次数,从而大幅降低延迟成本。
    • 随着本文深入网络,应用非线性的成本会降低,因为每次分辨率下降时,每层激活存储器通常会减半。顺便说一句,本文发现大多数好处都是通过在更深的层次使用它们来实现的。因此,在本文的架构中,本文只在模型的后半部分使用h-swish。本文参考表下面两个表来了解精确的布局。
      • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第6张图片
      • MobileNetV3规范-大型。SE表示在该块中是否存在挤压和激励(SENet中的SE模块)。NL表示所用的非线性类型。这里,HS表示h-swish,re表示ReLU。NBN表示没有批处理规范化。s表示步幅。
      • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第7张图片
      • MobileNetV3规范-小型。
    • 即使进行了这些优化,h-swish仍然引入了一些延迟成本。然而,正如本文在第下面一节中所展示的,在没有优化的情况下,对准确性和延迟的净影响是积极的,并且当使用基于分段函数的优化实现时,净影响是显著的。

Large squeeze-and-excite

  • 在[Mnasnet]中,压缩激励瓶颈的大小是相对于卷积瓶颈的大小而言的。相反,我们将它们全部替换为固定为扩展层中通道数的1/4。我们发现这样做提高了准确性,同时适度增加了参数的数量,并且没有可察觉的延迟成本。

MobileNetV3 Definitions

  • MobileNetV3定义为两种型号:MobileNetV3-Large和MobileNetV3-Small。这些模型分别针对高资源使用情况和低资源使用情况。这些模型是通过将平台感知型NAS和NetAdapt应用于网络搜索并结合本节中定义的网络改进而创建的。有关我们网络的完整规格,请参见上面两个表格。

Experiments

  • 本文给出了实验结果来证明新的MobileNetV3模型的有效性。本文报告分类、检测和分割的结果。还报告了各种消融研究,以阐明各种设计决策的影响。

Classification

  • 作为标准,本文使用ImageNet进行所有分类实验,并比较准确性与各种资源使用措施,如延迟和乘法加法(MAdds)。
  • Training setup
    • 本文在4x4 TPU Pod上使用同步训练设置来训练本文的模型,该同步训练设置使用具有0.9动量的标准tensorflow RMSPropOptimizer。本文使用0.1的初始学习率,批量大小为4096(每个芯片128个图像),学习率衰减率为每3个时期0.01。本文使用0.8的下降,l2权重衰减1e-5和与Inception 相同的图像预处理。最后,我们使用衰减0.9999的指数移动平均线。我们所有的卷积层都使用平均衰减为0.99的批量归一化层。
  • Measurement setup
    • 为了测量延迟,本文使用标准的谷歌Pixel手机,并通过标准的TFLite基准工具运行所有网络。本文在所有测量中使用单线程大内核。本文没有报告多核推理时间,因为发现这种设置对于移动应用来说不太实用。本文在tensorflow lite中贡献了一个原子h-swish操作符,现在在最新版本中是默认的。在下图中展示了优化的h-swish的影响。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第8张图片
    • MobileNetV3开发中各个组件的影响。进步是通过向左上方移动来衡量的。

Detection

  • 本文使用MobileNetV3作为SSDLite 中主干特征提取器的嵌入式替代,并在COCO数据集上与其他主干网络进行比较。
  • 按照MobileNetV2 ,本文将第一层SSDLite附加到输出步幅为16的最后一个特征提取器层,并将第二层SSDLite附加到输出步幅为32的最后一个特征提取器层。根据检测文献,本文将这两个特征提取层分别称为C4和C5。对于MobileNetV3-Large,C4是第13个瓶颈块的扩展层。对于MobileNetV3-Small,C4是第9个瓶颈块的扩展层。对于这两个网络,C5是紧接在汇集之前的层。
  • 本文还将C4和C5之间的所有要素图层的通道数减少了2。这是因为MobileNetV3最后几层调成输出1000个类,转移到COCO有90个类可能是多余的。
  • COCO测试集的结果在下表中给出。随着信道的减少,MobileNetV3-Large比具有几乎相同mAP的MobileNetV2快27%。减少通道的MobileNetV3-Small也比MobileNetV2和MnasNet高2.4和0.5 mAP,同时速度快35%。对于两种MobileNetV3模型,通道减少技巧有助于在没有mAP丢失的情况下减少大约15%的延迟,这表明Imagenet分类和COCO对象检测可能偏好不同的特征提取器形状。
  • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第9张图片
  • COCO测试集上不同主干SSDLite的目标检测结果。"+"表示C4和C5之间的模块中的通道减少2倍。

Semantic Segmentation

  • 本文采用MobileNetV2 和the proposed MobileNetV3作为移动语义分段任务的网络主干。此外,本文比较了两个分段头。第一种被称为R-ASPP,是在[MobileNetV2]中提出的。R-ASPP是阿特鲁空间金字塔池模块的简化设计,它仅采用两个分支,包括一个1 × 1卷积和一个全局平均池操作。在这项工作中,本文提出了另一种轻型分割头,称为建兴R-ASPP(或LR-ASPP),如下图所示。
  • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第10张图片
    • 基于MobileNetV3,建议的分割头Lite R-ASPP在混合来自多个分辨率的特征的同时,提供快速的语义分割结果。
  • Lite R-ASPP在R-ASPP的基础上进行改进,以类似于挤压和激励模块[SENet]的方式部署了全局平均池,其中本文采用了一个大跨度的大池内核(以节省一些计算),并且在模块中只有一个1×1卷积。本文将atrous卷积应用于MobileNetV3的最后一个块,以提取更密集的特征,并进一步添加来自低级特征的跳过连接,以捕捉更详细的信息。
  • 本文使用metric mIOU 在Cityscapes数据集上进行实验,并且仅利用“精细”注释。本文采用与相同的训练协议。本文所有的模型都是从零开始训练的,没有在ImageNet上进行预训练,并使用单一尺度输入进行评估。类似于对象检测,本文观察到,可以将网络主干的最后一个块中的信道减少2倍,而不会显著降低性能。本文认为这是因为主干设计用于1000类ImageNet图像分类,而在Cityscapes上只有19类,这意味着主干中有一些通道冗余。
  • 本文在下表格中报告了Cityscapes验证集的结果。如表中所示,本文观察到
    • (1)将网络主干的最后一个块中的信道减少2倍显著提高了速度,同时保持类似的性能(第1行对第2行,第5行对第6行),
    • (2)提出的分段头LR-ASPP比R-ASPP 稍快,同时性能得到提高(第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,但速度相似。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第11张图片
    • Cityscapes数据集上的语义分割结果。RF2:将最后一块中的过滤器减少2倍。V2 0.5和V2 0.35分别是深度乘数= 0.5和0.35的MobileNetV2。SH:分段头,其中×采用R-ASPP,而X采用建议的LR-ASPP。f:分段头中使用的过滤器数量。
    • CPU (f):在全分辨率输入(即1024 × 2048)下,在Pixel 3(浮点)的单个大内核上测量的CPU时间。
    • CPU (h):在半分辨率输入下测量的CPU时间(即512 × 1024)。第8行和第11行是我们的MobileNetV3分段候选。
  • 下表显示了本文的Cityscapes测试集结果。本文以MobileNetV3作为网络主干的分段模型分别比ESPNetv2、CCC2 和ESPNetv1 高出6.4%、10.6%和12.3%,同时在MAdds方面更快。当在MobileNetV3的最后一个块中不使用atrous卷积来提取密集特征映射时,性能略微下降0.6%,但速度提高到1.98B(对于半分辨率输入),分别比ESPNetv2、CCC2和ESPNetv1快1.36、1.59和2.27倍。此外,本文采用MobileNetV3-Small作为网络主干的型号仍然比所有型号的性能都要好,至少高出2.1%。

Conclusions and future work

  • 在本文中,介绍了MobileNetV3大型和小型模型,展示了移动分类、检测和分割的最新技术。本文已经描述了利用多种网络架构搜索算法的努力,以及网络设计的进步,以提供下一代移动模型。本文还展示了如何适应非线性,如swish,并以量化友好和有效的方式应用squeeze和excite,将它们作为有效的工具引入移动模型领域。本文还引入了一种新形式的轻量级分段解码器,称为LR-ASPP。虽然如何最好地将自动搜索技术与人类直觉相结合仍是一个悬而未决的问题,但很高兴展示这些初步的积极成果,并将在未来的工作中继续完善这些方法。

Performance table for different resolutions and multipliers

  • 在下表中给出了包含乘法-加法、精度、参数计数和延迟的详细表格。
    • 【读点论文】Searching for MobileNetV3 集合了多项热门技术通道注意力,神经网络搜索,V1,V2。建议深度学习MnasNet和NetAdapt两篇论文_第12张图片
    • 大型和小型V3模型的浮点性能。P-1对应于像素1上的大单核性能。

你可能感兴趣的:(论文笔记,深度学习,神经网络,人工智能,轻量化网络,mobileV3)