《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记

MnasNet

这篇文章“MnasNet:移动平台感知神经结构搜索”是谷歌发表在CVPR2019的一篇论文,原论文见 MnasNet: Platform-Aware Neural Architecture Search for Mobile。

 下面是对论文的一个简单翻译:


摘要

 为移动设备设计卷积神经网络(CNN)是一个挑战,因为移动模型需要小而快,但仍然准确。尽管在各个方面都致力于设计和改进移动CNNs,但是当有如此多的架构可能性需要考虑时,手工平衡这些trade-offs是非常困难的。在本文中,我们提出了一种自动移动神经架构搜索(MNAS)方法,该方法将模型延迟显式地纳入到主要目标中,以便能够搜索出一个在精度和延迟之间实现良好权衡的模型。与之前的工作不同,之前延迟是通过另一个通常不太准确的指标(例如FLOPS)来考虑的,我们的方法直接通过在手机上执行模型来测量实际的推理延迟。为了进一步在灵活性和搜索空间大小之间取得适当的平衡,我们提出了一种新的分解层次搜索空间,它鼓励整个网络的层多样性。实验结果表明,我们的方法始终优于最先进的移动CNN模型在多个视觉任务上的表现。在ImageNet分类任务中,我们的MnasNet在Pixel手机上实现了75.2%的top-1准确率,延迟为78ms,比MobileNetV2快1.8倍,准确率提高0.5%,比NASNet快2.3倍,准确率提高1.2%。我们的MnasNet在COCO对象检测方面也比MobileNets具有更好的mAP。代码位于https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet。

1. 介绍

 卷积神经网络(CNN)在图像分类、目标检测和许多其他应用领域取得了显著的进展。随着现代CNN模型变得越来越深、越来越大,它们也变得越来越慢,需要更多的计算。计算需求的增加使得在例如移动设备或嵌入式设备之类的资源受限的平台上部署最先进的CNN模型变得困难。

 由于移动设备上可用的计算资源有限,最近的许多研究都集中在设计和改进移动CNN模型上,通过降低网络的深度和使用更便宜的操作,如深度卷积和组卷积。然而,设计一个资源受限的移动模型是具有挑战性的:一个人必须小心地平衡准确性和资源效率,导致一个显著大的设计空间。

 本文提出了一种用于移动CNN模型设计的自动神经结构搜索方法。图1显示了我们的方法的概述,其中与以前方法的主要区别是延迟感知多目标奖励和新的搜索空间。我们的方法基于两个主要思想。首先,我们将设计问题表示为一个多目标优化问题,同时考虑CNN模型的准确性和推理延迟。与以前使用FLOPS来近似推断延迟的工作不同,我们直接通过在实际移动设备上执行模型来测量实际的延迟。我们的想法的灵感来源于FLOPS往往是一个不准确的指标:例如MobileNet和NASNet有类似的FLOPS(575M与564M),但是他们的延迟明显不同(113ms与183ms,细节见表1)。其次,我们观察到以前的自动化方法主要是搜索一些类型的单元,然后通过网络重复地堆叠相同的单元。这简化了搜索过程,但也排除了对计算效率很重要的层多样性。为了解决这个问题,我们提出了一种新的分解层次搜索空间,它允许层在架构上不同,但仍然在灵活性和搜索空间大小之间取得适当的平衡。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第1张图片
图1. 基于移动平台的神经网络搜索研究综述

 我们将所提出的方法应用于ImageNet分类和COCO目标检测。图2总结了我们的MnasNet模型和其他最先进的移动模型之间的比较。与MobileNetV2相比,我们的模型提高了3.0%的ImageNet精度,在谷歌Pixel手机上具有类似的延迟。另一方面,如果我们限制目标精度,那么我们的MnasNet模型比MobileNetV2快1.8倍,比NASNet快2.3倍,具有更好的精度。与广泛使用的ResNet-50相比,我们的MnasNet模型在少4.8倍的参数和少10倍的乘法-加法操作的情况下,精度略高(76.7%)。通过将我们的模型作为特征提取器插入SSD对象检测框架,我们的模型在MobileNetsV1和MobileNetV2上改进了COCO数据集的推理延迟和mAP,并以少42倍的乘法-加法操作实现了与SSD300相当的mAP(23.0 vs 23.2)。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第2张图片
图2. 准确性vs延迟——我们的MnasNet模型在ImageNet上明显优于其他移动模型。详情见表1

 总而言之,我们的主要贡献如下:

 1. 我们介绍了一种多目标神经结构搜索方法,它可以优化移动设备上的准确性和实际延迟。

 2. 我们提出了一种新颖的分解分层搜索空间,以实现层的多样性,但仍然在灵活性和搜索空间大小之间取得了适当的平衡。

 3. 我们在典型的移动延迟限制下,在ImageNet分类和COCO对象检测上展示了STOA的精确度。

2. 相关工作

 近年来,提高CNN模型的资源效率一直是一个活跃的研究课题。一些常用的方法包括:1)将基线CNN模型的权重和/或激活量化为低比特表示,或2)根据FLOPs修剪不太重要的滤波器,或根据平台感知的指标(如[Netadapt]中引入的延迟)。然而,这些方法都是与基线模型相联系的,并且不专注于学习CNN操作的新组成部分。

 另一种常见的方法是直接手工制作更高效的移动架构:SqueezeNet通过使用更低成本的1x1卷积和减小滤波器尺寸,减少了参数量和计算量;MobileNet广泛采用深度可分离卷积来最小化计算密度;ShuffleNets利用低成本的组卷积和信道洗牌;Condensenet学习跨层连接组卷积;最近,MobileNetV2通过使用资源效率高的反向残差和线性瓶颈,在移动尺寸的模型中取得了最先进的结果。不幸的是,考虑到潜在的巨大设计空间,这些手工制作的模型通常需要大量的人力。

 近年来,利用神经结构搜索实现模型设计过程的自动化越来越受到人们的关注。这些方法主要基于强化学习、进化搜索、可微搜索等学习算法。虽然这些方法可以通过重复堆积一些搜索单元来生成移动尺寸的模型,但是它们并没有将移动平台约束合并到搜索过程或搜索空间中。与我们的工作密切相关的是MONAS、DPP-Net、RNAS和Pareto-NASH,它们在搜索CNNs时,试图优化多个目标,如模型大小和精度,但是它们的搜索过程只对CIFAR等小任务进行了优化。相比之下,本文针对的是实际的移动延迟约束,重点研究了ImageNet分类和COCO对象检测等较大的任务。

3. 问题公式化

 我们将设计问题表示为一个多目标搜索,目标是找到既具有高精度又具有低推理延迟的CNN模型。不像以前的架构搜索方法常常优化间接指标,比如FLOPS,我们考虑直接的真实世界的推理延迟,方法是在真实的移动设备上运行CNN模型,然后将真实世界的推理与我们的目标结合起来。这样做可以直接测量在实践中可以实现什么:我们早期的实验表明,由于移动硬件/软件特性的多样性,要近似真实世界的延迟是很有挑战性的。

 给定模型 m m m,让 A C C ( m ) ACC(m) ACC(m)表示其在目标任务上的精度, L A T ( m ) LAT(m) LAT(m)表示目标移动平台上的推理延迟, T T T表示目标延迟。一种常见的方法是将 T T T视为硬约束,并在此约束下最大限度地提高精度:

m a x i m i z e m A C C ( m ) \mathop{maximize}\limits_{m}\quad ACC(m) mmaximizeACC(m)

s u b j e c t   t o L A T ( m ) ≤ T subject\ to\quad LAT(m)\le T subject toLAT(m)T

 然而,这种方法只最大化了一个度量,并没有提供多个Pareto最优解。非正式地说,如果模型具有不增加延迟的最高精度,或者具有不降低精度的最低延迟,则称为Pareto最优。考虑到执行架构搜索的计算成本,我们更感兴趣的是在单个架构搜索中找到多个Pareto最优解。
虽然文献[Multi-objective optimization]中有很多方法,但我们使用自定义加权积方法近似Pareto最优解,优化目标定义为:

m a x i m i z e m A C C ( m ) × [ L A T ( m ) T ] w \mathop{maximize}\limits_{m}\quad ACC(m)\times \left[\frac{LAT(m)}{T}\right]^{w} mmaximizeACC(m)×[TLAT(m)]w

 其中 w w w为权重因子,定义为:

w = { α ,   i f   L A T ( m ) ≤ T β ,   o t h e r w i s e w=\left\{ \begin{aligned} &\alpha,\ if\ LAT(m) \le T\\ &\beta,\ otherwise \end{aligned} \right. w={α, if LAT(m)Tβ, otherwise

α \alpha α β \beta β是特定于应用程序的常数。挑选 α \alpha α β \beta β的经验法则是确保Pareto最优解决方案在不同的精度-延迟权衡下具有类似的奖励。例如,我们根据经验观察到,延迟加倍通常会带来5%的相对准确度增益。给出两种模型:(1)M1具有延时 l l l和精度 a a a;(2)M2具有延迟 2 l 2l 2l和5%更高的精度 a ⋅ ( 1   +   5 % ) a\cdot(1 + 5\%) a(1+5%),他们应该也有类似的奖励: R e w a r d ( M 2 ) = a ⋅ ( 1 + 5 % ) ⋅ ( 2 l / T ) β ≈ R e w a r d ( M 1 ) = a ⋅ ( l / T ) β Reward(M2)=a\cdot (1+5\%)\cdot(2l/T)^{\beta}\approx Reward(M1)=a\cdot (l/T)^{\beta} Reward(M2)=a(1+5%)(2l/T)βReward(M1)=a(l/T)β。解得 β ≈ − 0.07 \beta\approx −0.07 β0.07。 因此,我们在我们的实验中使用 α = β = − 0.07 \alpha=\beta=−0.07 α=β=0.07,除非显式声明。

 图3显示了目标函数的两个典型值 ( α , β ) (\alpha,\beta) (α,β)。在上面的图 ( α = 0 , β = − 1 ) (\alpha=0,\beta=−1) (α=0,β=1),如果测量延迟小于目标延迟 T T T,我们只需使用精度作为目标值;否则,我们将严格惩罚目标值,以阻止模型违反延迟约束。底部图 ( α = β = − 0.07 ) (\alpha=\beta=−0.07) (α=β=0.07)将目标延迟 T T T视为一个软约束,并根据测量延迟平滑调整目标值。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第3张图片
图3. 目标函数,假设准确率ACC(m)=0.5,目标延迟T=80ms:上面的图表示以延迟为硬约束的目标值;下图的图显示了以延迟为软约束的目标值。

4. 移动神经结构搜索

 在这一部分,我们将首先讨论我们提出的新的分解层次搜索空间,然后总结我们基于强化学习的搜索算法。

4.1 分解的层次搜索空间

 最近的研究表明一个定义良好的搜索空间对于神经结构搜索是非常重要的。然而,大多数以前的方法只搜索一些复杂的单元格,然后重复堆栈相同的单元格。这些方法不允许层多样性,但这对于实现高精度和低延迟都是至关重要的。

 与之前的方法不同,我们引入了一种新的分解层次搜索空间,它将CNN模型分解为独特的块,然后分别搜索每个块的操作和连接,从而允许在不同块中使用不同的层结构。我们的直觉是,我们需要根据输入和输出形状搜索最佳操作,以获得更好的精度-延迟权衡。例如,CNNs的早期阶段通常处理更大量的数据,因此对推理延迟的影响比后期阶段大得多。形式上,考虑一个表示为一个四元组 ( K , K , M , N ) (K,K,M,N) (K,K,M,N)的广泛使用的深度可分离卷积内核,它将大小为 ( H , W , M ) (H,W,M) (H,W,M)的输入转换为大小为 ( H , W , N ) (H,W,N) (H,W,N)的输出,其中 ( H , W ) (H,W) (H,W)是输入分辨率, M M M N N N是输入/输出滤波器尺寸。乘法-加法的总数可以描述为:

H ∗ W ∗ M ∗ ( K ∗ K + N ) H*W*M*(K*K+N) HWM(KK+N)

 在这里,如果总计算量受到限制,我们需要小心地平衡内核大小 K K K和滤波器尺寸 N N N。例如,增大某一层的原本大小为 K K K的核以增加感受野,必须减少同一层的滤波器大小 N N N或从其他层计算得到的结果以保持平衡。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第4张图片
图4. 分解的层次搜索空间。 根据网络层的输入分辨率和滤波器尺寸,将它们分组为若干预定义的框架(称为块)。每个块包含一个可变数量的重复相同的层,其中只有第一层具有步长2(如果输入/输出分辨率不同),但所有其他层都具有步长1。对于每个块,我们搜索一个单层的操作和连接以及层数N,然后重复N次相同的层(例如,Layer 4-1到Layer 4-N4是相同的)。来自不同块的层(例如,Layer 2-1和Layer 4-1)可以是不同的。

 图4显示了搜索空间的基线结构。我们将CNN模型划分为一系列预定义的块,逐渐降低输入分辨率,并像许多CNN模型一样增加滤波器尺寸。每个块都有一组相同的层,它们的操作和连接由每个块子搜索空间决定。具体来说,块 i i i的子搜索空间由以下选项组成:

  • 卷积运算操作 C o n v O p ConvOp ConvOp:常规卷积 (conv)、深度卷积(dconv)、移动倒瓶颈卷积
  • 卷积核大小 K e r n e l S i z e KernelSize KernelSize:3x3,5x5
  • 挤压-激励比 S E R a t i o SERatio SERatio:0,0.25
  • skip操作 S k i p O p SkipOp SkipOp:池化,单位残差(identity residual),或没有skip
  • 输出滤波器尺寸 F i F_{i} Fi
  • 每个块的层数 N i N_{i} Ni

C o n v O p ConvOp ConvOp K e r n e l S i z e KernelSize KernelSize S E R a t i o SERatio SERatio S k i p O p SkipOp SkipOp F i F_{i} Fi决定一个层的架构,而 N i N_{i} Ni决定该层将在块中重复多少次。例如,图4中块4的每一层都有一个反向瓶颈5x5卷积和一个单位残差跳转路径,同一层重复 N 4 N_{4} N4次。 我们使用MobileNetV2作为参考对所有搜索选项进行离散化:对于每个块中的层数,我们基于MobileNetV2搜索 { 0 , + 1 , − 1 } \{0,+1,-1\} {0+11};对于每层的滤波器尺寸,我们搜索它关于MobileNetV2的相对尺寸 { 0.75 , 1.0 , 1.25 } \{0.75,1.0,1.25\} {0.75,1.0,1.25}

 我们的分层分解搜索空间在平衡层次的多样性和搜索空间的大小方面具有明显的优势。假设我们将网络划分为 B B B个块,每个块都有一个大小为 S S S的子搜索空间,每个块平均有 N N N层,那么我们的总搜索空间大小将是 S B S^{B} SB,相对于大小为 S B ∗ N S^{B*N} SBN的平坦逐层搜索空间。一个典型的例子是 S   =   432 S = 432 S=432 B   =   5 B = 5 B=5 N   =   3 N = 3 N=3,那么我们的搜索空间大小约为 1 0 13 10^{13} 1013,对比之下使用逐层搜索方法的空间大小为 1 0 39 10^{39} 1039

4.2 搜索算法

 受近期工作的启发,我们使用强化学习方法为我们的多目标搜索问题找到Pareto最优解。我们选择强化学习是因为它很方便,而且奖励函数也很容易定制,但是我们认为其他方法,比如[evolution]也能奏效。

 具体来说,我们遵循与[Learning transferable architectures for scalable image recognition]相同的思想,将搜索空间中的每个CNN模型映射到令牌列表。这些令牌由强化学习代理基于参数 θ \theta θ的一系列动作 a 1 : T a_{1:T} a1:T确定。我们的目标是最大化预期的奖励:

J = E P ( a 1 : T ; θ ) [ R ( m ) ] J=E_{P(a_{1:T};\theta)}[R(m)] J=EP(a1:T;θ)[R(m)]

 其中 m m m为动作 a 1 : T a_{1:T} a1:T确定的采样模型, R ( m ) R(m) R(m)为目标值。

 如图1所示,搜索框架由三个部分组成:一个基于递归神经网络(RNN)的控制器、一个获取模型精度的训练器和一个用于测量延迟的基于手机的推理引擎。我们遵循众所周知的sample-eval-update循环来训练控制器。在每个步骤中,控制器首先使用其当前参数 θ \theta θ对一批模型进行采样,方法是根据其RNN中的SoftMax逻辑预测令牌序列。对于每一个采样的模型 m m m,我们将其训练在目标任务上,得到其精度 A C C ( m ) ACC(m) ACC(m),并将其运行在真实的手机上,得到其推理延迟 L A T ( m ) LAT(m) LAT(m),然后计算奖励值 R ( m ) R(m) R(m)。在每个步骤结束时,通过使用近端策略优化(Proximal Policy Optimization)最大化奖励的期望,从而更新控制器的参数 θ \theta θ。sample-eval-update循环重复,直到达到最大迭代次数或参数 θ \theta θ收敛。

5. 实验设置

 直接搜索像ImageNet或COCO这样的大型任务的CNN模型是昂贵的,因为每个模型需要几天的时间来收敛。虽然以前的方法主要在较小的任务上执行架构搜索,比如CIFAR-10,但是当考虑到模型延迟时,我们发现这些较小的代理任务不起作用,因为当应用于较大的问题时,通常需要扩大模型的规模。在本文中,我们直接在ImageNet训练集上执行架构搜索,但是只需要较少的训练步骤(5个epoch)。通常情况下,我们会从训练集中随机选取50K的图像作为固定的验证集。为了保证精度的提高是从我们的搜索空间中得到的,我们使用了与NASNet相同的RNN控制器,尽管它并不高效:在64台TPUv2设备上,每次架构搜索需要4.5天。在训练过程中,我们通过在Pixel 1手机的单线程大CPU内核上运行来测量每个采样模型的实际延时。总的来说,我们的控制器在架构搜索过程中采样了大约8K个模型,但是只有15个性能最好的模型被转移到完整的ImageNet,只有1个模型被转移到COCO。

 对于完整的ImageNet训练,我们使用RMSProp优化器,使用0.9的decay和0.9的momentum。在每个卷积层之后加入批归一化,momentum为0.99,weight decay为1e-5。最后一层应用0.2的Dropout。跟[Accurate, large minibatch sgd: training imagenet in 1 hour.]一样,学习率在前5个epoch从0增加到0.256,然后每2.4个epoch衰减0.97。我们使用batch大小4K和图像大小224×224的起始预处理。对于COCO的训练,我们将学习到的模型插入到SSD检测器中,使用与[MobileNetV2]相同的设置,包括输入大小为320×320。

6. 结果

 在本节中,我们研究了我们的模型在ImageNet分类和COCO目标检测方面的性能,并与其他最先进的移动模型进行了比较。

6.1 ImageNet分类性能

 表1显示了我们的模型在ImageNet上的性能。我们将目标延迟设置为 T = 75 m s T=75ms T=75ms,类似于MobileNetV2,并在架构搜索期间使用 α = β = − 0.07 \alpha=\beta=-0.07 α=β=0.07的奖励函数。然后,我们从相同的搜索实验中选择了三个性能最好的MnasNet模型,并将它们与现有的移动模型进行了比较。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第5张图片
表1. ImageNet分类的性能结果。我们将我们的MnasNet模型与手动设计的移动模型和其他自动化方法进行了比较——MnasNet-A1是我们的基线模型;MnasNet-A2和MnasNet-A3是两个来自同一架构搜索实验的具有不同延迟的模型(用于比较);#Params:可训练参数量;#Mult-Adds:对于每张图像来说的乘法-加法运算数;Top-1/5 Acc:ImageNet验证集的top-1或top-5精度;Inference Latency:在批量大小为1的Pixel 1手机的大CPU核心上测量。

 如表所示,我们的MnasNet A1模型达到了75.2%的top-1/92.5%的top-5精度,延迟为78ms,3.9M参数/312M乘加法运算量,为这种典型的移动延迟约束实现了一种新的最先进的精度。特别是,MnasNet在相同的Pixel手机上运行速度比MobileNetV2(1.4)快1.8倍,准确率高0.5%。与自动搜索CNN模型相比,我们的MnasNet运行速度比移动尺寸的NASNet-A快2.3倍,top-1准确率高1.2%。值得注意的是,我们的稍微大一点的MnasNet-A3模型比ResNet-50具有更好的精度,但是参数减少了4.8倍,乘加法成本减少了10倍。

 鉴于挤压和激励(Squeeze-and-excitation networks)相对较新,许多现有的移动模型没有这种额外的优化,我们也在表2中的搜索空间中显示了没有SE的搜索结果;我们的自动化方法仍然显著优于MobileNetv2和NASNet。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第6张图片
表2. 挤压和激发(SE,Squeeze-and-Excitation)的性能研究 – MnasNet-A表示搜索空间中带有SE的默认MnasNet;MnasNet-B表示搜索空间中没有SE的MnasNet。

6.2 模型扩展性能

 考虑到现实世界中存在的无数应用程序需求和设备异构性,开发人员通常会将模型按比例放大或缩小,以牺牲准确性来换取延迟或模型大小。一种常用的缩放技术是使用深度乘数修改滤波器的尺寸。例如,深度乘数0.5将每个层中的通道数减半,从而减少了延迟和模型大小。另一种常用的缩放技术是在不改变网络的情况下减小输入图像的大小。

 图5通过改变深度乘数和输入图像大小,比较了MnasNet和MobileNetV2的模型缩放性能。当深度乘数从0.35变为1.4时,推理延迟也从20ms变为160ms。如图5a所示,对于每个深度乘数,我们的MnasNet模型的精度始终优于MobileNetV2。同样,我们的模型对输入大小的变化也很健壮,在96到224的所有输入图像大小中,它的性能始终优于MobileNetV2(精度提高了4.1%),如图5b所示。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第7张图片
图5. 不同模型缩放技术的性能比较。MnasNet是我们的基线模型,如表1所示。我们使用与MobileNetV2相同的深度乘数和输入尺寸来缩放它。

 除了模型扩展,我们的方法还允许为任何延迟目标搜索新的体系结构。例如,一些视频应用程序可能需要低至25毫秒的延迟。我们可以缩小基线模型的规模,或者搜索专门针对这种延迟约束的新模型。表4比较了这两种方法。为了公平比较,我们对所有模型使用相同的224x224大小图像。虽然我们的MnasNet在相同的缩放参数下已经优于MobileNetV2,但是我们可以通过针对22ms延迟约束的新架构搜索进一步提高精度。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第8张图片
表4. 模型缩放 vs 模型搜索 – MobileNetV2(0.35x)和MnasNet-A1(0.35x)表示使用深度乘数0.35缩放基线模型;MnasNet-search1/2表示针对22ms延迟限制的新架构搜索的模型。

6.3 COCO目标检测性能

 对于COCO对象检测,我们选取表2中的MnasNet模型作为SSDLite的特征提取器,这是SSD的一个改进的资源高效版本。与[MobileNetV2]类似,我们将我们的模型与其他移动尺寸的SSD或YOLO模型进行比较。

 表3显示了我们的MnasNet模型在COCO上的性能。YOLO和SSD的结果来自[Yolo9000],MobileNets的结果来自[MobileNetV2]。我们在COCO trainval35k上训练我们的模型,并在test-dev2017上进行评估,将结果提交给COCO server。如表所示,我们的方法在MobileNet V1和V2上显著提高了精度。与标准的SSD300检测器相比,我们的MnasNet模型在7.4倍更少的参数和42倍更少的乘法-加法运算量的情况下,实现了与SSD300相当的mAP质量(23.0 vs 23.2)。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第9张图片
表3. COCO目标检测性能结果 - #Params:可训练参数个数;#Mult-Adds:每张图像需要的乘法-加法运算量;mAP:test-dev2017上的标准平均精度;mAP_{S}、mAP_{M}、mAP_{L}:小、中、大目标的平均精度;推理延迟:Pixel 1手机上的推理延迟。

7. 消融实验及讨论

 在本节中,我们将研究延迟约束和搜索空间的影响,并讨论MnasNet体系结构细节和层多样性的重要性。

7.1 软延迟与硬延迟约束

 多目标搜索方法允许我们通过在奖励方程中设置不同的 α \alpha α β \beta β值处理硬和软延迟约束。图6显示了典型的 α \alpha α β \beta β的多目标搜索结果。当 α = 0 \alpha=0 α=0 β = 1 \beta=1 β=1时,延迟被当作一个硬约束,所以控制器往往更关注速度更快的模型,以避免延迟惩罚。另一方面,通过设置 α = β = − 0.07 \alpha=\beta=−0.07 α=β=0.07,控制器将目标延迟作为一个软约束,并试图在更大的延迟范围内寻找模型。它在目标延迟值(75ms)附近采样了更多的模型,但也探索了延迟小于40ms或大于110ms的模型。这允许我们在单个架构搜索中从Pareto曲线中选择多个模型,如表1所示。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第10张图片
图6. 多目标搜索结果 (a)α=0,β=1; 和(b)α=β=−0.07。目标延迟为T=75ms。上图为3000个采样模型(绿点)的Pareto曲线(蓝线);下图为模型延迟的直方图。

7.2 理清搜索空间和奖励

 为了理清我们的两个关键贡献的影响:多目标奖励和新的搜索空间,表5比较了它们的性能。从NASNet开始,我们首先使用相同的单元基搜索空间,并使用我们提议的多对象奖励简单地添加延迟约束。结果表明,它通过将精度转换为延迟来生成更快的模型。然后,我们应用我们的多目标奖励和我们新的分解搜索空间,实现更高的准确性和更低的延迟,表明我们的搜索空间的有效性。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第11张图片
表5. 解耦搜索空间与奖励设计的比较 - Multi-obj表示我们的多目标奖励;Single-obj仅表示优化精度。

7.3 MnasNet体系结构和层多样性

 图7(a)说明了通过自动化方法找到的MnasNet-A1模型。正如预期的那样,它由各种层架构组成。一个有趣的观察是,我们的MnasNet同时使用了3x3和5x5卷积,这与之前的移动模型都只使用3x3卷积不同。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第12张图片
图7. MnasNet-A1体系结构 - (a)为表1中选取的代表性模型;(b)-(d)是一些对应的层结构。MBConv为移动倒瓶颈卷积,DWConv为深度卷积,k3x3/k5x5为核大小,BN为批归一化,HxWxF为张量形状(高、宽、深),×1/2/3/4为块内重复层数。

 为了研究层多样性的影响,表6比较了MnasNet及其只重复单一类型层的变体(固定内核大小和扩展率)。我们的MnasNet模型比那些变体具有更好的精度-延迟权衡,这突出了资源受限CNN模型中层多样性的重要性。

《MnasNet: Platform-Aware Neural Architecture Search for Mobile》论文笔记_第13张图片
表6. MnasNet及其变体的性能比较 — MnasNet-A1表示图7(a)所示的模型;另一些变体在整个网络中重复单一类型的层。所有的模型在每一层都有相同的层数和相同的滤波器尺寸。

8. 结论

 本文提出了一种利用强化学习设计资源高效的移动CNN模型的自动神经结构搜索方法。我们的主要想法是将平台感知的真实世界的延迟信息整合到搜索过程中,并利用一个新的因子化的层次搜索空间来搜索在准确性和延迟之间具有最佳权衡的移动模型。我们证明,我们的方法可以自动找到比现有方法明显更好的移动模型,并在典型的移动推理延迟约束下,在ImageNet分类和COCO目标检测方面实现新的最先进的结果。此产生的MnasNet架构还提供了关于层多样性重要性的有趣发现,这将指导我们设计和改进未来的移动CNN模型。

你可能感兴趣的:(轻量级网络)