[论文阅读] Neural Architecture Search: Insights from 1000 Papers
题目:Neural Architecture Search: Insights from 1000 Papers
链接:https://arxiv.org/pdf/2301.08727
1. Introduction
NAS在众多领域有着广泛应用,近两年来有超过1000篇相关文章。
1.1 A Brief History of NAS and Relation to Other Fields
神经网络结构搜索(neural architecture search, NAS)起源于自动机器学习(automated machine learning,AutoML)。AutoML是一种自动化学习框架,包括数据清洗、特征工程与选择、参数与结构搜索等一些列流程。
NAS可以被视为参数优化(hyperparameter optimization, HPO)的一个子集。与HPO不同,NAS只优化与模型相关的参数。
一般而言,学习率、batch size等通用参数不在NAS的考虑范围内
HPO优化的参数,(例如学习率、batch size等),这些参数通常是独立的、互不相关的。NAS优化的参数,往往是互相关联的。
现有NAS主要包括强化方法(reinforcement learning),进化方法(evolutionary algorithms),贝叶斯优化方法(Bayesian optimization)和权重共享的技术(?weight sharing)。近年来,最为流行的是one-shot类方法,相比于黑盒优化模型,此类方法带来了显著加速。
此外,近年来领域内较为重要的是出现了NAS-Bench-101这样的评价基准,使得NAS方法的性能可以相对公平地比较。
1.2 Background and Definitions
- Search space: 所有可供搜索的架构的集合
- Search strategy: 优化策略,主要包含black-bos optimization & onr-shot optimization
- Performance estimation strategy: 快速估计架构表现的策略(通常避免完整的训练)
关于NAS的形式化定义:
其中 A A A是搜素空间, w w w是参数, L t r a i n L_{train} Ltrain是训练的loss, L v a l L_{val} Lval是验证的loss。
这种形式被称为 Bi-level 优化模型
2. Search Spaces
不同类型的搜索空间如下表:
2.1 Terminology
搜索空间的术语:
- Operation/primitive: 最小原子单元,通常是激活函数、操作函数和正则函数组成的三元组
- Layer:与operation含义接近,但通常是指一些广为人知的operation组合
- Motif:由一些operation构成,介于cell和operation之间
- Block/Module:一系列layer的组合(通常是是序列的形式拼在一起的)
- Cell:包含一些operation(通常是以图的形式拼在一起的),以及这些operation之间的有向图
3. Black-Box Optimization Techniques
包括强化方法、进化方法、贝叶斯优化方法、蒙特卡洛树方法等。由于需要训练很多独立的、缺少关联的框架,黑盒方法往往比one-shot方法消耗更多资源。然而,黑盒方法有更加简单,设计方便,利于并行化等优点。
3.1 Baselines
- random search
- random sampling
3.2 Reinforcement Learning
此类方法对GPU和时间的消耗非常大。
3.3 Evolutionary and Genetic Algorithms
进化算法改进的核心是对“更广阔地探寻搜索空间”和“更深入地开发现有最佳区域”之间的平衡。
原文:These methods trade off exploration vs. exploiting the best region found so far
比较值得关注的是regularized evolution,修改了进化的淘汰条件。一般进化算法是给最好的种子机会,这样会较快陷入局部最优。regularized evolution提出每次淘汰较老的,给较新的种子机会,这样有利于对全局最优的探索。
3.4 Bayesian Optimization
贝叶斯优化的两大核心:
- 设计概率代理函数(building a probabilistic surrogate to model the unknown objective based on past observations)
- 设计估值函数(defining an acquisition function to balance the exploration and exploitation during the search)
3.5 Monte Carlo Tree Search
核心:递归采用
4. One-Shot Techniques
One-shot方法的主要目的是:避免每次对搜索到的结构从头开始训练,以减少时间/计算资源的消耗。
One-shot的主要实现方式有两种:
- 设计一个hypernetwork,产生不同模型的weights
- 设计一个supernetwork,所有可能的架构都是来自supernetwork的一个子集。因而,只需要对这个supernework进行适当的训练即可。
4.1 Non-Differentiable Supernet-Based Methods
非梯度的方法主要有两种形式:
- 拆解supernet的训练和结构搜索,即先训练supernet,后做black-box的搜索
- 两者同时进行
4.2 Differentiable Supernet-Based Methods
这是NAS中发展最为繁荣的一种形式
必读:DARTS (Differentiable Architecture Search) ,是划时代的工作
针对DARTS有如下方面的改进:
- Rank Disorder:one-shot方法的主要假设是:使用超级网络评估的架构排名与独立训练架构所获得的排名相对一致,当这一条不满足的时候,就会出现Rank Disorder现象。SGAS、XNAS等是针对这一方面的改进。
- Operation Biases:一些工作表明,NAS是存在对不同operation的偏好的不同,比如更喜欢使用跳跃连接(skip connection)。DARTS-PT,FairDARTS是对这一方面的改进。
- Poor Test Generalization:对泛化性的改进包括:Robust-DARTS
- High Memory Consumption:PC-DARTS和ProxylessNAS等是对空间开销的优化。
4.3 Hypernetworks
主要包括一些用直接生成weights 的方法,与HPO类似。
5. Speedup Techniques
5.1 Performance Prediction
为了避免将每一个搜索到的结构都训练一遍,可以设计一个预测模型,对已知结构的训练结果进行预测,然后筛选出可能有较好表现的少量模型进行训练。
5.2 Multi-Fidelity Algorithms
5.3 Meta-Learning
本质是利用旧有实验数据,可以和DARTS等方法结合。
5.4 Weight Inheritance and Network Morphisms
通过参数复用/共享来节约训练成本。
其他
余下部分包含具体应用、衡量基准、未来方向等,主要涉及具体实现。本文主要关注理论方法,对后续内容不再进行详细解读。推荐读者继续阅读原文,https://arxiv.org/pdf/2301.08727。