MnasNet:手机端自动设计网络 阅读笔记


摘要

首先附上论文地址:https://arxiv.org/pdf/1807.11626.pdf
作者:Google大脑AutoML组
亮点:一种自动神经结构搜索方法,用于设计资源有限的移动端的CNN模型

设计移动端CNN模型的挑战在于要使网络规模小,速度快的同时,还要保证精确度,本文提出了一种自动神经结构搜索的方法:将 latency(运算延迟时间) 也作为优化目标,以此来搜索能够平衡accuracylatency的网络模型(之前的许多工作都是通过减少FLOPS来间接地实现加速效果,但是本文中直接测量特定平台的实际inference latency,因不同的移动设备可能有不同的软硬件特性,可能需要不同的网络来平衡精确度和速度);另外,提出了一种分层分解搜索空间的方法来确定网络结构。

MnasNet 模型在 Pixel phones 上直接运行,在 ImageNet 分类和 COCO 目标检测等计算机视觉领域均取得 state-of-art 水平。ImageNet 分类任务中,在 pixel 1 上取得了 74.0% 的 top-1 精度,耗时 76 毫秒,比 MobileNetV2 快 1.5 倍,比 NASNet 快 2.4 倍。在 COCO 目标检测任务中,比 MobileNets 取得了更好的 mAP 和实时性。

  • 将问题看作是一个多目标优化问题,即 ,并采用增强学习的网络搜索方法,用于搜索低延迟同时能保证高精度的CNN模型
  • 提出了一种层级搜索空间(分解分层网络空间)方法,通过在灵活性和搜索空间大小之间取得适当的平衡,最大化利用移动网络所在设备上的资源效率。

Architecture

目标函数

下图是MnasNet的整体思想,与之前其他工作最大的不同在于延迟时间也作为反馈的参数之一以及一种新颖的搜索空间


MnasNet Fig1.png

给定一个模型,用来表示其在目标任务上的精确度,来表示在特定移动平台上的延迟时间,表示目标延迟时间,通常的方法是固定来最大化

但是上述方法仅仅优化了一个变量,并不能提供多个 Pareto[1]最优解,因此我们设计目标优化函数为:


其中都是实际应用中的特定常数,选择的经验准则是查看如果成倍增加或减少延迟时间,对准确度的增加或减少是否能达到预期(例如将MobileNet V2倍增或倍减延迟时间会带来5%的准确度增加或者减少,因此设置,)

MnasNet Fig2.png


搜索算法

本文采用基于梯度的增强学习方法来为多目标搜索问题寻找Pareto最优解,因为增强学习更为方便且便于定制奖励函数,具体方法为:将搜索空间中的CNN模型映射为一系列特征,这些特征由一系列基于参数的增强学习操作来决定,目标为最大化期望的奖励函数

其中是由操作生成的模型,是由上文中Pareto最优解的优化函数得到


层级搜索空间(分层分解搜索空间)

MnasNet Fig3.png

之前的自动搜索方法大都是寻找几种复杂的cells然后重复堆叠这些相同的cells,没有考虑到卷积操作基于操作的形状不同在延迟时间有着很大的差异(例如两个
的卷积操作,理论上有着相同的FLOPS,但是不同的形状可能会有着不同的延迟时间)(这里没怎么读懂,有待商榷),层级搜索空间简化了之前的cell搜索空间但允许cells不同。

直觉认为,我们需要搜索基于输出输出shapes来平衡精确度和延迟的最佳操作,例如网络的前几阶段通常处理更大数量的数据(前几阶段未经池化,输入尺寸相对较大,提取较多的特征)因此延迟时间也要大于后几个阶段,这里以MobileNet V1的depthwise separable convolution为例,其操作数为,我们需要认真权衡卷积核尺寸以及输出卷积核数目,举例来说,通过更大尺寸的卷积核尺寸来增加感受野就需要减少输出卷积核数目,或者通过其它层来平衡。

对分层分解搜索空间的理解:网络分成B个block,每个block可能有着不同的网络结构,一个子搜索空间i包含以下多种选择:

Convolutional ops : conv, depthwise conv(dconv), inverted bottleneck conv
Convolutional kernel size :
Skip operations SkipOp: 最大或平均池化,residual的自身映射,或者无skip
Output filter size
Number of layers per block

假设将网络分为个blocks,每个block有一个平均有个layers,大小为的子搜索空间,总的搜索空间大小为,而逐层搜索空间为,,我们的搜索空间比逐层搜索空间少了几个数量级。


实验步骤

在ImageNet上进行少量的训练步骤(each sampled model on 5 epochs of the proxy training set using an 50K validation set),然后选出表现最好的网络模型转至完整的训练(训练了8K个models,但是仅有表现最好的<15个模型进行了完整的训练)

optimizer —— RMSProp
decay——0.9
momentum——0.9
每一层卷积后都有batch norm——momentum 0.9997 ;weight decay 0.00001

MnasNet Tab1.png

MnasNet Architecture and Discussion

MnasNet Fig7.png
MnasNet Fig7_note.png

What's special about MnasNet?

(1)在depthwise convolution中,卷积核的效果要优于两个的卷积核

(2)层分级的重要性。很多轻量化模型重复 block 架构,只改变滤波器尺寸和空间维度。论文提出的层级搜索空间允许模型的各个 block 包括不同的卷积层。通过比较 MnasNet 的各种变体(即单独重复使用各个 block),在准确率和实时性方面难以达到平衡,验证了层分级的重要性。


  1. Pareto最优是意大利经济学家维弗雷多·帕雷托 (Villefredo Pareto) 提出的一种经济学概念,在本文中表示如果模型有最高的准确度但却不增加延迟时间,或者它具有最低的延迟时间却不会降低准确度,那么模型就称为Pareto最优。 ↩

你可能感兴趣的:(MnasNet:手机端自动设计网络 阅读笔记)