NAS搜索之PDARTS
代码和论文
文章思想
- 认为浅层网络搜索和深层网络搜索是有差别的,用浅层网络搜到的结构用于深层网络不一定是最好的。
方法提出
如图所示:论文提供了一种在训练过程中增加由体系结构的方法,通过这样来拟合深度差距。
- DARTS中是由8cell搜出cell结构,将搜出的结构组合成20个,得到最终结果。
- PDARTS是在训练过程中,由初始的5cell训练一段时间增加到11cell然后到17cell,最后由17cell搜索得到的cell结构用于组成20cell,得到最终结果。
论文正则化操作
文中发现DARTS搜索过程中,网络会倾向于使用skip connect,过多的skip connect容易导致网络过拟合,导致准确率下降。
- 文中提出通过分配权重的方式给skip connect分配较低的权重,迫使网络更倾向于使用其他的op操作。
- 如果直接固定这个权重,会对性能有损害,于是论文中会不断衰减这个低权重的作用,使训练后期skip connect和其他op操作有相同的权重。这样就能公平竞争。
- 通俗解释一下为啥这么做,论文认为,前期类似conv这样的op操作权重没学习好,网络会更优先选取skip connect这样的无权重的操作,这样梯度下降更快。所以要论文通过低权重来限制,当训练后期,conv操作的权重学习的较好时,通过去除这个低权重的束缚,使每个op操作公平竞争。
操作流程
如图所示,训练共分三个stage,也是三个时期,初期,中期和后期。
- 如图a所示,初期为5个cell,3个normal,2个reduction。每两个节点连接5个op操作。
- 训练时,每个op操作的softmax会不断更新。
- 中期时如图b,cell增加到11个,9个normal,2个reduction,同时去除softmax值低的1个op操作,这样每两个节点就只剩4个op操作,这样就不会因为增加cell而导致显存爆炸。
- 一段时间,到达最后阶段,如图c,cell增加到17个,15个normal,2个reduction,同样根据softmax值去除2个op操作,剩下2个op操作,训练结束后,得到cell结构。
- 最后将cell结构组合成20个cell,重新训练得到最后结果。
结果