神经网络架构搜索 NAS:自动化设计网络

FreeGuideOnline 最新 2026-06-21

神经网络架构搜索(NAS):自动化设计深度学习模型

什么是神经网络架构搜索?

在传统的深度学习模型开发中,研究人员需要手动设计网络层数、卷积核大小、激活函数类型等架构超参数。这一过程耗时且依赖大量专家经验。神经网络架构搜索(Neural Architecture Search,NAS) 通过算法自动寻找最优的网络结构,将人类从繁复的试错中解放出来。它可以在给定的搜索空间中,根据性能评估策略找出在验证集上表现最好的模型架构。

NAS 的诞生源于一个观察:对于不同的任务(图像分类、目标检测、语义分割等)和不同的硬件平台,最优网络架构往往差异巨大。手动为每一个场景定制网络并不现实,而 NAS 能够以数据驱动的方式自动完成这一工作。

NAS 的核心三要素

任何 NAS 方法都包含三个关键组成部分:搜索空间搜索策略性能评估策略

1. 搜索空间(Search Space)

搜索空间定义了 NAS 可以探索的所有可能网络结构。它决定了优化的自由度。常见的搜索空间形式包括:

  • 链式结构空间:网络由一系列顺序连接的层组成,每一层可选择不同的操作(如不同尺寸的卷积、池化、跳跃连接等)。这是最基础的搜索空间,计算开销相对较小。
  • 多分支结构空间:允许更复杂的拓扑,例如 Inception、ResNet 中的残差连接、DenseNet 的密集连接。现代 NAS 通常基于可重复的单元(cell)构建搜索空间,搜索的是单元内部结构,然后堆叠重复单元组成完整网络。这种设计可以大大缩小搜索空间并提高泛化能力。
  • 层级结构空间:在单元基础上引入更高层次的连接模式,形成层级式的 motif 或模块。

搜索空间的设计直接影响搜索效率和最终模型的性能。一个好的搜索空间应当足够大以包含高性能架构,但又不能过大导致搜索难以收敛。

2. 搜索策略(Search Strategy)

搜索策略决定了如何在巨大的搜索空间中高效探索,找到性能最好的架构。主流搜索策略分为以下几类:

基于强化学习(RL)的方法

使用 RNN 作为控制器来生成网络结构的描述,将该结构训练后在验证集上的准确率作为奖励信号,通过策略梯度算法更新控制器。早期代表性的工作是 Zoph 等人提出的 NASNet,它通过在小型代理数据集上搜索可迁移的单元,然后堆叠到目标数据集上,大幅降低了搜索成本。

基于进化算法(Evolutionary Algorithm)

维护一个架构种群,通过变异(如随机更改某一层操作)和交叉生成新一代架构,依据验证集性能选择保留 top 架构。这类方法能够较好地保持种群多样性,但通常需要评估大量个体,计算成本较高。AmoebaNet 是该类别的代表。

将离散的架构选择转化为连续可微的松弛问题。典型代表有 DARTS(Differentiable Architecture Search):将每一层的候选操作加权求和,权重通过 softmax 转变为架构参数。在训练过程中,用梯度下降同时优化网络权重和架构权重。搜索完成后,选择权重最大的操作作为最终架构。DARTS 将搜索时间从数千 GPU 天降低到单卡数天,极大地推动了 NAS 的实用化。

基于权重共享(Weight Sharing)与一次训练(One-Shot)

在这种范式下,首先构建一个包含所有可能路径的超网络(supernet)。所有子架构共享超网络的权重,在训练超网络时随机采样路径进行优化。搜索完成后,通过评估不同子网络在验证集上的性能选出最佳架构,而无需从头开始训练每一个候选模型。ENAS(Efficient NAS)和 ProxylessNAS 使用这种方法,搜索效率极高。

3. 性能评估策略(Performance Estimation Strategy)

由于在搜索过程中需要评估大量候选架构,如果每次都从头训练完整模型,计算代价将不可接受。因此,性能评估策略的目标是快速而准确地估计架构的真实性能。

  • 低保真度估计:在较小的数据集、较少的训练轮数、较浅的模型上训练,或者使用代理任务。虽然不能完美反映最终精度,但能提供有效的相对排名。
  • 权重共享:借助超网络,直接继承相应子网的权重进行评估,无需额外训练。
  • 基于预测器的指示函数:训练一个性能预测器(如基于图神经网络的回归器),根据架构的结构特征预测其精度,快速筛选候选架构后再做精确验证。

NAS 实战流程(以 DARTS 为例)

为了让初学者快速理解,下面展示一个典型的基于 DARTS 的二阶段搜索与重训练流程:

阶段一:搜索架构元胞(Search Cell)

  1. 定义超网络构成:选定基础操作集合(如3x3/5x5 可分离卷积、膨胀卷积、最大/平均池化、跳跃连接、无连接)。网络由若干个重复的正常元胞(Normal Cell)和缩减元胞(Reduction Cell)堆叠而成。
  2. 架构松弛:在超网络中,每个计算边上有混合操作,每种操作连接一个可学习的架构权重 α。输出的特征是各操作结果的加权和。
  3. 双层优化:将数据集划分为训练集和验证集。交替优化网络权重 w(在训练集上)和架构权重 α(在验证集上)。通过梯度下降同时更新 w 和 α。
  4. 离散化:搜索结束后,在每个节点间选择权重最大的 α 对应的操作,保留前 k 个最强的连接,形成最终离散的元胞结构。

阶段二:重训练最终架构

  1. 堆叠完整网络:按照搜索得到的 Normal Cell 和 Reduction Cell,堆叠成一个深度网络(如 20 个 cell)。
  2. 从头训练:在完整目标数据集上重新训练网络权重,采用标准的数据增强、优化器、学习率调度。
  3. 测试评估:在测试集上报告最终精度,该网络即为 NAS 找到的最优架构。

NAS 的典型应用

  • 图像分类:NASNet、EfficientNet(使用复合缩放和 NAS 搜索基线)大幅提升了 ImageNet 分类精度。
  • 目标检测与分割:通过搜索主干网络和特征金字塔结构,获得轻量且高效的特征提取器,应用于移动端检测。
  • 自然语言处理:搜索 Transformer 模型中的注意力头数、前馈网络维度、层数等,例如 Evolved Transformer 改进了机器翻译性能。
  • 边缘设备部署:结合硬件指标(延迟、功耗)的多目标 NAS(如 MnasNet、FBNet)直接在像素级模型上优化,产出适合手机、IoT 设备的模型。

优点与挑战

优势

  • 自动化:摆脱手动设计,加速模型迭代。
  • 性能超越人工:在许多视觉和语言任务上,NAS 发现的架构超越了人类专家设计。
  • 领域自适应:可以针对特定任务和硬件定制网络,实现性能与效率的最佳平衡。

挑战

  • 搜索成本:早期 NAS 需要数千 GPU 天,但随着权重共享、可微分方法的出现,成本已大幅下降,但依然要求一定的计算资源。
  • 可解释性与泛化性:搜索到的架构有时包含不直观的连接模式,难以解释其设计原理。搜索空间定义的微小改变可能导致性能剧烈波动。
  • 搜索稳定性:某些可微分 NAS 方法(如 DARTS)存在因架构参数过拟合而导致坍塌(collapse)的问题,需要在损失函数中添加正则化。
  • 搜索偏差:权重共享方法中对超网络的训练可能引入偏见,低估某些子架构的真实潜力。

当前趋势与未来方向

  • 无训练 NAS(Training-Free NAS):利用网络在初始化时的表达能力指标(如雅可比矩阵相关性、线性区域数量)直接评估架构,无需任何训练,将搜索耗时降至秒级。
  • 与硬件协同设计:将功耗、延迟、内存带宽等指标直接融入搜索目标,形成软硬件联合优化闭环。
  • 大规模模型搜索:搜索大语言模型、视觉 Transformer 的架构,关注如何在不进行完整重训练的情况下快速评估结构。
  • 可解释架构表示:使用基于图或代码的结构表示,让搜索过程更透明。
  • 绿色 AI 与低碳 NAS:在搜索过程中考虑碳排放,发展更节能的搜索算法,或复用已搜索过的架构知识。

总结

神经网络架构搜索是自动化机器学习(AutoML)中最为耀眼的里程碑之一。它将深度学习模型的设计从手工作坊时代推向自动化工厂时代。对于初学者,理解搜索空间、搜索策略、性能评估三要素以及 DARTS 等代表性方法是进入这一领域的基础。随着方法的演进,NAS 将变得更加高效、通用和亲民,让每个人都能轻松获得定制的强力神经网络。