Noisy DARTS:含注入噪声的可微分神经网络搜索

©PaperWeekly 原创 · 作者|张恩智

单位|日本立命馆大学信息与工程硕士

研究方向|自动化机器学习

论文链接: http://arxiv.org/abs/2005.03566

源码链接: https://github.com/xiaomi-automl/NoisyDARTS

背景介绍

最近几年的深度学习领域,AutoML 技术即自动化机器学习技术,正引领着整个领域发生着日新月异的变化,自动化技术正在成为各个深度学习算法方向必不可少的标准技术。

而作为 AutoML 的核心技术自动化神经网络构架搜索 NAS (Neural Architecture Search),也在近期的各种国际会议上大放异彩,比如 ICLR 的为 NAS 主题举办了第一届 workshop,其中 Google Brain的Quoc V. Le 发表了一小时的关于神经网络自动化未来的看法。

目前 NAS 方法已经存在非常多,其中 DARTS [2] 方法,即可微分结构搜索(Differentiable Architecture Search),是格外引起广大研究从业人员关注的一种方法。

针对每层神经网络不同的操作,DARTS 为每种操作分配权重,然后在向后梯度传递的时候更新这些权重,最后对这些权重采用 softmax 方法选择出唯一路径。

由于 DARTS 的可复现性不高,也遭到了不少研究者和从业人员的质疑,主要集中在, [1] 训练过程中存在 skip-connection 富集现象,导致最终模型出现大幅度的性能损失问题 [2] softmax 离散化存在很大 gap,结构参数最佳的操作和其他算子之间的区分度并不明显,这样选择的操作很难达到最优。

针对这两个问题,小米实验室 AutoML 团队的研究者(作者:初祥祥、张勃等)提出了他们的最新研究成果 NoisyDARTS,通过向 skip-connection 注入噪声的方法,来抵消由于不公平竞争而导致的富集和性能损失问题,并且在 CIFAR-10 和 ImageNet 上分别取得了 97.61%77.9% 的 SOTA 结果。

其实早在其之前的工作 FairDARTS [1]  中,就通过使用 sigmoid 函数而不是 softmax 函数来解决富集和性能损失问题。

他们认为,softmax 使不同操作之间的关系变为竞争关系,由于 skip connection 和其他算子的加和操作形成残差结构,这就导致了 skip connection 比其他算子有很大的优势,这种优势在竞争环境下表现为不公平优势并持续放大,而其他有潜力的操作受到排挤,因此任意两个节点之间通常最终会以 skip connection 占据主导,导致最终搜索出的网络性能严重不足。

而 FairDARTS 通过 sigmoid 使每种操作有自己的权重,这样鼓励不同的操作之间相互合作,最终选择算子的时候选择大于某个阈值的一个或多个算子,在这种情形下,所有算子的结构权重都能够如实体现其对超网性能的贡献,而且残差结构也得以保留,因此最终生成的网络不会出现性能崩塌,从而避免了原生 DARTS 的 skip-connection 富集而导致的性能损失问题。

新作 NoisyDARTS 是在 FairDARTS 基础上的推论,既然 skip connection 存在不公平优势,那么对其注入噪声即可干扰其优势,抑制其过度发挥,从而解决 skip connection 富集现象。

这是一个简单优雅但又极为有效的方法。NoiseDARTS 从数学推导上回答了,实际操作的时候应该注入怎样的噪声,以及注入噪声对网络有何影响,实验部分也符合推理。

方法

通过加注噪声来增强训练的方法在深度学习领域早已有很多应用,比如 Vincent et al. [1] 通过加注噪声使得自编码器提取稳健(rubust)特征;Fortunato et al. [4] 通过随机噪声实现稳定强化学习中的搜索;同时 Neeklakantan et al. [5] 和Zhang et al. [6] 指出,在梯度中注入噪声也可以促进模型的训练。

本节接下来主要回答 NoisyDARTS 关于噪声的的主要两个问题:如何加入噪声?加入怎样的噪声?并且在末尾给出 DARTS 上的具体实现。

首先如何加入噪声:

NoisyDARTS 选择在向前传递的 skip-connection 的输入中加入噪声,如图所示,其中是损失函数,是 DATRS 中的 softmax 函数,就是是加注的噪声。在向前传递加入噪声的时候,后向对梯度更新的时候,就要将噪声一起计算在内:

其次,加入怎样的噪声。文章中提到如上图所示,加入噪声会为梯度更新带来不确定性,那么 skip-connection 就更难胜过其他操作,因此原本不公平的优势就被削弱了。可是保持梯度的更新是有效的,应该加注怎样的噪声?

NoisyDARTS 提出,应该加注一种无偏的并且方差较小的噪声,比如之后的实验中使用均值为 方差很小的高斯分布作为噪声。而因为噪声相对输入很小,所以可以做如下估计:

这样做的近似好处在于,我们可以近似认为梯度的期望也是无偏的:

其中应为噪声是均值为 0 的高斯分布,所以。

接下来,我们在讨论如何将上面讨论的噪声注入方法应用到实际的 DARTS 模型上。首先,对于节点 j 的所有输入为所有之前 (i<j) 节点的输出,并在 j 上做 M 种不同操作方法,其中 o 代表不同的操作,比如卷积或者 skip-connection 等等:

其次,对于 skip-connection 操作,我们对其输入添加噪声,而对于其他操作,我们保持不变:

因此与 DARTS 比较,NoisyDARTS 做的改动是在 skip-connection 的输入上增添噪声,虽然改动微小,但这一微小的改变却非常显著地解决了 skip-connection 的富集和性能损失这两个问题,并且基本上不添加额外的计算开销或参数量。

实验及结果

NoisyDARTS 选择两种广泛使用和精心设计的搜索空间:DARTS 的搜索空间(Liu et al. [2] )和 MobileNetV2 的搜索空间(Cai et al. [2019])。前者在搜索空间上搜索了两种类型的 cell,其次 NoisyDARTS 的实验分别是在 CIFAR-10 和 ImageNet 上进行的。

上图展示的是在 supernet 训练过程中,不同的操作在 softmax 下的权重变化,其中深绿色的线是 skip-connection 被 softmax 分配的权重。这张图中可以看到,normal cell中 的 skip-connection 数量被极大的消减了,同时保留了 reduction-cell 中的 skip-connection。具体获得的两种结构如下图所示:

下图展示的是在 CIFAR-10 上,NoisyDARTS 与其他主流 NAS 方法相比的结果,其中   NoisyDARTS-A-t 是在 ImageNet上 训练得到的模型,迁移到 CIFAR-10 上训练得到的结果:

下图展示的是在 ImageNet上,NoisyDARTS 得到的结果。通过与 DARTS 比较,NoisyDARTS 无论是在 CIFAR-10 还是在 ImageNet上,都更具优势,也说明了注入噪声这一操作,改动微小却行之有效。

并且 NoisyDARTS 自身对比了注入噪声与不注入噪声在 CIFAR-10 和 ImageNet 上的不同表现,发现注入噪声对搜索到的模型提升明显:

其次 NoisyDARTS 测试了注入无偏噪声和有偏噪声的区别,如下:

确实符合之前的数学推断,无偏噪声对模型的提升是要高于有偏噪声的,并且 NoisyDARTS 做了关于均匀噪声和噪声的添加形式的实验,结果如下:

总结

首先,NoisyDARTS 提出通过对 skip-connection 中加入噪声(无偏小方差高斯噪声),极大的限制了原本 skip-connection 的不公平竞争问题,解决了 DARTS 中skip-connection富集和模型化后性能损失的问题。

其次,通过实验,NoisyDARTS 分别在 CIFAR-10 和 ImageNet 上取得了 state-of-art 的稳健的结果。

最后关于未来发展 AutoML 的必要性,我想引用 Quoc V.Le 在第一届 ICLR workshop 上的一段话作为本文的结尾:

最早的机器学习其实是特征工程,由专家设计好特征后交给比如 SVM 进行学习。但在 CNN 时代,端到端的网络模型被认为能够自动的找到有效特征,从而取得更好的预测结果。现在,模型的复杂度和超参数日益提升,手动调整的参数远非最优,AutoML/Learn2Learn 的发展必不可少。

参考文献

[1] Xiangxiang Chu, Tianbao Zhou, Bo Zhang, and Jixiang Li. Fair darts: Eliminating unfair advantages in differentiable architecture search. arXiv preprint arXiv:1911.12126, 2019a.

[2] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable Architecture Search. In ICLR, 2019.

[3] Pascal Vincent, Hugo Larochelle, Yoshua Bengio, and Pierre-Antoine Manzagol. Extracting and composing robust features with denoising autoencoders. In Proceedings ofthe 25th international conference on Machine learning, pages 1096–1103, 2008.

[4] Meire Fortunato, Mohammad Gheshlaghi Azar, Bilal Piot, Jacob Menick, Matteo Hessel, Ian Osband, Alex Graves, Volodymyr Mnih, Remi Munos, Demis Hassabis, Olivier Pietquin, Charles Blundell, and Shane Legg. Noisy networks for exploration. In International Conference on Learning Representations, 2018.

[5] Arvind Neelakantan, Luke Vilnis, Quoc V Le, Ilya Sutskever, Lukasz Kaiser, Karol Kurach, and James Martens. Adding Gradient Noise Improves Learning for Very Deep Networks. arXiv preprint arXiv:1511.06807, 2015.

[6] Baochang Zhang, Chen Chen, Qixiang Ye, Jianzhuang Liu, David Doermann, et al. Calibrated Stochastic Gradient Descent for Convolutional Neural Networks. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 33, pages 9348–9355, 2019.

[7] Han Cai, Ligeng Zhu, and Song Han. ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware. In ICLR, 2019.

更多阅读