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要搜索的是图中最上面一行的7个block,这7个block的分辨率分别与MobileNet V2的7个bottleneck位置对应,而且block的输入输出的分辨率、重复的层数也和bottleneck一一对应。
MnasNet搜索的两个原则:
- 搜索的7个block各自的结构都不一样
- 每个block里有N层重复的layer
Block里的layer搜索空间总共有六种搜索对象类型:
- 卷积操作:普通卷积、depthwise卷积、Inverted Bottleneck
- 卷积核大小:、
- SERatio:0,0.25
- Skip操作:池化、identity、no skip
- 输出通道:{0.75, 1.0, 1.25}倍
- Block的layer层数:{-1, 0, +1}
其中,5和6的类型都是相比于MobileNet V2对应的bottleneck的输出通道和操作层个数。
在搜索方法上,作者沿用了NASNet的强化学习方法,利用controller RNN去预测layer的六种搜索对象类型。
MnasNet给强化学习的reward不只是验证集的精度Accuracy而已,还增加了latency的约束。reward的目标函数为:
按照准确率提升5%,延时变成2倍的tradeoff原则,上面公式可变换为:
其中,。
论文在ImageNet数据集上进行搜索实验,使用了64个TPU V2,训练时长为4.5天,Latency计算是在Pixel 1手机的CPU上测量的,总共训练了8000个模型,每个模型训练5个epoch。搜索出来的MnasNet在ImageNet上的训练精度如图2所示,和MobileNet V2的性能对比如图3所示。
图2. MnasNet在Imagenet上的训练精度以及和其他网路的对比
从ImageNet的实验中可以看出,在同等参数量条件下,相比于NASNet、AmoebaNet、PNASNet和DARTS等,MnasNet搜索出来的网络计算量更少,延时更小,精度更高。
图3. MnasNet和MobileNet V2的性能对比
与MobileNet V2的全面对比也可以看出,在各种卷积通道数和输入图片尺寸相同的条件下,MnasNet的Pareto Front优于MobileNet V2,即在推理延时一样的网络中,MnasNet比MobileNet V2的top-1精度更高。