一、目标检测之MnasNet
MnasNet: Platform-Aware Neural Architecture Search for Mobile
二、MnasNet
1、一种多目标神经结构搜索方法
将设计问题表示为一个多目标搜索,目标是找到既具有高精度又具有低推理延迟的CNN模型;
α
=
β
=
−
0.7
\alpha=\beta=-0.7
α=β=−0.7
2、分解层次搜索方法
我们引入了一种新的分解层次搜索空间,它将CNN模型分解为独特的块,然后分别搜索每个块的操作和连接,从而允许在不同的块中使用不同的层结构。我们的直觉是,我们需要根据输入和输出形状搜索最佳操作,以获得更好的精度权衡。
我们将CNN模型划分为一系列预定义的块,逐渐降低输入分辨率,并像许多CNN模型一样增加过滤器大小。每个Block都有一组相同的Layer,它们的操作和连接由每个Block子搜索空间决定。具体来说,Block_i的子搜索空间由以下选项组成:
C
o
n
v
O
p
,
K
e
r
n
e
l
S
i
z
e
,
S
E
R
a
t
i
o
,
S
k
i
p
O
p
,
F
i
ConvOp, KernelSize, SERatio, SkipOp, Fi
ConvOp,KernelSize,SERatio,SkipOp,Fi决定层的体系结构,而Ni确定该层将为块重复多少次。
3、搜索算法
将搜索空间中的每个CNN模型映射到tokens列表。这些tokens由强化学习代理基于其参数
θ
\theta
θ的一系列动作a1:T决定。我们的目标是最大化预期的回报:
如上图所示,搜索框架由三个部分组成:一个基于递归神经网络(RNN)的控制器、一个获取模型精度的训练器和一个用于测量延迟的基于手机的推理引擎。我们遵循众所周知的sample-eval-update循环来训练控制器。在每个步骤中,控制器首先使用其当前参数对一批模型进行采样,通过从其RNN中预测基于softmax logits的tokens序列。对于每个采样的模型m,我们将其训练在目标任务上以获得其精度ACC(m),并在实际手机上运行以获得其推理延迟LAT(m)。然后用公式2计算奖励值R(m)。在每一步结束时,利用近似策略优化,通过使方程5所定义的期望报酬最大化来更新控制器的参数。重复执行sample-evalupdate循环,直到达到最大的步骤数或参数收敛为止。
4、结果