论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva

为方便说明,如无特殊说明后文将PDARTS来指代该篇论文。阅读本文之前需要对DARTS有一定了解。,如果还不太清楚DARTS可以阅读这篇文章

Motivation

进来有很多种NAS技术相继提出,主要有基于强化学习的,基于进化算法的,还有基于梯度下降的,不同算法有不同优缺点。本文的PDARTS就是基于梯度下降的,其实看名字也能知道它其实是对DARTS的改进算法。

DARTS算法是先在proxy dataset(如CIFAR10)上搜索cell结构,之后通过重复堆叠找到的这个cell得到最终的网络结构。直白一点就是在CIFAR10数据集上搜索一个深度为8的网络,而在ImageNet上就通过堆叠得到一个深度为20的网络,然后对这个更深的网络训练。

上述这一过程有一个很明显的缺点就是DARTS在proxy dataset上搜到的结构可能在target dataset上不是最好的,甚至表现较差。文中把这个叫做depth gap

为了解决前面提到的depth gap问题,PDARTS提出了一种渐进式搜索的方法。

和其他基于DARTS算法的区别
  • PNAS:PNAS是针对cell内部的operation做渐进式搜索,而PDARTS是对layer和cell中的operation做渐进式搜索
  • SNAS:SNAS是为了解决训练和验证之间的bias,方法是将每条edge的operation权重为one-hot形式。PDARTS则是通过逐渐增加网络层数的方式来消除这个bias。
  • ProxylessNAS:通过binary masks来选择operation进而减少GPU显存使用,而且直接在target 数据集上搜索网络,但是这样一来对于搜索空间的设置有了更高的要求。PDARTS相比而言搜索时间更快。
算法介绍

PDARTS提出在搜索过程中逐渐增加网络层数,随之而来的问题以及解决办法分别是:

  1. 计算量增大:当层数增加后,计算量也会成倍增加。因此为了解决这个问题,PDARTS提出了search space approximation策略,即每当层数增加时就会相应地减少候选操作的数量。
  2. 稳定性降低:在搜更深的网络时,skip-connection会占据主导地位,这对模型稳定性有较大影响。解决办法是对搜索空间做正则化约束(search space regularization):
    • (1) operation-level Dropout,来避免skip-connection占主导地位
    • (2) 在evaluation过程中控制skip-connection的出现次数

示意图如下,PDARTS搜索分成了3个阶段:

最开始是initial stage,网络由5个cell组成,每个cell中节点之间的候选操作有5个。对initial stage搜索若干个epoch之后进入intermediate stage,可以看到这个阶段的层数增加了6层,但是候选操作的数量减少了,这样做是为了减少GPU显存使用量,被删除的操作是前一阶段概率最低的操作。最后的final stage同理不再赘述。

Stage #Cell # Operation Space size
Stage 1 5 5
Stage 2 11 4
Stage 3 17 2

论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva

实验结果

下图展示了PDARTS在不同阶段搜索到的cell的结构,以及DARTS算法使用second-order找到的cell结构。可以看到PDARTS在后面会更加倾向于搜索那些deep connection的cell,而DARTS则是找到shallow connection的cell结构。

论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva

下面是具体的实验结果

  • CIFAR10&CIFAR100实验结果

论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva

  • ImageNet实验结果

论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva

思考

最近读了不少NAS的论文,一直有个困惑就是他们所说的搜索时间到底是怎么算的,因为这些算法的搜索epoch数量是各不相同的,比如说A算法设置的搜索epoch数量是100,而B算法只搜了5个epoch,此时B算法就会说它的搜索时间更短。但是我觉得这不太能说服我,因为有可能A算法在第5个epoch的时候也找到了不错的cell结构。另外我一直在想不同的网络结构最终的效果真的会有那么大差别吗?如果的确有差别那么不同的搜索策略则有了意义,反之如果每个cell结构最终性能都差不多,那么就还不如随机初始化一个网络,然后直接使用这个网络。

可能,这就是玄学吧(* ̄︶ ̄)。。。



MARSGGBO♥原创

微信公众号:AutoML机器学习
论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva
MARSGGBO♥原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com
2020-01-23 17:45:35



上一篇:《CTDNet:Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection》论文笔记


下一篇:ffmpeg解帧和合成视频