ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-06 20:03:57  阅读:227  来源: 互联网

标签:Search PDARTS Progressive -- epoch cell 算法 搜索 DARTS


为方便说明,如无特殊说明后文将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

pdarts

实验结果

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

normal cell

下面是具体的实验结果

  • CIFAR10&CIFAR100实验结果

CIFAR10

  • ImageNet实验结果

ImageNet

思考

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

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



MARSGGBO♥原创

微信公众号:AutoML机器学习
21ra82axnz.jpg
MARSGGBO♥原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com
2020-01-23 17:45:35




标签:Search,PDARTS,Progressive,--,epoch,cell,算法,搜索,DARTS
来源: https://blog.51cto.com/u_15187743/2872809

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有