神经架构搜索(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 搜索空间大小分析

不同搜索空间的规模:

搜索空间候选架构数基准
NASNetCIFAR-10
DARTSCIFAR-10
NAS-Bench-101423,624CIFAR-10
NAS-Bench-20115,625CIFAR-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 标准评估流程

  1. 搜索阶段:在验证集上搜索最优架构
  2. 重训练阶段:从头训练找到的架构
  3. 测试阶段:在测试集上评估

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

  1. Zoph, B., & Le, Q. V. (2016). Neural Architecture Search with Reinforcement Learning. ICLR 2017.