当前位置:网站首页>MnasNet学习笔记
MnasNet学习笔记
2022-07-01 02:24:00 【麻花地】
MnasNet学习笔记
原文地址:MnasNet: Platform-Aware Neural Architecture Search for Mobile
简介
轻量化网络优化


通过硬指标T控制整个目标函数的惩罚和激励
$\alpha $ = 0 ,$\beta $ = -1时,惩罚更厉害,因此大多数模型集中在硬指标以内
$\alpha $ = -0.07 ,$\beta $ = -0.07时,整体分布更平均,更多样


保证不同层的结构多样性

整体流程

得到的结构

正文

Abstract
为移动设备设计卷积神经网络(CNN)具有挑战性,因为移动模型需要小而快,但仍然准确。尽管在设计和改进移动CNN的各个方面都做出了巨大的努力,但当需要考虑这么多架构可能性时,很难手动平衡这些权衡。在本文中,我们提出了一种自动移动神经架构搜索(MNAS)方法,该方法将模型延迟明确纳入主要目标,以便搜索能够识别出一个在准确性和延迟之间实现良好权衡的模型。与之前的工作不同,我们的方法通过另一个通常不准确的代理(例如FLOPS)来考虑延迟,我们的方法通过在手机上执行模型来直接测量真实世界的推理延迟。为了进一步在灵活性和搜索空间大小之间取得适当的平衡,我们提出了一种新的因式分解分层搜索空间,以鼓励整个网络的层多样性。实验结果表明,在多个视觉任务中,我们的方法始终优于最先进的移动CNN模型。在ImageNet分类任务中,我们的MnasNet在像素手机上的延迟为1.8毫秒,达到75.2%的top-1精度⇥ 比MobileNetV2[29]更快,精确度高出0.5%和2.3%⇥ 比NASNet更快,精确度高1.2%。我们的MnasNet在COCO目标检测方面也比MobileNet实现了更好的地图质量。代码位于https://github.com/tensorflow/tpu/树/主/模型/官方/mnasnet。
1. Introduction
卷积神经网络(CNN)在图像分类、目标检测和许多其他应用方面取得了重大进展。随着现代CNN模型变得越来越深、越来越大[31、13、36、26],它们也变得越来越慢,需要更多的计算。计算需求的增加使得在资源受限的平台上部署最先进的CNN模型变得困难例如移动或嵌入式设备。
考虑到移动设备上可用的计算资源有限,最近的许多研究都集中于通过减少网络深度和使用较低成本的操作(如深度卷积[11]和组卷积[33])来设计和改进移动CNN模型。然而,设计一个资源受限的移动模型是一个挑战:必须小心地平衡准确性和资源效率,从而产生巨大的设计空间。
在本文中,我们提出了一种用于设计移动CNN模型的自动神经结构搜索方法。图1显示了我们的方法的概述,其中与以前的方法的主要区别是延迟感知多目标奖励和新颖的搜索空间。我们的方法基于两个主要思想。首先,我们将设计问题描述为一个多目标优化问题,该问题考虑了CNN模型的准确性和推理延迟。与之前的工作[36、26、21]中使用触发器来近似推断延迟不同,我们通过在真实移动设备上执行模型来直接测量真实世界的延迟。我们的想法受到以下观察的启发:FLOPS通常是一个不准确的代理:例如,MobileNet[11]和NASNet[36]有类似的FLOPS(575M vs.564M),但它们的延迟显著不同(113ms vs.183ms,详情见表1)。其次,我们观察到,以前的自动化方法主要搜索几种类型的单元,然后通过网络重复堆叠相同的单元。这简化了搜索过程,但也排除了对计算效率很重要的层多样性。为了解决这个问题,我们提出了一种新的因式分解层次搜索空间,它允许层在架构上有所不同,但仍然在灵活性和搜索空间大小之间取得了适当的平衡。

我们将我们提出的方法应用于ImageNet分类[28]和COCO目标检测[18]。图2总结了我们的MnasNet模型与其他最先进的移动模型之间的比较。与MobileNetV2相比,我们的模型将ImageNet的准确度提高了3.0%,在谷歌像素手机上的延迟相似。另一方面,如果我们限制目标精度,那么我们的MnasNet模型比MobileNetV2快1.8倍,比S NASNet快2.3倍,精度更高。与广泛使用的ResNet-50[9]相比,我们的MnasNet模型的精度略高(76.7%),参数少4.8倍,乘加运算少10倍。通过将我们的模型作为特征提取器插入到SSD对象检测框架中,我们的模型改善了COCO数据集上的推理延迟和映射质量,优于MobileNetsV1和MobileNetV2,并实现了与SSD300相当的映射质量(23.0 vs 23.2),只需42×更少的乘加操作。

综上所述,我们的主要贡献如下:
1、我们介绍了一种多目标神经架构搜索方法,该方法可以优化移动设备上的准确性和真实世界的延迟。
2、我们提出了一种新的因式分解层次搜索空间,以实现层多样性,但仍能在灵活性和搜索空间大小之间取得适当的平衡。
3、在典型的移动延迟约束下,我们在ImageNet分类和COCO对象检测方面展示了新的最先进的准确性。
2. Related Work
在过去几年中,提高CNN模型的资源效率一直是一个活跃的研究课题。一些常用的方法包括1)将基线CNN模型的权重和/或激活量化为较低的位表示[8,16],或2)根据触发器修剪不太重要的过滤器[6,10],或根据平台感知指标,如[32]中引入的延迟。然而,这些方法与基线模型相关联,并不侧重于学习CNN操作的新组合。
另一种常见的方法是直接手工制作更高效的移动架构:SqueezeNet[15]通过使用低成本1x1卷积和减少滤波器尺寸来减少参数和计算的数量;MobileNet[11]广泛使用深度可分离卷积来最小化计算密度;ShuffleNet[33,24]利用低成本的组卷积和信道混洗;Concedenet【14】学习跨层连接组卷积;最近,MobileNetV2【29】通过使用资源效率高的反向残差和线性瓶颈,在移动规模模型中取得了最先进的结果。不幸的是,考虑到潜在的巨大设计空间,这些手工制作的模型通常需要大量的人力。
最近,人们对使用神经结构搜索实现模型设计过程的自动化越来越感兴趣。这些方法主要基于强化学习【35、36、1、19、25】、进化搜索【26】、可微搜索【21】或其他学习算法【19、17、23】。虽然这些方法可以通过重复堆叠几个搜索单元来生成移动大小模型,但它们没有将移动平台约束纳入搜索过程或搜索空间。与我们的工作密切相关的是MONAS【12】、DPP Net【3】、RNAS【34】和Pareto NASH【4】,它们试图在搜索CNN时优化多个目标,如模型大小和准确性,但它们的搜索过程在诸如CIFAR之类的小任务上进行了优化。相比之下,本文针对现实世界中的移动延迟限制,重点关注更大的任务,如ImageNet分类和COCO对象检测。
3. Problem Formulation
我们将设计问题描述为一个多目标搜索,旨在找到具有高精度和低推理延迟的CNN模型。与以前的架构(architecture)搜索方法(通常针对间接指标(如触发器)进行优化)不同,我们通过在真实移动设备上运行CNN模型,然后将真实世界的推理延迟纳入我们的目标,来考虑直接实际推理延迟。这样做可以直接衡量在实践中可以实现的目标:我们的早期实验表明,由于移动硬件/软件特性的多样性,接近真实世界的延迟很有挑战性。
给定一个模型m,让ACC(m)表示其对目标任务的准确性,LAT(m)表示目标移动平台上的推理延迟,T表示目标延迟。常用的方法是将T视为硬约束,并在此约束下最大限度地提高精度:

然而,这种方法只能最大化单个度量,而不能提供多个帕累托最优解。非正式地说,如果一个模型在不增加延迟的情况下具有最高的准确度,或者在不降低准确度的情况下具有最低的延迟,则该模型称为帕累托最优模型。考虑到执行架构搜索的计算成本,我们更感兴趣的是在单个架构搜索中找到多个Pareto-optimal(相同性能下预算最低,相同预算下性能最优)最优解。
虽然文献[2]中有许多方法,但我们使用定制的加权积方法1来近似帕累托最优解,优化目标定义为:

其中,w是权重系数,定义为:

其中α和β是应用特定常数。选择α和β的经验规则是确保在不同精度延迟权衡下,帕累托最优解具有相似的回报。例如,我们根据经验观察到,延迟增加一倍通常会带来5%的相对准确度提高。给出了两种模型:(1)M1具有延迟l和精度a;(2) M2的潜伏期为2l,准确率高出5%:a·(1+5%),他们应该有类似的奖励: R e w a r d ( M 2 ) = a ⋅ ( 1 + 5 % ) ⋅ ( 2 l / T ) β ≈ Reward ( M 1 ) = a ⋅ ( l / T ) β Reward(M2)=a \cdot ( 1+5 \%) \cdot(2 l / T)^{\beta} \approx \operatorname{Reward}(M 1)=a \cdot(l / T)^{\beta} Reward(M2)=a⋅(1+5%)⋅(2l/T)β≈Reward(M1)=a⋅(l/T)β。解决这个问题会得到β≈ −0.07. 因此,我们使用α=β=−0.07在我们的实验中,除非明确说明。
图3显示了具有两个典型值(α,β)的目标函数。在上图中,带(α=0,β=−1) ,如果测得的延迟时间小于目标延迟时间T,我们只需使用准确度作为目标值;否则,我们会大幅惩罚目标值,以阻止模型违反延迟约束。下图(α=β=−0.07)将目标延迟T视为软约束,并根据测量的延迟平滑调整目标值。


4. Mobile Neural Architecture Search
在本节中,我们将首先讨论我们提出的新的分解层次搜索空间,然后总结我们基于强化学习的搜索算法。
略



5. Experimental Setup
在像ImageNet或COCO这样的大型任务中直接搜索CNN模型是很昂贵的,因为每个模型需要几天的时间才能收敛。虽然以前的方法主要对较小的任务(如CIFAR10)执行架构搜索[36,26],但我们发现,当考虑到模型延迟时,这些较小的代理任务不起作用,因为在应用于较大的问题时,通常需要放大模型。在本文中,我们直接在ImageNet训练集上执行架构搜索,但训练步骤较少(5个阶段)。通常,我们从训练集中随机选择50K图像作为固定验证集。为了确保精度的提高来自于我们的搜索空间,我们使用了与NASNet相同的RNN控制器,尽管它效率不高 在64台TPUv2设备上,每次架构搜索需要4.5天的时间。在培训期间,我们通过在Pixel 1手机的单线程大CPU内核上运行每个采样模型来测量其真实世界的延迟。总体而言,我们的控制器在架构搜索期间采集了大约8K个模型,但只有15个性能最好的模型被传输到完整的ImageNet,只有1个模型被传输到COCO。
对于完整的ImageNet训练,我们使用衰减为0.9、动量为0.9的RMSProp优化器。在每个卷积层后加入批次范数,动量为0.99,重量衰减为1e-5。退出率0.2应用于最后一层。继文献[7]之后,前5个时期的学习率从0增加到0.256,然后每2.4个时期下降0.97。我们使用批量大小4K和初始预处理,图像大小为224×224。对于COCO培训,我们将学习的模型插入SSD检测器[22],并使用与[29]相同的设置,包括输入大小320×320。
6. Results
在本节中,我们将研究我们的模型在ImageNet分类和COCO对象检测方面的性能,并将其与其他最先进的移动模型进行比较。





7. Ablation Study and Discussion
在本节中,我们研究了延迟约束和搜索空间的影响,并讨论了MnasNet体系结构细节和层多样性的重要性。
7.1. Soft vs. Hard Latency Constraint
我们的多目标搜索方法允许我们通过将α和β设置为奖励方程2中的不同值来处理硬延迟和软延迟约束。图6显示了典型α和β的多目标搜索结果。当α=0时,β=−1、延迟被视为硬约束,因此控制器倾向于更多地关注更快的模型,以避免延迟惩罚。另一方面,通过设置α=β=−0.07时,控制器将目标延迟视为软约束,并尝试在更大的延迟范围内搜索模型。它围绕75ms的目标延迟值采样了更多的模型,但也探索了延迟小于40ms或大于110ms的模型。这允许我们在单个架构搜索中从Pareto曲线中选择多个模型,如表1所示。
7.2. Disentangling Search Space and Reward
为了理清我们两个关键贡献的影响:多目标奖励和新搜索空间,图5比较了它们的性能。从NASNet[36]开始,我们首先使用相同的单元基搜索空间[36],并使用我们提出的多对象奖励简单地添加延迟约束。结果表明,通过将准确性与延迟进行权衡,它可以生成更快的模型。然后,我们应用我们的多目标奖励和我们新的因式分解搜索空间,实现了更高的准确性和更低的延迟,表明了我们的搜索空间的有效性。

7.3. MnasNet Architecture and Layer Diversity
图7(a)说明了我们通过自动化方法找到的MnasNet-A1模型。正如预期的那样,它由整个网络中的各种层体系结构组成。一个有趣的观察结果是,我们的MnasNet同时使用3x3和5x5卷积,这与以前的移动模型都只使用3x3卷积不同。
为了研究层多样性的影响,表6将MnasNet与其仅重复单一类型层(固定内核大小和扩展比)的变体进行了比较。与这些变体相比,我们的MnasNet模型具有更好的准确性和延迟权衡,突出了层多样性在资源受限的CNN模型中的重要性。


8. Conclusion
本文提出了一种利用强化学习设计资源高效移动CNN模型的自动神经结构搜索方法。我们的主要想法是将平台感知的真实世界延迟信息纳入搜索过程,并利用一个新的分解层次搜索空间来搜索移动模型,在准确性和延迟之间进行最佳权衡。我们证明,在典型的移动推理延迟约束下,我们的方法可以自动找到比现有方法更好的移动模型,并在ImageNet分类和COCO对象检测方面取得新的最新成果。由此产生的MnasNet体系结构还提供了有关层多样性重要性的有趣发现,这将指导我们设计和改进未来的移动CNN模型。
边栏推荐
- 手机上怎么开户?还有,在线开户安全么?
- 522. 最长的特殊序列 II
- Short message sending solution in medical his industry
- SWT / anr problem - SWT caused by long execution time of native method
- Pulsar 主题压缩
- Ernie gram, an explicit and complete n-gram mask language model, implements explicit n-gram semantic unit knowledge modeling.
- Small program cloud development -- wechat official account article collection
- Pytorch - - Basic Reference North Deux élèves du secondaire peuvent comprendre [Rétropropagation et Gradient descendant]
- How does the property send a text message to the owner?
- SWT / anr problem - anr/je causes SWT
猜你喜欢

nacos配置中心使用教程

LabVIEW计算相机图像传感器分辨率以及镜头焦距

(总结一)Halcon基础之寻找目标特征+转正

(translation) reasons why real-time inline verification is easier for users to make mistakes

Short message sending solution in medical his industry

最新微信ipad协议 CODE获取 公众号授权等

RocketQA:通过跨批次负采样(cross-batch negatives)、去噪的强负例采样(denoised hard negative sampling)与数据增强(data augment
![How to add a condition for an associated table in an SQL statement [null value required or not required]](/img/91/0efbc13597be4dba5b9cf4e8644e35.png)
How to add a condition for an associated table in an SQL statement [null value required or not required]

5款主流智能音箱入门款测评:苹果小米华为天猫小度,谁的表现更胜一筹?

LabVIEW calculates the camera image sensor resolution and lens focal length
随机推荐
House change for agricultural products? "Disguised" house purchase subsidy!
Cluster method synchronous execution framework suona
Short message sending solution in medical his industry
ANR问题的分析与解决思路
[multi source BFS] 934 Shortest Bridge
开源基础软件公司,寻找一起创造未来的你(API7.ai)
现在开户有优惠吗?另外,手机开户安全么?
Video tutorial | Chang'an chain launched a series of video tutorial collections (Introduction)
7_ Openresty installation
Pytorch - - Basic Reference North Deux élèves du secondaire peuvent comprendre [Rétropropagation et Gradient descendant]
AI 边缘计算平台 - BeagleBone AI 64 简介
LabVIEW calculates the camera image sensor resolution and lens focal length
最新微信ipad协议 CODE获取 公众号授权等
SWT/ANR问题--ANR/JE引发SWT
import tensorflow. contrib. Slim as slim error
SWT / anr issues - ams/wms
機器學習10-信念貝葉斯分類器
import tensorflow.contrib.slim as slim报错
centos 安装多个版本的php并切换
I want to know how to open a stock account? Is it safe to open an account online?