深度学习在图像识别、语音识别、机器翻译等领域取得了很大的进展,部分原因在于各种创新的神经网络结构。当前的网络结构主要是通过人类专家手工设计,费时费力又容易犯错(就像编程一样)。因此,研究人员提出自动化的神经网络结构搜索方法(neural architecture search, NAS)。NAS本质上是在给定空间里搜索满足特定目标(比如性能)的神经网络结构,可以从三个角度来回顾现有的NAS研究:搜索空间、搜索策略和性能估计策略。
搜索空间实际上限定了能够表示的网络结构的范围。利用适合特定任务的网络结构的典型属性的先验知识,可以简化搜索空间和搜索策略,但是同时也引入了人类偏见,从而很难脱离人类现有知识的限制找到更创新的结构。
搜索空间的选择在很大程度上决定了优化问题的难度。通过不同的抽象级别,可以实现不同程度的搜索空间压缩。
其参数空间包括:
将输入层i建模成前面网络层输出的函数,可以支持链式网络、residual networks, denseNets等。
通过提取网络中的块模式,然后以块为粒度来建立搜索空间,从而压缩搜索空间;通过提高抽象级别,还有可以提高在不同数据集之间的可迁移性。
搜索策略即搜索方法。因为通常需要搜索指数级空间甚至是无界的空间,所以一方面希望尽快找到高性能的解,另一方面需要避免过早收敛到局部最优解。常用的搜索策略包括随机搜索、贝叶斯优化、演化算法、强化学习(Reinforcement Learning, RL)、基于梯度的方法等。
NAS的目标通常是找到在新数据集上预测效果好的网络结构。最简单的性能估计是在数据集上进行标准的训练-测试评估,但是计算成本极为昂贵,从而大大限制了可以估计的网络结构数目。所以目标是提高估计性能。
通过使用更少的epoch,更少的数据集、简化的网络模型等,来降低训练时间。
只跑一部分训练,然后根据学习曲线的趋势通过外插值得到性能估计。
对新的模型,继承已训练好的别的相关模型参数,开始训练,而不是从零开始。
将所有的网络结构视为同一个超图(one-shot model)的子图;训练该超图,然后在子图训练时共享权重。
Elsken, Thomas, Jan Hendrik Metzen, and Frank Hutter. “Neural Architecture Search: A Survey.” Journal of Machine Learning Research 20.55 (2019): 1-21.