NAS-FCOS论文解读

写在最前面

这一系列文章是博主2020年本科论文调研时记的,现在是多模态的时代,很多技术都过时了,发出来希望对读这些论文的人有所帮助

NAS-FCOS:Fast Neural Architecture Search for Object Detection

Motivation

目标检测网络的设计难度相较于图片分类网络要复杂得多,因为前者需要同时对多个物体进行定位和分类,而后者只需要输出图片级别的标签。
另一方面,NAS在自动发现优秀的神经网络结构上取得了很好的效果,相较于手工设计,NAS是数据驱动的,而不是经验驱动,因此它仅需要很少的人工干预。
一个阻止NAS使用到更加真实的应用的重要问题就是它的搜索效率,子网络的评估过程是非常耗时的部分,因为它包括一个完全训练一个神经网络的过程,为了减少评估时间,上述过程通常使用一个轻量的网络替代,然而,代理网络和目标网络通常会存在性能上的差距,这会使得评估的过程出现偏差。因此,对于一个特定的任务,如何设计一个既精确又高效的代理网络是一个很有挑战性的问题。另一个解决方法是设计一个子网络,涵盖整个搜索空间并在训练时实现参数共享,然而,这样做的内存消耗较大而且也只限于中小型的搜索空间。

Methods

  1. Problem Formulation
    我们将搜索算法应用于FCOS,因为它的结构比较简洁。我们的训练元组 { ( x , Y ) } \{(x,Y)\} {(x,Y)}包括输入图片张量 x : ( 3 × H × W ) x:(3 \times H \times W ) x:(3×H×W)和FCOS的输出 Y Y Y Y Y Y包含一系列张量: y l : ( ( K + 4 + 1 ) × H l × W l ) y_l :((K+4+1) \times H_l \times W_l) yl:((K+4+1)×Hl×Wl)
    在原来的FCOS中, x → Y x \rightarrow Y xY的网络包含3个部分:一个backbone b b b,FPN f f f以及一个多层网络的检测头 h h h。一开始,backbone将输入张量映射到多层特征表示 C = { c 3 , c 4 , c 5 } C = \{c_3,c_4,c_5\} C={c3,c4,c5},随后FPN将对应特征融合为 P = { p 3 , p 4 , p 5 , p 6 , p 7 } P = \{p_3,p_4,p_5,p_6,p_7\} P={p3,p4,p5,p6,p7},最后检测头根据 P P P给出 y y y
    因为不同尺度的目标需要不同大小的感受野,选择并融合中间层特征 C C C的方法变得非常重要,因此,我们的搜索目标之一就是决定何时选择哪些特征层怎样进行融合。为了提升效率,我们重复使用在目标数据集上训练的backbone的参数并基于此搜索后面网络的最优结构。
  2. Search Space
    在实验中,我们分别对 f f f h h h使用了两种搜索空间。
    2.1. FPN Search Space
    前面说到,FPN的工作就是将 C C C映射到 P P P,首先,我们初始化采样池 X 0 = C X_0 = C X0=C,每一步要做的决策是从采样池 X X X中选择两层 x 1 , x 2 x_1,x_2 x1,x2,然后选择两个操作 o p 1 , o p 2 op_1,op_2 op1,op2
    在这里插入图片描述
    分别应用于这两层,最后选择一个聚合操作 a g g agg agg将这两层合并为一个,随后这个输出也加入到采样池中,应用7次前面的决策过程,随后采集最后3个决策的输出作为 p 3 , p 4 , p 5 {p_3,p_4,p_5} p3,p4,p5,对于没有用到候选层,将它们直接加入每一个输出层:
    在这里插入图片描述
    2.2. Prediction Head Search Space
    为了发掘head的潜力,我们在生成head的时候扩展了搜索空间,这里的head定义为六个基本操作的序列,和FPN中的候选操作相比,这里有两个重要的区别:(1)添加了标准的 1 × 1 1 \times 1 1×1 3 × 3 3 \times 3 3×3卷积;(2)将BN层全都换成了GN层。
    2.3. Searching for Head Weight Sharing
    为了添加更多的灵活性,理解预测头中权值共享的作用,我们添加了一个索引 i i i指示检测头从什么位置开始共享权值,在 i i i之前的每一层, h h h会为每一个FPN的输出层产生独立的权值,之后则共享权值。
    在这里插入图片描述
  3. Search Strategy
    我们使用一个基于LSTM的控制器来预测整个网络配置,对FPN结构和预测头使用过程化的搜索策略而不是联合的搜索策略,因为前者需要更少的计算资源和时间花费。为了加速训练过程,我们固定backbone网络并将其输出加入缓存,这使得我们的结构训练花费和backbone网络无关,基于这个优点,我们可以应用更加复杂的backbone结构来产生更加高质量的多级特征,我们发现,只要缓存的特征够强,对backbone的finetuning是可以跳过的。
    在进行评估时,不使用AP作为评估标准,因为在比较早的训练阶段,AP太低,难以区分好的模型和坏的模型,这使得控制器需要更长的时间收敛,因此这里使用损失的相反数作为评估标准:
    在这里插入图片描述

Evaluation

  1. Search Results
    在这里插入图片描述
  2. Comparison
    在这里插入图片描述
  3. Ablation Study
    3.1. Design of Reinforcement Learning Reward
    在这里插入图片描述
    3.2. Effectiveness of Search Space
    在这里插入图片描述

Notes

这篇论文中的创新点并不太多,但是首次将NAS快速,高效的应用在了搜索目标检测的预测头上,论文中预测FPN结构的部分与NAS-FPN非常相似,但是NAS-FPN要花费大量的时间,而NAS-FCOS通过固定backbone,使用Validation loss,加快了搜索过程。

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值