基于AutoML方法,结合强化学习设计一种资源约束的移动端 CNN 模型MnasNet。该系统主要包括三个部分:(1)循环神经网络驱动的控制器,用于学习和采样模型的架构;(2)训练器,用于构建和训练模型;(3)TensorFlow Lite驱动的推理引擎测量模型的速度。团队制定了一个多目标优化问题,旨在实现高准确率和高速,并利用带有定制奖励函数的强化学习算法来寻找帕累托最优解。该自动化架构搜索方法在多个复杂移动设备视觉任务上取得当前最佳性能。 |
论文链接:点击查看PDF
设计用于移动端的卷积神经网络(CNN)模型具有很大的挑战性,因为移动端模型在保持同样准确率的同时需要小而快。尽管人们一直在移动端模型的这三个方面上不断地设计和改进,但是当需要考虑许多架构可能性时,如何综合权衡这三个方面也是一项挑战。在本文中,我们提出了一种自动神经结构搜索方法,用于设计资源受限的移动端CNN模型。我们明确地将速度信息纳入搜索算法的主要奖励函数中,以便搜索可以识别一个在准确率和速度之间实现良好平衡的模型。不同于以前的架构搜索方法,在我们的实验中,模型速度是通过另一个替代品(如 FLOPS)来考虑的。我们的方法通过在特定平台上执行模型来直接测量模型速度,例如本研究中使用的 Pixel 手机。为了进一步在灵活性和搜索空间大小之间取得适当平衡,我们提出了一种新型因子化的层级搜索空间,允许整个网络中的层分集。实验结果表明,我们的方法在多个视觉任务中达到了state-of-the-art。在ImageNet分类任务中,我们的模型在Pixel手机上实现了74.0%的 top-1 准确率和76毫秒耗时,比MobileNet V2 快 1.5 倍,并且比 NASNet 快 2.4 倍。在COCO对象检测任务中,我们的模型系列实现了比MobileNets更高的mAP标准和更低的耗时。
引言
卷积神经网络(CNN)在图像分类,目标检测和许多其他应用方面取得了重大进展。随着现代CNN模型越深越大,它们也变得更慢,需要更多的计算资源。计算需求的增加使得难以在诸如移动或嵌入式设备的资源受限平台上部署最先进的CNN模型。
鉴于移动设备上可用的计算资源有限,最近的研究主要通过降低网络深度和利用较便宜的操作来设计和改进移动端CNN模型网络,如深度卷积(Howard et al.2017)和群体卷积(Zhang et al.2018)。然而,设计资源受限的移动端模型具有一定挑战性:一方面须谨慎地平衡准确性和资源效率,从而产生较大的设计空间。而更复杂的问题是每种类型的移动设备都有自己的软件和硬件特性,可能需要不同的架构来在准确率和速度之间做出最佳权衡。
在本文中,我们提出了使用强化学习设计移动端模型的自动化神经架构搜索方法。图1显示了我们的方法的整体视图,其中与以前方法的主要区别是多目标奖励和新的搜索空间。我们的方法受两个主要想法的启发。将设计问题描述为一个考虑 CNN 模型精度和推理实时性的多目标优化问题。使用架构搜索和强化学习以找到模型,在准确率和实时性取得平衡。其次,之前很多自动化搜索方法主要是搜索几种类型的单元,然后通过 CNN 网络重复叠加相同的单元,而未能考虑卷积操作造成的运算效率差异。例如,具有相同数量的理论FLOPS但形状不同的两个3x3卷积可能不具有相同的耗时。基于这一观察,我们提出了一个层级搜索空间,该搜索空间由一系列分解的模块组成,每个模块包含由具有不同卷积操作和连接的分层子搜索空间定义的层列表。我们展示了应该在架构的不同深度使用不同的操作,并且可以使用使用测量的推理等待时间作为奖励信号的一部分的架构搜索方法来有效地在这个大的选项空间中进行搜索。
我们将我们提出的方法应用于ImageNet分类和COCO对象检测。实验结果表明,我们的方法发现的最佳模型明显优于最先进的移动端模型。与最近的Mo-bileNetV2相比,我们的模型在Pixel手机上具有相同的耗时,将ImageNet的Top-1精度提高了2%。另一方面,如果我们限制目标top-1准确度,那么我们的方法可以找到另一个模型,在相同的精度的前提下,它比MobileNetV2快1.5倍,比NASNet快2.4倍。通过额外的压缩和激励优化,采用我们的方法,ResNet-50的Top-1精度达到了76.13%,参数减少了19倍,矩阵乘法运算减少了10倍。我们展示了我们的模型也很好地概括了不同的模型缩放技术(例如,不同的输入图像尺寸),与MobileNetV2相比,ImageNet的Top-1精度提高了约2%。通过将我们的模型作为特征提取器嵌入到SSD对象检测框架中,对比MobileNetV1和MobileNetV2,我们的模型改善了COCO数据集的运算耗时和mAP标准,并实现了与SSD300相当的mAP(22.9 vs 23.2),但计算成本低35倍。
总之,我们的主要贡献如下:
1。我们引入了一种基于强化学习的多目标神经网络搜索方法,该方法能够找到具有低实际推理耗时的高精度CNN模型。
2.我们提出了一种新颖的分解分层搜索空间,通过在灵活性和搜索空间大小之间取得适当的平衡,最大化移动模型的设备上资源效率。
3.我们对ImageNet分类和COCO对象检测方面的最先进的移动端CNN模型进行了显著和一致的改进。
相关工作
近年来,提高CNN模型的资源效率一直是一个活跃的研究课题。一些常用的方法包括1)将基线CNN模型的权重和/或激活量化为较低位表示,或2)在训练期间或之后修剪不太重要的滤波器,以降低其计算成本。然而,这些方法与基线模型相关联,并不专注于学习CNN操作的新组合。
另一种常见的方法是直接人工制作更高效的操作和神经架构:SqueezeNet通过普遍使用低成本的1x1卷积和缩小滤波器尺寸来减少参数和计算的数量; MobileNet广泛采用深度可分离卷积来最小化计算密度; ShuffleNet利用低成本的逐点组卷积和信道混洗;ShuffleNetV2 对网络进行了四点改进:(1)使用相同的通道宽度的卷积;(2)考虑使用组卷积;(3)降低碎片化程度;(4)减少元素级运算。 Condensenet学习使用跨层连接组卷积;最近,MobileNetV2通过Inverted Residual block。该结构和传统 residual block 中维度先缩减再扩增正好相反,因此 shotcut 也就变成了连接的是维度缩减后的 feature map。去掉了小维度输出层后面的非线性激活层,在移动尺寸模型中获得了最新的结果。不幸的是,考虑到潜在的巨大设计空间,这些人工制作的模型通常需要相当大的人力,并且仍然不是最理想的。
最近,人们越来越关注自动化神经结构设计过程,特别是对于CNN模型。 NASNet和MetaQNN使用强化学习开始了自动神经结构搜索的浪潮。因此,进一步开发了神经结构搜索,使用渐进式搜索方法,参数共享,分层搜索空间,网络传输,进化搜索,或差异搜索算法。虽然这些方法可以通过重复堆叠搜索的单元格来生成移动大小的模型,但它们不会将移动平台约束纳入搜索过程或搜索空间。最近,MONAS,PPP-Net,RNAS和Pareto-NASH试图优化多个目标,例如搜索CNN时的模型大小和准确性,但它们仅限于CIFAR-10等小型任务。相比之下,本文针对现实世界的移动端耗时约束,并侧重于更大的任务,如图像分类和COCO对象检测。
问题公式
我们将设计问题表述为一个多目标搜索,旨在寻找具有高精度和低运算耗时的CNN模型。与先前优化间接指标(如FLOPS或参数数量)的工作不同,我们通过在真实移动设备上运行CNN模型,然后将现实世界运算耗时纳入我们的目标,来考虑直接的实际运算耗时。这样做可以直接衡量现实世界中可实现的指标:我们对代理推论指标的早期实验,包括单核桌面CPU耗时和模拟成本模型的度量表明,由于移动设备软硬件配置的多样性,模拟实际的耗时是具有挑战性的。
给定模型m,让ACC(m)表示其在目标任务上的准确度,LAT(m)表示目标移动平台上的推理耗时,T是目标耗时。一种常用的方法是将T作为硬约束,并在该约束下最大化精度。
图2 目标函数由公式2定义的,如 - 求和精度ACC(m)= 0.5,目标等待时间T = 80ms :(上)显示对应于硬耗时约束的α= 0,β= -1的客观值; (下图)显示了α=β= -0.07的目标值,对应于软耗时约束。
然而,这种方法仅最大化单个度量,且不提供多个帕累托最优解。通俗的说,如果模型具有最高精度而不增加耗时,或者它具有最低耗时而不降低精度,则称该模型称为帕累托最优(Deb 2014)。考虑到执行架构搜索的计算成本,我们更感兴趣的是在单个架构搜索中找到多个帕累托最优解决方案。虽然文献中有许多方法(Deb 2014),但我们使用定制的加权乘积法1来近似帕累托最优解,通过将优化目标设定为:
其中α和β是应用特定常数。选择α和β的经验规则是检查如果我们将耗时加倍或减半,预计会有多少精度获得或损失。例如,将Mo-bileNetV2的耗时加倍或减半(Sandler等人,2018)会带来约5%的准确度增益或损失,因此我们可以凭经验设置α=β= -0.07,因为 2 − 0.07 − 1 ≈ 1 − 0. 5 − 0.07 ≈ 5 2^{-0.07}-1\approx 1-0.5^{-0.07}\approx 5% 2−0.07−1≈1−0.5−0.07≈5。通过设置(α,β)方程2可以有效地近似目标耗时T附近的帕累托解。
图2显示了具有两个典型目标函数的(α,β)值。在上图(α= 0,β= -1)中,如果测量的耗时小于目标耗时T,我们只需使用精度作为目标值;否则,我们会严厉惩罚客观值,以阻止模型违反耗时约束。底部图(α=β= -0.07)将目标等待时间T视为软约束,并基于测量的等待时间平滑地调整目标值。在本文中,我们设置α=β= -0.07,以便在单个搜索实验中获得多个帕累托最优模型。探索动态适应帕累托曲线的奖励函数将是一个有趣的未来方向。
搜索算法
受近期工作的启发(Zoph和Le 2017; Pham等2018; Liu等2018b),我们采用基于梯度的加强学习方法为我们的多重寻找帕累托最优解决方案解决目标搜索问题。我们选择加强学习是因为它很方便且奖励很容易定制,但我们期望其他搜索算法,如evolution(Real et al.2018)也应该有效。
具体地说,我们遵循与(Zoph等人,2018)相同的想法,并将搜索空间中的每个CNN模型映射到一个标记列表。这些象征由一系列强化学习的参数 θ \theta θ作用决定。我们的强化目标是最大限度地学习预期奖励:
其中模型M是由动作1:T唯一确定的采样模型。如图1所示,搜索框架由三个部分组成:基于 RNN 的控制器,用于实现模型准确率的训练器,基于推断引擎测量耗时。 我们遵循众所周知的sample-eval-update循环来训练控制器。在每个步骤中,控制器首先使用其当前参数θ对一批模型进行采样,方法是基于来自其RNN的softmax logits预测一系列符记。对于每个采样模型m,我们在目标任务上训练它以获得其精度ACC(m),并在真实手机上运行以获得其推理耗时LAT(m)。然后我们使用等式2计算奖励值R(m)。在每个步骤结束时,通过使用近似策略优化最大化由等式4定义的预期奖励来更新控制器的参数θ(Schulman等人2017 )。重复采样 - 评估 - 更新循环,直到达到最大步数或参数θ收敛。
分解的分层搜索空间
如最近的研究(Zoph等,2018; Liu等,2018b)所示,明确定义的搜索空间对于神经结构搜索非常重要。在本节中,我们将介绍一种新颖的分解分层搜索空间,它将CNN层分成组并搜索每组的操作和连接。
图3:分解的分层搜索空间。网络层根据其输入分辨率和过滤器大小分组为多个预定义骨架(称为模块)。每个模块包含可变数量的重复相同层,其中如果输入/输出分辨率不同但是所有其他层具有步幅1,则仅第一层具有步幅2.对于每个块,我们搜索单个层的操作和连接以及N,然后重复相同的层N次层的数量(例如,层4-1到4-N4是相同的)。来自不同模块(例如,层2-1和4-1)的层可以是不同的。
与之前的搜索架构方法(Zoph和Le 2017; Liu等2018a; Real等2018)相比,它只搜索一些复杂的网格,然后重复堆叠相同的网格,我们简化了每个网格的搜索空间,但允许网格不同。我们的直觉是需要根据输入和输出形状搜索最佳操作,以获得最佳的准确耗时权衡。例如,CNN模型的早期阶段通常处理更大量的数据,因此比后期阶段对推理耗时具有更高的影响。形式上,考虑一个广泛使用的深度可分离卷积(Howard et al.2017)内核,表示为四元组(K,K,M,N),它将大小(H,W,M)2的输入转换为大小为(H,W,N)的输出,其中(H,W)是输入分辨率,M,N是输入/输出滤波器大小。乘加计算的总数可以描述为:
其中第一部分H * W * M * K * K用于深度方向卷积和第二部分,H * W * M * N,用于以下1x1卷积。如果总计算资源有限,我们需要仔细平衡内核大小K和过滤器大小N.例如,增加具有较大内核尺寸K的层的有效感受野必须与减小同一层上的滤波器尺寸N或从其他层计算来平衡。
图3显示了我们搜索空间的基线结构。我们将CNN模型划分为一系列预定义模块,逐渐降低输入分辨率并增加滤波器大小,这在许多CNN模型中很常见。每个模块具有相同层的列表,其操作和连接由每个模块子搜索空间确定。具体而言,模块i的子搜索空间由以下选项组成:
•卷积类型ConvOp:常规conv(conv),depthwise conv(dconv)和具有各种扩展比的移动端inverted bottleneck conv(Sandler等,2018)。
•卷积核大小KernelSize:3x3,5x5。
•跳跃层连接方式SkipOp:最大或平均合并,标识剩余跳过或无跳过路径。
•输出滤波器尺寸 F i F_i Fi
•每个 block 卷积层个数 N i N_i Ni
ConvOp,KernelSize,SkipOp, F i F_i Fi决定每一卷积层架构,而 Ni 决定每一个 block 重复卷积层的次数。图3中的每个块4具有inverted bottleneck conv5x5卷积和一个恒等残差跳跃路径,并且所有子N重复相同的连接层搜索4次。 最终的搜索空间是每个块的所有子搜索空间的串联。
我们的分解层次搜索空间具有平衡层的多样性和总搜索空间大小的独特优势。假设我们将网络划分为B块,并且每个块具有大小为S的子搜索空间,每块具有平均N层,那么我们的总搜索空间大小将是 S B S^B SB,与平面每层搜索空间大小为 S B ∗ N S^{B*N} SB∗N。在典型的N = 3时,我们的搜索空间比平坦的每层搜索空间小几个数量级。
实验设置
直接在大型任务(如ImageNet或COCO)上搜索CNN模型的成本非常高,因为每个模型需要数天才能收敛。按照以前的工作常规做法(Zoph et al.1188; Real et al.1188),我们在较小的代理任务上进行架构搜索实验,然后将架构搜索期间发现的表现最佳的模型转移到目标是完成任务。但是,找到准确性和耗时的良好代理任务并非易事:必须考虑任务类型,数据集类型,输入图像大小和类型。我们对CIFAR-10和斯坦福狗数据集(斯拉等人2011)的初始实验显示,
表1: ImageNet分类的性能结果(Russakovsky等。 2015年)。我们将MnasNet模型与手动设计的移动模型和其他自动化方法进行比较 - MnasNet是我们的基准模型; MnasNet-65和MnasNet-92是两个模型(用于比较),具有来自相同架构搜索实验的不同耗时; + SE表示具有额外的挤压和激励优化(Hu,Shen和Sun 2018); #Parameters:可训练参数的数量; #Mult-Adds:每个图像的乘加操作数; Top-1/5 Acc:ImageNet验证集上的前1或前5精度; CPU耗时:Pixel 1电话上批量大小为1的推理耗时。
当考虑模型耗时时,这些数据集不是ImageNet的良好测试任务。在本文中,我们直接在ImageNet训练集上执行我们的架构搜索,但训练步骤较少。由于在架构搜索文献中通常有一个单独的验证集来测量精度,我们还保留了从训练集中随机选择的50K图像作为固定的验证集。在体系结构搜索期间,我们使用积极的学习计划在测试训练集的5个时期训练每个采样模型,并在50K验证集上评估模型。同时,我们通过将模型转换为TFLite格式并在Pixel 1手机的单线程大CPU核心上运行来测量每个采样模型的实际耗时。总的来说,我们的控制器在架构搜索期间对大约8K模型进行了采样,但只有少数表现最佳的模型(<15)被传输到完整的Ima-geNet或COCO。请注意,在架构搜索期间,我们从不评估原始ImageNet验证数据集。
对于完整的ImageNet训练,我们使用具有衰减0.9和动量0.9的RMSProp优化器。在每个卷积层之后添加批量范数,动量为0.9997,并且权重衰减设置为0.00001。接下来(Goyal等人,2017),我们在第一个5纪元预热训练阶段将学习率从0线性地提高到0.256,然后每2.4个时期将学习率降低0.97。这些超参数通过8个重量衰减组合{0.00001,0.00002},学习率{0.256,0.128}和击球动量{0.9997,0.999}的小网格搜索确定。除非本文明确指出,否则我们使用标准的Inception预处理并将输入图像的大小调整为224×224。对于完整的COCO培训,我们将学习的模型体系结构插入到开源TensorFlow对象检测框架中,作为新的特征提取器。对象检测训练设置与(Sandler等人,2018)相同,包括输入大小320×320。
结果
ImageNet分类性能
表1显示了我们的模型在ImageNet上的性能(Russakovsky等人2015) 。我们将目标耗时设置为T = 80ms,类似于MobileNetV2(Sandler等人,2018),并使用公式2,其中α=β= -0.07作为我们在架构搜索期间的奖励函数。之后,我们选择三个表现最佳的MnasNet模型,在同一搜索实验中进行不同的耗时 - 精度权衡,并将结果与现有的移动CNN模型进行比较。
如表中所示,我们的MnasNet型号在Pixel手机上实现了74%的top-1精度,3.17亿次乘法和76ms耗时,为这种典型的移动端耗时实现了state-of-the-art精确度。与最近的MobileNetV2(Sandler等人,2018)相比,Mnas-Net将前1精度提高了2%,同时保持了相同的耗时;在更准确的一端,MnasNet-92在相同的Pixel手机上实现了74.79%的top-1精度并且比MobileNetV2快1.55倍。与最近自动搜索的CNN模型相比,我们的MnasNet运行速度比NASNet-A(Zoph等人,2018)快2.4倍,具有相同的top-1精度。
为了公平比较,最近的压缩和激励优化(Hu,Shen和Sun 2018)未包含在我们的基线MnasNet模型中,因为表1中的所有其他模型都没有这种优化。但是,我们的方法可以
图4:使用不同模型缩放技术的性能比较。 MnasNet是我们在表1中显示的基线模型。我们使用与MobileNetV2相同的深度乘数和输入大小来缩放它。
图5:基于方程2的多目标搜索结果(a) α= 0,β= -1; (b)α=β= -0.07。目标耗时为T = 80ms。上图显示了1000个采样模型(绿点)的帕累托曲线(蓝线);底部图显示了模型耗时的直方图。
利用这些最近推出的操作和优化,例如,通过在表1中引入表示为(+ SE)的挤压和激励,我们的MnasNet-92(+ SE)模型实现了ResNet-50(He等人2016)的前一级精度为76.13%,参数减少19倍,乘加运算减少10倍。
值得注意的是,我们只调整了Mnas-Net的超参数,包括学习率,权重衰减,批量标准动量的8种组合,然后简单地使用MnasNet-65和MnasNet-92的相同训练设置。因此,我们确认性能提升来自我们的新搜索空间和搜索方法,而不是训练设置。
结构搜索方法
我们的多目标搜索方法允许我们通过α和β设置为来处理硬耗时和软耗时约束
图5显示了多个 - 典型α和β的目标搜索结果。当α= 0,β= -1时,耗时被视为硬约束,因此控制器倾向于在目标耗时值附近的非常小的耗时范围内搜索模型。另一方面,通过设置α=β= -0.07,控制器将目标等待时间视为软约束并尝试在更宽的等待时间范围内搜索模型。它在80ms内围绕目标耗时值采样更多模型,但也探索耗时小于60ms或大于110ms的模型,这使我们能够在单一架构搜索中从帕累托曲线中选择多个模型,如表1所示。
模型缩放敏感性
鉴于现实世界中存在的无数应用要求和设备异质性,开发人员通常会对模型进行扩展或缩小交换耗时或模型大小的准确性。一种常见的缩放技术是使用深度乘法器修改网络的滤波器大小(Howard et al.2017),它使用给定的比率修改每层中的滤波器数量。例如,与默认值相比,深度乘数0.5将每层中的通道数减半,从而显着减少计算资源,耗时和模型大小。另一种常见的模型缩放技术是在不改变网络参数数量的情况下减小输入图像大小。
图4比较了MnasNet和MobileNetV2与不同深度乘数和输入图像尺寸的性能。当我们将深度乘数从0.35更改为1.4时,
表2:COCO对象检测的性能结果 - #Parameters:可训练的参数数量; #Mult-Adds:每幅图像的平均乘法加法数;mAP:test-dev2017上的标准平均精度;mAP S , mAP M , mAP L:小型,中型,大型物体的平均精度; CPU Latency:Pixel 1手机的推理耗时。
图6:模型缩放与模型搜索 - mobilenetv2缩放:缩放MobileNetV2(深度乘数,输入大小)=(0.5,160)和(0.5,192),对应于从左到右点; mnasnet-scale:使用相同的深度乘数和输入大小缩放基线;MnasNet; mnasnew-search:来自新架构搜索的模型,目标耗时为23ms。
推理耗时也会在20ms到130ms之间变化,但如图4a所示,我们的MnasNet模型始终比MobileNetV2具有更高的top-精度。同样,我们的模型对输入大小的变化也很稳健,并且在所有输入图像大小从96到224的范围内始终优于MobileNetV2,如图4b所示。除了模型缩放,我们的方法还使我们能够搜索任何新的体系结构资源限制。例如,某些视频应用程序可能需要低至25毫秒的模型耗时。为了满足这些限制,我们可以使用较小的输入大小和深度乘数来缩放基线模型,或者我们也可以搜索更多针对此新耗时约束的模型。图6显示了这两种方法的性能比较。我们从(Sandler等,2018)中显示的所有可能组合中选择最佳缩放参数(深度乘数= 0.5,输入大小= 192),并使用相同输入缩放尺寸开始新搜索。
为了进行比较,图6还显示了缩放参数(0.5,160),在较小的17ms耗时约束下,所有可能参数中的精度最高。如图所示,虽然我们的MnasNet在相同的缩放参数下已经优于MobileNetV2,但我们可以通过针对23ms耗时约束的新架构搜索进一步提高准确性。
对于COCO对象检测(Lin et al.2014),我们在表1中选择相同的MnasNet模型,并将它们用作SSDLite的特征提取器,SSDLite是一种经过修改的资源有效版本SSD(Sandler等人,2018)。按照(桑德勒等。 2018),我们只将我们的模型与其他SSD或YOLO分类器进行比较,因为我们的重点是具有有限的设备上计算资源的移动设备。
表2显示了我们的MnasNet模型在COCO上的性能。 YOLO和SSD的结果来自(Redmon和Farhadi 2017),而MobileNet的结果来自(Sandler等,2018)。我们在COCO trainval35k上训练我们的MnasNet模型,并通过将结果提交给COCO服务器在test-dev2017上进行评估。如表中所示,我们的方法通过MobileNet V1和V2改进了推理耗时和mAP质量(COCO挑战指标)。相比之下,我们略大的MnasNet-92实现了与SSD300相当的mAP质量(22.9 vs 23.2)(Liu et al.2016),参数减少7倍,乘加计算减少35倍。
MnasNet架构和讨论
图7(a)说明了表1中所示基线MnasNet的神经网络结构。它由一系列线性连接的块组成,每个块由不同类型的层组成,如图7(b) - (f)所示。正如所料,它在所有层中广泛利用深度卷积,以最大化模型计算效率。此外,我们还观察到一些有趣的发现:
•MnasNet有什么特别之处?为了更好地理解MnasNet模型与先前移动CNN模型的不同之处,我们注意到这些模型包含的5x5深度卷积比先前的工作更多(Zhanget al.2018; Huang et al.1188; Sandler et al.1188),其中只有3x3通常使用内核。
实际上,对于深度可分离卷积,5x5内核确实比两个3x3内核更具资源效率。形式上,给定输入分辨率为(H,W,M)和输出分辨率为(H,W,N),C5x5 和 C3x3 分别代表 5x5 卷积核和 3x3 卷积核计算量,通过计算可以看到,N>7 时,C5x5 计算效率大于 C3x3 计算效率:
对于相同的有效感受域,当输入深度N> 7时,5x5内核比两个3x3内核具有更少的矩阵乘法。假设内核都经过合理优化,这可以解释为什么我们的MnasNet在精度和准确度时都使用了许多5x5深度卷积。耗时是优化指标的一部分。
•层分级是否重要?很多轻量化模型重复 block 架构,只改变滤波器尺寸和空间维度。论文提出的层级搜索空间允许模型的各个 block 包括不同的卷积层,如图7(b),(c),(d),(e)和(f)所示,而MobileNet V1和V2仅分别使用构建块(f)和(d)。作为一项研究,表3将我们的MnasNet与其在整个网络中重复单一类型层的变体(即单独重复使用各个 block)进行了比较。如表中所示,MnasNet比这些变体具有更好的准确性 - 耗时权衡,表明资源受限CNN模型中层分级的重要性。
结论
本文提出了一种自动神经架构搜索方法,用于使用强化学习来设计资源有效的移动端CNN模型。 这种方法背后的关键思想是将平台感知的真实世界耗时信息结合到搜索过程中,并利用新的分解分层搜索空间来搜索具有准确性和耗时之间最佳权衡的移动模型。
我们证明了我们的方法可以自动找到比现有方法更好的移动模型,并在典型的移动推理耗时约束下,在ImageNet分类和COCO对象检测上获得新的最新结果。 由此产生的MnasNet架构还提供了一些有趣的发现,这些发现将指导我们设计下一代移动CNN模型。