神经结构搜索(NAS)表示自动设计人工神经网络(ANN)的过程,人工神经网络是机器学习领域中广泛使用的模型。 NAS的各种方法设计出的神经网络,其性能与手工设计的架构相当甚至更优越。可以根据搜索空间,搜索策略和性能评估策略三个方面对NAS的方法进行分类。
- 搜索空间。搜索空间定义了可以表示哪些体系结构原理。结合非常适合任务的属性的先验知识可以减小搜索空间的大小并简化搜索。然而,这也引入了人为偏见,这可能会阻碍找到超越当前人类知识的新颖的建筑构建基块(architectural building blocks)。
搜索空间定义了原则上NAS方法可能发现的神经架构。一种非常简单的搜索空间是链式神经网络chain-structured neural networks(图二左),可以通过以下方式来参数化:1. 层数n,2. 每层可执行的操作,如池化,卷积或更高级的层类型,如深度可分离卷积或扩张卷积;3. 与操作相关的超参数,如卷积层的过滤器数量,内核大小和步幅,或者完全连接网络的单元数量。
另一种搜索空间是多分支网络multi-branch networks(图二右),在这样的搜索空间中,每一层都可以表示为之前所有层输出的函数,而不仅仅是上一层输出的函数,这样的空间有更大的自由度。
还有一种基于单元cell-based的搜索空间。这种空间只搜索一个优化的单元结构,而不是整个网络。通常情况下,会优化两种cell结构:一种是normal cell(图三左上),这样的单元不会改变输入的大小。另一种是reduction cell(图三左下),这样的单元会减少输入的大小。最终的模型结构会通过这些单元的组合来构造(图三右)。
- 搜索策略。搜索策略详细说明了如何探索搜索空间。它包含了经典的勘探 - 开发权衡(exploration-exploitation trade-off),因为一方面,需要快速找到性能良好的架构,另一方面,应避免过早收敛到次优架构区域。
搜索策略有多种如:增强学习reinforcement learning,基于梯度的方法gradient-based method, 贝叶斯优化basyesian optimization等。近年,增强学习因为性能优越,得到广泛关注。
- 性能评估策略。NAS的目标通常是找到能够在看不见的数据上实现高预测性能的架构。评估此性能的过程:最简单的选择是对数据架构执行标准训练和验证,但遗憾的是,这样做计算成本很高,并且限制了可以探索的体系结构的数量。因此,最近的许多研究都集中在开发降低这些性能评估成本的方法上。
最简单的评估模型方法就是用一个训练集来训练,用一个测试集来进行评估。但是这种方式非常耗费计算资源。因此,可以采用一些低可信度的指标来进行模型效果的衡量。也可采用类似于早停法(early-stopping)的方式。
描述与图片来源:
Elsken, Thomas; Metzen, Jan Hendrik; Hutter, Frank (2018-08-16). "Neural Architecture Search: A Survey". arXiv:1808.05377
发展历史
描述
1989年, Miller等人在文章“Designing Neural Networks using Genetic Algorithms”使用遗传算法提出架构并使用反向传播来优化其权重,以优化神经结构的搜索策略,取得了前所未有的效果。
1999年,该领域的权威Xin Yao在论文”evolving artificial neural networks”中总结了进化神经网络的发展和当前技术以及仍然存在的瓶颈。
2002年,进化神经网络领域的又一权威Stanley在文章“ Evolving neural networks through augmenting topologies”中开创性的提出了通过增强拓扑的进化神经网络,该方法一定程度上解决了搜索中耗时耗算力的难题。
2009年,Stanley等人在文章“A hypercube-based encoding for evolving large-scale neural networks”中提出了针对大型进化神经网络的基于超方块的加密方式。
2011年,Hutter等人在论文“Sequential model-based optimization for general algorithm configuration”中提出了序列化基于模型的优化方式。该方式可以适用于通用的算法结构。
2015年的IJCAI,Domhan等人在文章“Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves”中提出了通过推断学习曲线来加速深度神经网络的自动超参数优化方法。该方法在当年的IJCAI中获得了广泛关注。
2016年,Zoph等人在论文“Neural architecture search with reinforcement learning”中提出了通过强化学习方法提高神经结构搜索的方法,引起学界轰动。这也是炙手可热的强化学习首次应用在神经结构搜索中,并取得了出人意料的好成绩。
2018年,Falkner等人在文章“BOHB: Robust and efficient hyper parameter optimization at scale”提出了BOHB这一按比例的鲁棒并且高效的超参数优化方法,改进了曾经低效的逐一优化的方法。
2018年,Elsken等人总结了回顾了神经结构网络,发表论文“Neural architecture search: A survey”,为目前为止的重要发现和研究方法做了全面总结。
主要事件
年份 | 事件 | 相关论文/Reference |
1989 | 遗传算法被用于优化神经结构的搜索策略 | Miller, G. F., Todd, P. M., & Hegde, S. U. (1989, June). Designing Neural Networks using Genetic Algorithms. In ICGA (Vol. 89, pp. 379-384). |
1999 | 进化神经网络的首次总结 | Yao, X. (1999). Evolving artificial neural networks. Proceedings of the IEEE, 87(9), 1423-1447. |
2002 | 通过增强拓扑来改进进化神经网络的方法被提出 | Stanley, K. O., & Miikkulainen, R. (2002). Evolving neural networks through augmenting topologies. Evolutionary computation, 10(2), 99-127. |
2009 | 针对大型进化神经网络的基于超方块的加密方式被提出 | Stanley, K. O., D'Ambrosio, D. B., & Gauci, J. (2009). A hypercube-based encoding for evolving large-scale neural networks. Artificial life, 15(2), 185-212. |
2011 | 序列化基于模型的优化方式被提出 | Hutter, F., Hoos, H. H., & Leyton-Brown, K. (2011, January). Sequential model-based optimization for general algorithm configuration. In International Conference on Learning and Intelligent Optimization (pp. 507-523). Springer, Berlin, Heidelberg. |
2015 | 通过推断学习曲线来加速深度神经网络的自动超参数优化方法被提出 | Domhan, T., Springenberg, J. T., & Hutter, F. (2015, July). Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves. In IJCAI (Vol. 15, pp. 3460-8). |
2016 | 通过强化学习提高神经结构搜索效果的方法被提出 | Zoph, B., & Le, Q. V. (2016). Neural architecture search with reinforcement learning. arXiv preprint arXiv:1611.01578. |
2018 | 按比例的鲁棒并且高效的超参数优化方法被提出 | Falkner, S., Klein, A., & Hutter, F. (2018). BOHB: Robust and efficient hyperparameter optimization at scale. arXiv preprint arXiv:1807.01774. |
2018 | 神经结构网络目前的进展被总结 | Elsken, T., Metzen, J. H., & Hutter, F. (2018). Neural architecture search: A survey. arXiv preprint arXiv:1808.05377. |
发展分析
瓶颈
- 神经结构搜索需要耗费大量的算力。
- 如何解释某些特定的设计结构表现更好的问题没有得到解决。
未来发展方向
- 通过按比例,按批次的优化方式,节省算力。
- 理解为什么有些结构对于高性能是重要的,并且研究这些结构是否可以针对不同的问题进行概括。
Contributor: Yuanchao Li