MnasNet论文解析

现在的NAS方法越来越重视小模型的NAS搜索,在传统深度学习的模型压缩中,主要有MobileNet、ShuffleNet、SqueezeNet等方法。其中,MobileNet系列从分通道depthwise卷积(V1)发展到Invert Bottleneck结构(V2),在大量降低参数的同时,还能维持在较高的精度水平,在实际设备中广泛使用。

MnasNet就是以MobileNet V2为backbone,在这个基础结构上搜索block架构以替代bottleneck结构。论文的全名是MnasNet: Platform-Aware Neural Architecture Search for Mobile。

MnasNet的整体架构如下图所示。

图1. MnasNet整体架构
MnasNet论文解析

MnasNet要搜索的是图中最上面一行的7个block,这7个block的分辨率分别与MobileNet V2的7个bottleneck位置对应,而且block的输入输出的分辨率、重复的层数也和bottleneck一一对应。

MnasNet搜索的两个原则:

  1. 搜索的7个block各自的结构都不一样
  2. 每个block里有N层重复的layer

Block里的layer搜索空间总共有六种搜索对象类型:

  1. 卷积操作:普通卷积、depthwise卷积、Inverted Bottleneck
  2. 卷积核大小:3×33\times35×55\times5
  3. SERatio:0,0.25
  4. Skip操作:池化、identity、no skip
  5. 输出通道:{0.75, 1.0, 1.25}倍
  6. Block的layer层数:{-1, 0, +1}

其中,5和6的类型都是相比于MobileNet V2对应的bottleneck的输出通道和操作层个数。

在搜索方法上,作者沿用了NASNet的强化学习方法,利用controller RNN去预测layer的六种搜索对象类型。

MnasNet给强化学习的reward不只是验证集的精度Accuracy而已,还增加了latency的约束。reward的目标函数为:

maximizem   ACC(m)subject to   LAT(m)T \begin{aligned} & \underset{m}{maximize}~~~ACC(m) \\ & subject \ to ~~~ LAT(m) \leq T \end{aligned}

按照准确率提升5%,延时变成2倍的tradeoff原则,上面公式可变换为:

maximizem   ACC(m)×[LAT(m)T]w   w={α, if LAT(m)Tβ, otherwise \begin{aligned} & \underset{m}{maximize}~~~ACC(m) \times [\frac{LAT(m)}{T}]^w \\ & ~~~w=\left\{\begin{aligned}&\alpha, ~if~LAT(m) \leq T \\&\beta, ~otherwise\end{aligned}\right. \end{aligned}

其中,α=β=0.07\alpha=\beta=-0.07

论文在ImageNet数据集上进行搜索实验,使用了64个TPU V2,训练时长为4.5天,Latency计算是在Pixel 1手机的CPU上测量的,总共训练了8000个模型,每个模型训练5个epoch。搜索出来的MnasNet在ImageNet上的训练精度如图2所示,和MobileNet V2的性能对比如图3所示。

图2. MnasNet在Imagenet上的训练精度以及和其他网路的对比
MnasNet论文解析

从ImageNet的实验中可以看出,在同等参数量条件下,相比于NASNet、AmoebaNet、PNASNet和DARTS等,MnasNet搜索出来的网络计算量更少,延时更小,精度更高。

图3. MnasNet和MobileNet V2的性能对比
MnasNet论文解析

与MobileNet V2的全面对比也可以看出,在各种卷积通道数和输入图片尺寸相同的条件下,MnasNet的Pareto Front优于MobileNet V2,即在推理延时一样的网络中,MnasNet比MobileNet V2的top-1精度更高。