神经架构搜索(NAS)基础与分类体系
1. 概述
神经架构搜索(Neural Architecture Search, NAS)是自动化机器学习(AutoML)的核心组成部分,旨在自动设计高性能神经网络架构,而无需人工干预1。自2016年Zoph和Le的开创性工作以来,NAS已成为深度学习领域的研究热点,极大地推动了神经网络架构的创新。
NAS的核心挑战在于巨大的搜索空间与昂贵的架构评估成本之间的矛盾。一个典型的CNN搜索空间可能包含个候选架构,而评估每个架构需要完整的训练过程。
2. NAS的形式化定义
2.1 优化问题
NAS可形式化为双层优化问题:
其中:
- 是架构参数(如操作类型、连接方式)
- 是给定架构的最优权重
- 是架构性能指标(通常为验证集准确率)
2.2 双层优化结构
NAS的双层结构带来计算挑战:
这种结构使得架构优化必须考虑权重训练的动态过程。
3. 搜索策略分类
3.1 强化学习方法
基于强化学习的NAS使用控制器网络生成架构,并使用奖励信号进行优化。
典型方法:
- NASNet (Zoph et al., 2017):使用RNN控制器+强化学习
- ENAS (Pham et al., 2018):参数共享加速搜索
- Neural Architecture Optimization (Chen et al., 2018):基于策略梯度的连续空间搜索
奖励函数设计:
其中是延迟惩罚系数。
3.2 进化算法方法
基于进化算法的NAS通过变异和选择操作搜索架构空间。
典型方法:
- Regularized Evolution (Real et al., 2019):加入年龄选择压力
- AmoebaNet (Real et al., 2019):首个超越人工设计的进化方法
- LEMONADE (Elsken et al., 2019):多目标进化NAS
进化操作:
| 操作 | 描述 |
|---|---|
| 变异 | 随机改变操作类型或连接 |
| 交叉 | 组合两个父代架构 |
| 选择 | 基于适应度选择优秀个体 |
3.3 梯度方法
梯度方法将离散架构空间松弛为连续空间,实现端到端梯度优化。
典型方法:
- DARTS (Liu et al., 2019):可微架构搜索
- ProxylessNAS (Cai et al., 2019):无代理梯度搜索
- One-Shot NAS (Bender et al., 2020):超网络+Dropout
DARTS核心思想:
将架构选择从离散变为连续:
其中是边上操作的架构参数。
3.4 零代价代理方法
零代价(Zero-Shot)代理方法无需训练即可预测架构性能。
典型方法:
- SNIP (Singh et al., 2020):基于敏感性的代理
- GraSP (Wang et al., 2020):基于梯度流重要性
- Synflow (Tanaka et al., 2020):基于网络流敏感性
代理指标计算:
4. 搜索空间设计
4.1 搜索空间定义
搜索空间定义了所有可能的架构。典型的搜索空间包括:
Cell-Based搜索空间
每个Cell由个节点组成,每个节点表示潜在表示:
**操作集**通常包括:
| 操作类型 | 描述 |
|---|---|
| 恒等映射 | |
| 分离卷积 | 和深度可分离卷积 |
| 最大池化 | 最大池化 |
| 平均池化 | 平均池化 |
| 跳跃连接 | 残差连接 |
宏观搜索空间
宏观搜索空间直接搜索网络的阶段配置:
- 每层操作类型
- 通道数配置
- 层数配置
- 空间分辨率变化
4.2 搜索空间大小分析
不同搜索空间的规模:
| 搜索空间 | 候选架构数 | 基准 |
|---|---|---|
| NASNet | CIFAR-10 | |
| DARTS | CIFAR-10 | |
| NAS-Bench-101 | 423,624 | CIFAR-10 |
| NAS-Bench-201 | 15,625 | CIFAR-10/ImageNet-16-120 |
5. 经典NAS基准
5.1 NAS-Bench-101
特点:
- 首个大规模NAS基准
- 423,624个独特架构
- 使用图同构分类(DAG结构)
评估指标:
- 训练/验证/测试准确率
- 参数量
- 训练时间
5.2 NAS-Bench-201
特点:
- 固定的5节点Cell结构
- 4种候选操作
- 跨数据集一致性分析
操作集:
5.3 NAS-Bench-301
特点:
- 基于DARTS搜索空间
- Surrogate模型加速评估
- 大规模架构空间
5.4 NAS-Bench-360
特点:
- 跨模态基准(图像、文本、图、音频)
- 评估NAS方法的泛化能力
- 现实应用导向
6. 评估协议
6.1 标准评估流程
- 搜索阶段:在验证集上搜索最优架构
- 重训练阶段:从头训练找到的架构
- 测试阶段:在测试集上评估
6.2 评估指标
| 指标 | 说明 |
|---|---|
| Top-1准确率 | 预测正确率 |
| 参数量 | 模型大小 |
| FLOPs | 计算复杂度 |
| 延迟 | 推理时间 |
| 能耗 | 硬件功耗 |
6.3 公平比较注意事项
- 权重继承 vs 从头训练:使用超网络权重 vs 完全重训练
- 搜索数据集 vs 评估数据集:CIFAR vs ImageNet
- 训练时长:完整训练 vs 缩短训练
7. NAS方法比较
| 方法类别 | 优点 | 缺点 | 典型方法 |
|---|---|---|---|
| 强化学习 | 理论基础强 | 计算量大 | NASNet, ENAS |
| 进化算法 | 搜索多样性高 | 超参数敏感 | AmoebaNet |
| 梯度方法 | 高效 | 稳定性问题 | DARTS, ProxylessNAS |
| 零代价代理 | 无训练开销 | 精度有限 | SNIP, Synflow |
8. 最新发展趋势
8.1 硬件感知NAS
将硬件约束(延迟、能耗、内存)纳入优化目标:
典型方法:Jet-Nemotron、Hardware-Aware Transformer NAS
8.2 LLM引导的NAS
利用大语言模型的先验知识指导架构搜索:
- ZeroLM:无数据Transformer架构搜索
- RZ-NAS:反思式零代价LLM引导NAS
详见:LLM引导的神经架构搜索
8.3 可扩展NAS
针对大规模模型(ViT、LLM)的架构搜索:
- PostNAS:从预训练模型出发的架构优化
- 混合架构搜索:SSM+Attention组合
9. 相关主题
参考文献
Footnotes
-
Zoph, B., & Le, Q. V. (2016). Neural Architecture Search with Reinforcement Learning. ICLR 2017. ↩