DARTS+解决的问题:
DARTS[1]的双层优化问题(网络结构与网络参数一起优化)随着训练epoch增加而使得权重耦合和权重之间的互相竞争加剧,使得最终skip-connection的权重越来越高(最终便选择跳跃连接),DARTS+[2]认为这是DARTS训练到最后导致网络性能奔溃(collapse)的原因。
跳跃连接过多可能会损害DARTS的性能。DARTS+则旨在解决这个问题,利用早停(early stopping)来减少跳跃连接的出现,类似与ResNet中一定数量的跳跃连接,其实就是变相的认为这个优化问题过拟合了。
下图1就是一开始的初始连接,随着epoch的增加到36或者40,skip-connect越来越多,就会导致collapse,而早停的话就如图2一般,skip-connect稍微少一点(大概2,3个吧)。
如何实现早停
DARTS+达到早停条件便早停了,下面有两种早停条件,第一种是比较好实现的一种方法, 第二种则是更通用的标准,稍微难理解一点。
(1)在搜索的过程中,在一个正常的cell中如果出现了两个或者两个以上的skip-connect时,搜索便停止了。(这个很直观,直接控制跳跃连接的数量)
(2)搜索过程中,像convolution,pooling,还有skip-connect都是需要学习的操作(其中卷积和池化都分很多种,分的很细),这些可学习操作的算子(如卷积)的排序趋于稳定时,也是可以早停的一个条件。
DARTS+用的tricks:
DARTS+最终性能的优越其实应用了很多模型和tricks,主要有(1)Autoaugment[3];(2)Mixup[4];(3)SE-Module[5]。后期会更新一下这三个tirck的具体实施方法。
实验
就实验来看,效果确实很好,而且还做了基于数据集的交叉实验,就是代码没有公布,后期准备直接在DARTS上做个调参实验,看看是不是会好一点。
[1] Liu, H.; Simonyan, K.; and Yang, Y. 2019. DARTS: Differentiable architecture search. In ICLR.
[2] Liang H, Zhang S, Sun J, et al. Darts+: Improved differentiable architecture search with early stopping[J]. arXiv preprint arXiv:1909.06035, 2019.
[3] Cubuk, E. D.; Zoph, B.; Mane, D.; Vasudevan, V.; and Le, Q. V. 2018. Autoaugment: Learning augmentation policies from data. arXiv preprint arXiv:1805.09501.
[4] Hu, J.; Shen, L.; and Sun, G. 2018. Squeeze-and-excitation networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, 7132–7141.
[5] Zhang, H.; Cisse, M.; Dauphin, Y. N.; and Lopez-Paz, D. 2017. mixup: Beyond empirical risk minimization. arXiv preprint arXiv:1710.09412.