MnasNet: Platform-Aware Neural Architecture Search for Mobile

Abstract

  • 为移动设备设计卷积神经网络(CNN)具有挑战性,因为移动模型需要小而快,但仍然准确。虽然已经致力于在各个方面设计和改进移动CNN,但是当有如此多的架构可能性需要考虑时,手动平衡这些权衡是非常困难的。在本文中,我们提出了一种自动移动神经架构搜索(MNAS)方法,该方法明确地将模型延迟合并到主要目标中,以便搜索可以识别在准确性和延迟之间实现良好折衷的模型。与以前的工作不同,我们的方法通过另一个通常不准确的代理(例如,FLOPS)来考虑延迟,我们的方法通过在移动电话上执行模型来直接测量实际推理延迟。为了进一步在灵活性和搜索空间大小之间取得适当的平衡,我们提出了一种新的分解分层搜索空间,它鼓励整个网络中的层分集。 实验结果表明,我们的方法在多个视觉任务中始终优于最先进的Mobile CNN模型。在ImageNet分类任务中,我们的MnasNet在Pixel手机上实现了75.2%的前1精度和78ms延迟,比MobileNetV2快了1.8倍[29],精度提高0.5%,比NASNet快36倍[36],1.2% 准确度更高。

Introduction

  • 卷积神经网络(CNN)在图像分类,物体检测和许多其他应用方面取得了重大进展。 随着现代CNN模型越来越深[31,13,36,26],它们也变得越来越慢,需要更多的计算。计算需求的这种增加使得在资源受限的平台(例如移动或嵌入式设备)上部署最先进的CNN模型变得困难。
  • 鉴于移动设备上可用的计算资源有限,最近的研究主要集中在通过减少网络深度和利用较低成本的操作来设计和改进移动CNN模型,例如深度卷积[11]和群组卷积[33]。然而,设计资源受限的移动模型具有挑战性:人们必须仔细平衡准确性和资源效率,从而产生显着大的设计空间。
  • 在本文中,我们提出了一种用于设计移动CNN模型的自动神经结构搜索方法。 图1显示了我们的方法概述,其中与以前方法的主要区别在于延迟感知多目标奖励和新颖的搜索空间。我们的方法基于两个主要思想。 首先,我们将设计问题表述为一个多目标优化问题,该问题考虑了CNN模型的准确性和推理延迟。与之前使用FLOPS估算推理延迟的工作不同,我们通过在真实移动设备上执行模型来直接测量实际延迟。我们的想法受到以下观察的启发:FLOPS通常是一个不准确的代理:例如,MobileNet和NASNet有类似的FLOPS(575M对564M),但它们的延迟明显不同。其次,我们观察到先前的自动化方法主要搜索几种类型的小区,然后通过网络重复堆叠相同的小区。 这简化了搜索过程,但也排除了对计算效率很重要的层多样性。为了解决这个问题,我们提出了一种新颖的分解分层搜索空间,它允许层在架构上不同但仍然在灵活性和搜索空间大小之间取得适当的平衡。
  • 我们将我们提出的方法应用于ImageNet分类[28]和COCO对象检测[18]。 图2总结了我们的MnasNet模型与其他最先进的移动模型之间的比较。与MobileNet V2相比,我们的模型将ImageNet精度提高了3.0%,同时在Google Pixel手机上具有相似的延迟。另一方面,如果我们限制目标精度,那么我们的MnasNet模型比MobileNetV2快1.8倍,比NASNet [36]快2.3倍,精度更高。与广泛使用的ResNet-50 [9]相比,我们的MnasNet模型精度略高(76.7%),参数减少4.8倍,乘加操作减少10倍。通过将我们的模型作为特征提取器插入SSD对象检测框架,我们的模型通过MobileNetsV1和MobileNetV2改善了COCO数据集的推理延迟和mAP质量,并实现了与SSD300 [22]相当的mAP质量(23.0 vs 23.2) 42倍的乘法加法运算。
  • 总之,我们的主要贡献如下:
  1. 我们引入了一种多目标神经架构搜索方法,可以优化移动设备的准确性和实际延迟。
  2. 我们提出了一种新颖的分解分层搜索空间,以实现层分集,但仍然在灵活性和搜索空间大小之间取得了适当的平衡。
  3. 我们在典型的移动延迟限制下,在ImageNet分类和COCO对象检测上展示了最新的精确度。

Related Work

  • 在过去几年中,提高CNN模型的资源效率一直是一个活跃的研究课题。一些常用的方法包括1)将基线CNN模型的权重和/或激活量化为较低位表示或2)根据FLOP修剪不太重要的滤波器,或者平移感知度量,如[32]中引入的延迟。然而,这些方法与基线模型相关联,并不专注于学习CNN操作的新颖组成。
  • 另一种常见的方法是直接手工制作更有效的移动架构:SqueezeNet [15]通过使用低成本1x1卷积和减少滤波器尺寸来减少参数和计算的数量; MobileNet [11]广泛采用深度可分离卷积来最小化计算密度; Shuf fl eNets [33,24]利用低成本的组卷积和信道shuffle; Condensenet [14]学会了跨层连接组卷积; 最近,MobileNet V2 [29]通过使用资源有效的反向残差和线性瓶颈,在移动尺寸模型中实现了最新的结果。 不幸的是,鉴于潜在的巨大设计空间,这些手工制作的模型通常需要大量的人力。
  • 最近,人们越来越关注使用神经结构搜索来自动化模型设计过程。 这些方法主要基于强化学习[35,36,1,19,25],进化搜索[26],可微分搜索[21]或其他学习算法[19,1723]。 虽然这些方法可以通过重复堆叠一些搜索的单元格来生成移动大小的模型,但它们不会将移动平台约束结合到搜索过程或搜索空间中。 与我们的工作密切相关的是MONAS [12],DPP-Net [3],RNAS [34]和Pare to-NASH [4],它们在搜索CNN时尝试优化多个目标,例如模型大小和准确度,但是 他们的搜索过程优化了像CIFAR这样的小任务。 相比之下,本文针对现实世界的移动延迟约束,并专注于ImageNet分类和COCO对象检测等更大的任务。

Problem Formulation

  • 我们将设计问题表述为多目标搜索,旨在发现具有高精度和低推理延迟的CNN模型。 与以前通常针对间接指标进行优化的架构搜索方法(如FLOPS)不同,我们通过在真实移动设备上运行CNN模型,然后将真实世界推理延迟合并到我们的目标中来考虑直接的实际推理延迟。 这样做直接衡量了实践中可实现的目标:我们的早期实验表明,由于各种移动硬件/软件特性,接近实际延迟具有挑战性。
  • 给定模型m,让ACC(m)表示其在目标任务上的准确性,LAT(m)表示目标移动平台上的推断等待时间,并且T是目标等待时间。 一种常见的方法是将T视为硬约束并在此约束下最大化准确度:
  • 然而,该方法仅最大化单个度量并且不提供多个Pareto最优解。 非正式地,如果模型具有最高精度而不增加延迟,或者它具有最低延迟而不降低精度,则称模型称为Pareto最优[2]。 考虑到执行架构搜索的计算成本,我们更感兴趣的是在单一架构搜索中找到多个Pareto最优解决方案。
  • 虽然文献[2]中有许多方法,但我们使用定制的加权乘积法1来近似Pareto最优解,其优化目标定义为:
  • 其中w是权重因子,定义如下:
  • 其中α和β是应用特定常数。 选择α和β的经验规则是确保帕累托最优解在不同的准确度 - 延迟权衡下具有相似的奖励。 例如,我们凭经验观察到延迟加倍通常会带来约5%的相对准确度增益。 给出两种模型:(1)M1具有延迟l和准确度a; (2)M2有2l和5%的准确度a·(1 + 5%),他们应该有类似的奖励:奖励(M2)= a·(1 + 5%)·(2l / T)β≈Reward( M1)= a·(l / T)β。 解决这个问题会得到β≈-0.07。 因此,除非明确说明,否则我们在实验中使用α=β= -0.07。
  • 图3显示了具有两个典型值(α,β)的目标函数。 在具有(α= 0,β= -1)的顶部图中,如果测量的等待时间小于目标等待时间T,我们仅使用准确度作为目标值; 否则,我们会严厉惩罚客观价值,以阻止模型违反延迟限制。 底部图形(α=β= -0.07)将目标延迟T视为软约束,并基于测量的等待时间平滑地调整目标值。

Mobile Neural Architecture Search

  • 如最近的研究[36,20]所示,一个定义良好的搜索空间对于神经结构搜索非常重要。 然而,大多数先前的方法[35,19,26]仅搜索一些复杂的细胞,然后重复堆叠相同的细胞。 这些方法不允许层分集,我们展示这对于实现高精度和低延迟至关重要。与之前的方法相比,我们引入了一种新颖的分解分层搜索空间,它将CNN模型分解为唯一的块,然后分别搜索每个块的操作和连接,从而允许不同块中的不同层体系结构。我们的直觉是,我们需要根据输入和输出形状搜索最佳操作,以获得更好的准确度。例如,CNN的早期阶段通常处理更大量的数据,因此比后期阶段对推理延迟具有更高的影响。形式上,考虑一个广泛使用的纵向可分离卷积[11]核,表示为四元组,它将大小为的输入转换为大小为的输出,其中是输入分辨率,m,n是输入/输出滤波器大小。 乘加的总数可以描述为:
  • 如果总计算受到限制,我们需要仔细平衡内核大小K和过滤器大小N. 例如,增加具有较大内核尺寸K的层的接收场必须与减小同一层中的滤波器尺寸N或从其他层计算来平衡。
  • 图4显示了我们搜索空间的基线结构。 我们将CNN模型划分为一系列预定义块,逐渐降低输入分辨率并增加滤波器尺寸,这在许多CNN模型中很常见。 每个块具有相同层的列表,其操作和连接由每块子搜索空间确定。 具体而言,块i的子搜索空间包含以下选项:
  1. 卷积运算ConvOp:常规转换(conv),深度转换(dconv)和移动倒置瓶颈转换
  2. 卷积内核大小内核大小:3x3,5x5。
  3. 挤压和激发[13]比率SERatio:0,0.25。
  4. 跳过操作:合并,身份残留或不跳过。
  5. 输出滤波器尺寸Fi。
  6. 每块Ni的层数。
  • ConvOp,KernelSize,SERatio,SkipOp,Fi确定图层的体系结构,而Ni确定图层将重复多少次。 例如,图4中的块4的每一层具有倒置的瓶颈5×5卷积和同一性残留跳过路径,并且相同的层重复N4次。 我们使用MobileNet V2作为参考离散所有搜索选项:对于每个块中的#个图层,我们根据MobileNetV2搜索{0,+ 1,-1}; 对于每层的过滤器尺寸,我们在{0.75,1.0,1.25}中搜索其与MobileNetV2的相对大小.
  • 我们的分解分层搜索空间具有平衡层的多样性和总搜索空间大小的独特优势。 假设我们将网络划分为B个块,并且每个块具有大小为S的子搜索空间,每个块具有平均N个层,那么我们的总搜索空间大小将是,与每层搜索空间的fl一致,大小为。 典型情况是S = 432,B = 5,N = 3,其中我们的搜索空间大小约为1013,与搜索空间大小为1039的每层方法相反。
  • 受近期工作[35,36,25,20]的启发,我们使用强化学习方法为我们的多目标搜索问题找到Pareto最优解。 我们选择强化学习是因为它方便且奖励很容易定制,但我们期望其他方法如进化[26]也应该有效。
  • 具体地说,我们遵循与[36]相同的想法,并将搜索空间中的每个CNN模型映射到令牌列表。 这些令牌由来自强化学习代理的一系列动作基于其参数θ确定。 我们的目标是最大化预期的奖励:
  • 其中m是由确定的采样模型,是由等式2定义的目标值。
  • 如图1所示,搜索框架由三个部分组成:基于当前神经网络(RNN)的控制器,用于获得模型精度的训练器,以及用于测量延迟的基于移动电话的推理引擎。 我们遵循众所周知的sample-eval-update循环来训练控制器。 在每个步骤中,控制器首先使用其当前参数θ对一批模型进行采样,通过基于来自其RNN的softmax对数来预测序列软件。 对于每个采样模型m,我们在目标任务上训练它以获得其准确度ACC(m),并在真实手机上运行它以获得其推理延迟LAT(m)。 然后,我们使用等式2计算奖励值R(m)。在每个步骤结束时,通过使用近端策略优化[30]最大化由等式5定义的预期奖励来更新控制器的参数θ。 重复采样 - 评估更新循环,直到达到最大步数或参数θ收敛。

Conclusion

  • 本文介绍了一种自动神经结构搜索方法,用于使用强化学习设计资源效率高的移动CNN模型。 我们的主要想法是将平台感知的真实世界延迟信息整合到搜索过程中,并利用新颖的分解分层搜索空间来搜索精确度和延迟之间最佳权衡的移动模型。 我们证明我们的方法可以自动发现比现有方法更好的移动模型,并在ImageNet分类和COCO对象检测非典型移动推理延迟约束上实现新的最先进结果。 由此产生的MnasNet架构提供了关于层分集重要性的有趣发现,这将指导我们设计和改进未来的移动CNN模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值