Mnasnet: Platform-aware neural architecture search for mobile
Motivation
第一篇移动端自动设计网络,MnasNet的目的很简单就是设计出表现又好,效率又高的网络。
Architecture
之前的NAS算法(如ENAS)考虑更多的是模型最终结果是否是SOTA,MnasNet则是希望搜索出又小又有效的网络结构,因此将多个元素作为优化指标,包括准确率,在真实移动设备上的延迟等。最终定义的优化函数如下:
𝑚表示模型(model)
𝐴𝐶𝐶(𝑚)表示在特定任务上的结果(如准确率)
𝐿𝐴𝑇(𝑚)表示在设备上测得的实际计算延迟时间
𝑇表示目标延迟时间(target latency)
𝑤表示不同场景下对latency的控制因子。当实测延迟时间𝐿𝐴𝑇(𝑚)小于目标延迟时间𝑇时,𝑤=α;反之𝑤=β
式子其实表示为帕累托最优,因为一般而言延迟越长,代表模型越大,即参数越大,相应地模型结果也会越好;反之延迟越小,模型表现也会有略微下降。
MnasNet搜索空间:
MnasNet做了一些改进可以让每一层不一样,具体思路是将模型划分成若干个block,每个block可以由不同数量的layer组成,每个layer则由不同的operation来表示
搜索空间包含如下:
标准卷积,深度可分离卷积(DWConv), MBConv(即上面提到的MobileNetV2的卷积模块)
卷积核大小:3, 5, 7等
Squeeze-and-excitation ratio (SE-Ratio): 0, 0.25
Skip-connection
输出通道数
不同block中的layer数量 𝑁𝑖
Experiment
在google pixel phone上运行图片分类任务上的对比:
在google pixel phone上运行目标检测任务: