P-DARTS论文总结

论文:Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Evaluation

文章目录

    • 解决的问题
    • Depth Gap
    • 渐进式增加搜索深度
      • 搜索空间近似(Search Space Approximation)
      • 搜索空间正则化(Search Space Regularization)
    • 结果
    • 总结

论文地址: https://arxiv.org/abs/1904.12760
代码: https://github.com/chenxin061/pdarts
发表在:accepted for oral presentation at ICCV 2019

解决的问题

基于梯度的NAS方法中,如果在迁移和评估网络结构时效果不好,作者认为是架构在搜索和验证两个不同场景中网络的深度不同,本文把这种现象称之为depth gap。为了解决这个问题,采用渐进式增加网络深度的方法,但是也带来了两个问题(i)计算的开销大(ii)搜索结果不稳定,分别采用搜索空间近似和正则化的方法解决。

Depth Gap

P-DARTS论文总结_第1张图片
如图(a)所示DARTS的方法在搜索过程中使用浅层(8层)的网络架构,而在验证过程中使用更深的架构(20层),我们不能保证在浅层网络中表现好的操作在深层网络中同样出色(类似ProxyLessNAS中的不同数据集上效果可能不同),所以如图(b)所示,我们把搜索分成多个阶段,每一阶段逐渐增加架构深度。

渐进式增加搜索深度

在浅层网络中搜索到的操作在深层网络中不一定是最优的,这个就是上面提到的Depth Gap。为了验证这个说法,本文多次运行DARTS的代码,发现搜索到的Normal Cell总是倾向于更浅的连接,但是往往有更深的连接的网络表现的更好。所以本文提出渐进式增加深度,以减少这个Depth Gap。
P-DARTS论文总结_第2张图片

搜索空间近似(Search Space Approximation)

但是为什么不直接在验证的深度上进行搜索而是渐进式增加深度呢?因为本文期望在浅层网络中减少搜索空间,保证占用的内存不会过大!
也就是说,随着网络深度的增加,会适当删除训练过程中权值较小的操作以保证内存。每次删除操作之后都会重新学习剩下操作的权重!
P-DARTS论文总结_第3张图片
文中运行了3次实验,结果几乎一致,在不同阶段都保证了内存限制在16GB以内。

搜索空间正则化(Search Space Regularization)

同样的NAS经常会出现的问题,跳跃连接具有很强的欺诈性,网络在训练过程中往往会倾向于选择跳跃连接,以便于快速的反向传播。但是这限制了参数量和网络的深度,在验证过程中这样的网络表现不是很好。本质上是一种过度适应(This is essentially a kind of over-fitting)。
我们通过两种搜索空间正则化解决这个问题。

  • 为了防止Dropout在最初表现过于好,我们在跳跃连接后加入操作等级的Dropout,限制Dropout发挥作用,但是这会使得算法分配较低的权重给Dropout操作,最终会删除这个操作,对最终的结果影响很大。所以我们设计在每一个阶段衰减Dropout rate ,当其他的操作被充分的学习后,Dropout操作和其他操作会被公平的对待。
  • 我们通过上面的实验观察到,跳跃连接的数量会在最后从2个变到4个,与此同时,我们观察到最终的识别性能与这个数量有关。所以我们设计了第二个正则化规则,也就是固定跳跃连接的数量。第二个正则化操作必须建立在第一个的基础之上!

结果

P-DARTS论文总结_第4张图片
P-DARTS论文总结_第5张图片
没什么好说的了,结果挺好。
P-DARTS论文总结_第6张图片
P-DARTS的方法搜索到的Cell会更深。

总结

  • 论文逻辑连贯,表达清晰,实验充分,适合参考写论文。
  • 随着网络深度的增加,为什么删除权重较小的操作呢?不应该删除权重较大的操作,因为权重大所以更适合浅层网络,我们删掉适合浅层网络的操作,留下的是不是更适合深层网络呢?还是说浅层网络都不适合的操作更不适合深层网络呢?
  • 作者以牺牲宽度(操作数)为代价来加深网络深度,是不是说深度对网络的影响更大呢?

你可能感兴趣的:(神经架构搜索)