[Reading] MnasNet: Platform-Aware Neural Architecture Search for Mobile
MnasNet: Platform-Aware Neural Architecture Search for Mobile (2018/7)
Contents [show]
1. 概述
文章的主要贡献有:
- 提出了一种移动端神经架构搜索(mobile neural architecture search,MNAS)的方法,同时将模型的准确率和在真实设备上的延迟作为搜索的目标,以获得二者之间的平衡。
- 提出了一种分层搜索空间(factorized hierarchical search space),来提高各层结构的多样性,来生成适合移动端等资源受限场景下使用的 CNN 网络。
- 基于以上方法,构造了 MnasNet 网络架构。在图像识别和目标检测任务中,MnasNet 相较其他移动端模型,在保持低延迟的同时,获得了更好的性能,如 Figure 2 所示。

针对如移动端等计算能力有限的场景,需要对模型的准确率和延迟进行合理的取舍,这增加了人工进行网络设计的难度。因此文章希望通过自动搜索的方法来找到合适的网络架构,通过将准确率和延迟同时作为搜索的目标,来对准确率和延迟进行取舍。
前人的工作中,通常使用 FLOPS 来评价模型延迟,然而这是不准确的。例如 MobileNet 和 NASNet 具有相近的 FLOPS,分别为 575M 和 564M,然而二者的延迟则有很大差别,分别为 113ms 和 183ms。因此文章引入了平台感知的真实世界延迟信息(platform-aware real-world latency information),使用真实设备来测试模型的延迟,贴合模型的实际使用情况。
在之前的神经架构搜索(NAS)方法中,为了简化搜索过程,通常只是搜索几种 cell 的架构,然后通过重复堆叠得到完整网络,网络的层结构比较单一。为了提高计算效率,有必要增加层结构的多样性,例如 CNN 在前后阶段的计算量不同,需要使用不同的结构来有效地利用计算资源。因此文章提出了分层搜索空间,使搜索得到的各层可以有不同的结构,平衡灵活性和搜索空间大小。具体来说,文章将 CNN 网络分成一系列预定义的 block,然后对每个 block 进行搜索。每个 block 由一系列重复的层结构组成,只需在一个较小的子搜索空间中对层结构和重复次数进行搜索。这样每个 block 都可以有不同的结构,同时搜索空间又远小于直接对整个网络架构进行搜索。
2. 搜索方法
2.1. 搜索框架
文章使用的搜索框架如 Figure 1 所示,其中 Controller 对模型进行采样,得到的模型由 Trainer 训练后,一方面在验证集上计算准确率(accuracy),一方面在真实设备上计算延迟(latency),二者共同构成收益(reward),据此更新控制器参数。

2.2. 搜索目标
给定模型 m,记模型在目标任务上的准确率为 ACC(m),在目标移动平台上的推理延迟为 LAT(m),目标延迟为 T。为了在搜索时同时考虑模型准确率和延迟,常见做法是将 T 作为硬约束,并最大化准确率,即
maximizemACC(m)subject toLAT(m)≤T
文章指出,这种方法只是最大化了准确率这个单一指标,无法得到帕累托最优(Pareto optimal),即在不增加延迟的情况下达到最大准确率,或在不降低准确率的情况下达到最低延迟。
文章使用了准确率和延迟的加权乘积作为优化目标
maximizemACC(m)×[LAT(m)T]w
其中 w 为权重因子,定义为
w={αif LAT(m)≤Tβotherwise
如果设置 α=0,β=−1,则当 LAT(m)≤T 时,优化目标将只包含 ACC(m);当 LAT(m)>T,将进行惩罚,如 Figure 3 上图所示。

选择 α 和 β 的一个经验准则是,保证不同准确率-延迟取舍的帕累托最优解具有相近的收益。文章观察到延迟加倍会给准确率带来大约 5% 的相对提升,假设模型 M1 延迟为 l,准确率为 a,收益为 Reward(M1)=a⋅(l/T)β,则对于延迟为 2l 的模型 M2,其准确率为 a⋅(1+5%),收益为 Reward(M2)=a⋅(1+5%)⋅(2l/T)β。这两个模型应具有相同的收益,即 Reward(M2)≈Reward(M1),可以解得 β≈−0.07,因此文章使用 α=β=−0.07,如 Figure 3 下图所示。
2.3. 分层搜索空间
为了提高层结构的多样性,文章将 CNN 网络分成一系列预定义的 block,逐渐降低分辨率并增加过滤器数量,通过对各个 block 进行搜索,使得不同的 block 可以具有不同的层架构,如 Figure 4 所示。

其中每个 block 的子搜索空间包括

Figure 4 中的 ConvOp、KernelSize、SERatio、SkipOp 和 FilterSize Fi 决定了层的架构,Ni 控制该层在 block 中重复的次数。例如 Figure 4 中的 Layer 4-1 表示选择了一个 inverted bottleneck 和一个残差连接,该层在 Block 4 中重复了 N4 次。
分层搜索空间的一大优势是平衡了层的多样性和搜索空间的大小。假设网络有 B 个 block,每个 block 平均有 N 层,子搜索空间为 S,对于分层搜索空间,每个 block 只搜索一种层结构,总搜索空间大小为 SB。如果逐层进行搜索,则搜索空间大小为 SB∗N。典型地,对于 S=432,B=5,N=3,分层搜索空间的大小为 1013,逐层搜索的搜索空间的大小为 1039。
2.4. 搜索算法
文章延续了 NASNet 的思路,将学习生成神经网络架构看成是一个强化学习问题,将控制器基于参数 θ 输出的网络结构参数看成是动作 a1:T,目标是最大化期望收益
J=EP(a1:T;θ)[R(m)]
其中 m 是由动作 a1:T 决定的模型,R(m) 是式 (2) 定义的目标值。
文章也使用了 RNN 作为控制器,控制器首先根据其参数 θ 采样一批模型,对每个模型 m,训练后获得准确率 ACC(m),然后在真实设备上执行推断获得延迟 LAT(m),计算得到收益 R(m),据此更新控制器参数 θ 以最大化式 (5) 定义期望收益。
3. 实验结果
由于直接在如 ImageNet 和 COCO 这些大数据集上进行搜索的计算量太大,之前的 NAS 通常使用如 CIFAR-10 的小数据集。但文章指出,在引入延迟之后,小数据集不再适用,因此选择通过在 ImageNet 上训练少量(5个)epoch 来进行搜索,在 64 个 TPU 上,每次搜索耗时 4.5 天。控制器总共采样了 8K 个模型,选择了最好的 15 个迁移到 ImageNet,选择了最好的 1 个迁移到 COCO。
网络在 ImageNet 上的性能如 Table 1 所示,搜索的目标延迟与 MobileNetV2 类似,设置 T=75ms,α=β=−0.07,最终选择了具有不同延迟-准确率取舍的三个最佳模型参与对比。可见参数最少的 MnasNet-A1 就已经达到了 SOTA 性能,相较 MobileNetV2 (1.4x),准确率高 0.5%,速度快 1.8 倍。相较同样是搜索得到的 NASNet-A,MnasNet-A1 准确率高 1.2%,速度快 2.3 倍。

MnasNet 中使用了 SE(squeeze-and-excitation),为了排除 SE 的影响,文章比较了不带 SE 的 MnasNet 的效果如 Table 2 所示。可见即便排除了 SE,MnasNet 的性能依旧优于 MobileNetV2。

实际场景中,经常要通过增加深度或通道数的方法,对模型进行缩放,来获得不同准确率和延迟的模型。文章比较了 MnasNet 的缩放性能,如 Table 5 所示,可见 MnasNet 在不同缩放尺度上都稳定优于 MobileNetV2。

此外文章还专门为不同延迟单独进行了搜索,并比较了搜索和缩放两种方法的性能,如 Table 4 所示。可见与缩放模型相比,专门搜索的模型具有更好的性能。

文章将 Table 2 中的 MnasNet 用于 SSDLite,测试了在 COCO 目标检测任务上的性能,如 Table 3 所示。可见 MnasNet-A1 + SSDLite 的性能显著优于 MobileNetV2 + SSDLite,与 SSD300 相当,而其参数数量和乘加数量远少于 SSD300。

4. 讨论
4.1. 软/硬约束
文章测试了在式 (2) 中使用不同 α 和 β 的效果,如 Figure 6 所示。如果令 α=0,β=−1,则延迟的要求变成了硬约束(延迟要求满足时不会产生代价,不满足时产生代价),控制器会更偏向生成低延迟的模型;如果令 α=β=−0.07,则延迟的要求是软约束,控制器搜索延迟的范围会更大,可以得到更多的帕累托最优解。

4.2. 搜索空间和收益
文章中使用的多目标收益和分层搜索空间都有助于获得更好的模型。为了区分二者的贡献,文章分别测试了单/多目标收益和 NASNet(Cell-based)/ MnasNet 搜索空间的组合,如 Table 5 所示。可见对于相同的搜索空间,相比于单目标收益,多目标收益可以在损失准确率的情况下,获得更快的模型;同样对于多目标收益,MnasNet 搜索空间可以找到更快和更准确率更高的模型。

4.3. 层的多样性
分层搜索空间有助于提高层结构的多样性。Figure 7(a) 展示了 MnasNet 架构,可见它确实具有更丰富的层结构。其中 MBConv 表示 mobile inverted bottleneck conv,DWConv 表示 depthwise conv。

Table 6 比较了 MnasNet 和只重复一种层结构的效果,可见 MnasNet 可以更好地平衡准确率和延迟。
