当前位置: 首页 > news >正文

神经网络架构搜索(NAS)概述:如何让AI自动设计AI模型?

点击AladdinEdu,同学们用得起的【H卡】算力平台”,注册即送-H卡级别算力沉浸式云原生的集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价


引言:从手工雕刻到自动铸造——AI设计的范式转移

在深度学习的浪潮中,神经网络的架构设计始终是一门融合了直觉、经验和大量试错的“艺术”。从LeNet到AlexNet,从VGG到ResNet,再到Transformer,每一个里程碑式的模型都凝结了研究者们无数的心血与智慧。这个过程被形象地称为“网络工程”(Network Engineering),其核心是人类专家依据特定任务和计算约束,通过反复迭代和实验,手工设计出高性能的模型架构

然而,这种模式正面临巨大的挑战:

  1. 问题复杂度爆炸:搜索空间极其庞大。对于一个层数、操作类型(卷积、池化等)、通道数、连接方式都可变的网络,可能的架构数量轻松超过 102010^{20}1020,远超人力所能及。
  2. 计算成本高昂:评估一个候选架构的性能需要从头开始训练它,即便在CIFAR-10这样的小数据集上,训练一个模型也需要数GPU小时。暴力搜索如同大海捞针。
  3. 专业知识壁垒:最优的架构往往反直觉,依赖专家的先验知识可能会限制创新,错过更优的“未知”设计。

我们能否将设计模型的任务交给机器本身?让AI来自动化地设计AI模型?这正是神经网络架构搜索(Neural Architecture Search, NAS) 的核心目标。

NAS旨在通过自动化算法,在给定的搜索空间内,寻找在某个特定任务(如ImageNet分类)上性能最优、效率最高的神经网络架构。它代表了AI领域从“手工雕刻”到“自动铸造”的范式转移,是迈向自动化机器学习(AutoML) 的关键一步。

本文将深入解析NAS的主流方法,重点阐述DARTS、One-Shot NAS等代表性算法的原理与思想,并客观分析其局限性,为读者描绘出一幅NAS技术发展的清晰图景。


第一章:NAS的基本框架与核心要素

任何一个NAS系统都包含三个核心组成部分:

  1. 搜索空间(Search Space)
    定义了所有可能候选架构的集合。它决定了算法探索的范围和方向。常见的搜索空间包括:

    • 链式结构:逐层连接,只搜索每层的操作类型和参数。
    • 多分支结构:如Cell-based搜索空间(在NASNet中提出)。搜索一个称为“Cell”的微型结构(包含Normal Cell和Reduction Cell),然后通过堆叠相同的Cell来构建最终网络。这大大缩小了搜索空间,且找到了的架构具有良好的可迁移性。
    • 基于注意力的搜索空间:搜索Transformer中注意力机制的类型、头数等。
    • 层次化空间:同时搜索宏观结构(如块的数量)和微观结构(如Cell内的操作)。
  2. 搜索策略(Search Strategy)
    这是NAS的“大脑”,负责决定如何探索搜索空间。其目标是高效地找到性能优异的架构。经典策略包括:

    • 强化学习(RL):早期开创性工作(如Zoph et al., 2017)使用RNN作为控制器(Controller)生成子网络(Child Network)的描述,然后训练子网络并将其验证集准确率作为奖励信号,通过策略梯度(如REINFORCE)更新控制器。
    • 进化算法(EA):将网络架构编码为“基因”,通过选择、交叉、变异等操作演化出更好的架构种群。
    • 贝叶斯优化(BO):构建一个代理模型(如高斯过程)来预测未知架构的性能,从而指导搜索向高性能区域进行。
    • 基于梯度的可微分搜索:这是本文的重点(如DARTS),它将离散的搜索空间连续化,从而可以通过梯度下降高效搜索。
    • One-Shot / 权重共享:同样是本文重点,它通过训练一个包含所有子路径的“超网”来避免重复训练。
  3. 性能评估策略(Performance Estimation Strategy)
    这是NAS的“评估师”,负责评估搜索策略提出的候选架构的性能。最直接但最昂贵的方式是从头训练至收敛。但其高昂的成本迫使研究者寻找更高效的替代方案:

    • 低保真度评估:在子数据集(如CIFAR-10)、更少的训练轮数(Epoch)、更小的模型(Less Channels)上训练。
    • 学习曲线外推:根据模型训练初期的性能预测其最终性能。
    • 权重共享/One-Shot:所有子架构共享超网的权重,无需单独训练,评估速度极快。

早期的RL和EA方法虽然证明了NAS的可行性,但其计算成本令人咋舌(如Zoph et al., 2017的工作需要2000 GPU days)。因此,后续研究的核心焦点都集中在如何大幅降低性能评估的成本上。可微分搜索(DARTS)和权重共享(One-Shot)正是两大主流方向。


第二章:可微分搜索的里程碑——DARTS

DARTS(Differentiable ARchiTecture Search)是2019年ICLR上发表的工作,它彻底改变了NAS的范式,将离散的架构搜索问题转变为一个可微分的优化问题,使得搜索效率提升了数个数量级。

2.1 核心思想:连续松弛与双优化

DARTS的核心创新在于对搜索空间进行了连续松弛

我们以搜索一个Cell为例。Cell可以看作是一个由N个节点组成的有向无环图(DAG),每个节点是一个特征图,每条边 (i,j)(i, j)(i,j) 代表从节点 iii 到节点 jjj 的一个潜在操作(如3x3卷积、5x5深度可分离卷积、最大池化等)。

  • 离散选择:在离散空间中,每条边 (i,j)(i, j)(i,j) 只能选择一个具体的操作 ooo
  • 连续松弛:DARTS将每条边的选择“软化”。它让每条边 (i,j)(i, j)(i,j) 不再是单一操作,而是所有候选操作的混合。每条边的输出变成了所有操作输出的加权和:
    oˉ(i,j)(x)=∑o∈Oαo(i,j)⋅o(x)\bar{o}^{(i,j)}(x) = \sum_{o \in \mathcal{O}} \alpha_o^{(i,j)} \cdot o(x) oˉ(i,j)(x)=oOαo(i,j)o(x)
    其中,α(i,j)\alpha^{(i,j)}α(i,j) 是一个与操作集合 O\mathcal{O}O 大小相同的架构权重向量,其分量 αo(i,j)\alpha_o^{(i,j)}αo(i,j) 可以理解为操作 ooo 在边 (i,j)(i, j)(i,j) 上的“重要性”或“概率”。α\alphaα 就是我们需要搜索的架构参数

至此,搜索空间从一个离散的集合变成了一个连续的、由 α\alphaα 参数化的空间。整个超网(Supernet)的结构也因此确定了,并且是可微的

2.2 优化过程: bilevel 优化

搜索的目标是找到一组架构参数 α∗\alpha^*α,使得由其确定的最佳架构在验证集上表现最好。同时,超网中每个操作本身也有其权重参数 www(如卷积核的权重)。

这自然形成了一个bilevel 优化问题

  • 内层优化:在训练集上优化网络权重 www
  • 外层优化:在验证集上优化架构参数 α\alphaα

min⁡αLval(w∗(α),α)s.t.w∗(α)=argmin⁡wLtrain(w,α)\begin{aligned} &\min_{\alpha} \quad \mathcal{L}_{val}(w^*(\alpha), \alpha) \\ &\text{s.t.} \quad w^*(\alpha) = \operatorname{argmin}_{w} \mathcal{L}_{train}(w, \alpha) \end{aligned} αminLval(w(α),α)s.t.w(α)=argminwLtrain(w,α)

DARTS采用了一种交替优化的近似策略来解这个复杂问题:

  1. 固定架构参数 α\alphaα,在训练集上朝梯度方向 ∇wLtrain(w,α)\nabla_w \mathcal{L}_{train}(w, \alpha)wLtrain(w,α) 更新网络权重 www
  2. 固定网络权重 www,在验证集上朝梯度方向 ∇αLval(w,α)\nabla_{\alpha} \mathcal{L}_{val}(w, \alpha)αLval(w,α) 更新架构参数 α\alphaα

通过这种交替迭代,架构参数 α\alphaα 和网络权重 www 共同进化。最终,搜索完成后,我们需要将连续的架构离散化:对于每条边 (i,j)(i, j)(i,j),只保留 αo(i,j)\alpha_o^{(i,j)}αo(i,j) 最大的那个操作,从而得到一个真正的、离散的、可用于最终训练和部署的架构。

2.3 DARTS的优势与颠覆性影响
  • 高效:将搜索时间从上千GPU天缩短到1-4个GPU天(在CIFAR-10上),使得NAS技术在学术界和工业界得以普及。
  • 简洁:无需复杂的控制器或进化算法,标准的梯度下降即可完成搜索。
  • 开创性:它开创了“可微分NAS”这一全新的方向,催生了大量基于此的改进工作(如PC-DARTS, Fair DARTS, DARTS-等)。

第三章:权重共享的典范——One-Shot NAS

与DARTS同属高效NAS阵营的另一大流派是One-Shot NAS。其核心思想是权重共享

3.1 核心思想:超网与路径采样

One-Shot NAS首先构建一个超网(One-Shot Model)。这个超网是一个庞大的图,它包含了搜索空间中所有可能的操作和连接。超网中的每条路径都对应着一个候选的子架构。

关键一步是:超网的所有子路径共享权重。也就是说,一个3x3卷积操作无论在哪个位置被哪个子架构使用,它都使用同一组卷积核权重。

搜索过程分为两个阶段:

  1. 训练超网:目标是优化超网中所有操作的共享权重 www。训练时,通过均匀随机采样一条子路径(即一个候选架构),仅训练该路径上的权重。通过大量次数的采样和训练,最终希望共享权重 www 能够收敛到一个较好的状态,使得每个子架构的性能都能被其共享权重下的性能所近似。
  2. 搜索架构:超网训练完成后,冻结其权重 www。搜索策略(如进化算法、随机搜索)会生成大量的候选架构。评估这些架构的性能时,无需再训练,只需要在验证集上做一次前向传播,记录其准确率即可。由于评估成本极低(仅需几秒钟),可以在极短时间内评估成千上万个架构。最终选择验证性能最好的那个架构。
3.2 代表性方法:ENAS & 更多
  • ENAS(Efficient NAS):是One-Shot思想的先驱。它使用一个RNN控制器来采样子架构,并通过强化学习以验证准确率为奖励更新控制器。其权重共享机制大大缩短了搜索时间。
  • Random Search with Weight Sharing:一些研究发现,在训练好的超网下,即使使用简单的随机搜索,也能找到非常好的架构。这说明了超网训练的质量远比搜索算法本身更重要。
3.3 One-Shot NAS的优势
  • 极低的搜索成本:架构评估几乎零成本,搜索阶段的主要开销在于超网训练。
  • 灵活性:搜索阶段可以与超网训练阶段解耦,可以使用任何搜索策略(EA, RS, BO等)。
  • 可扩展性:易于扩展到更大的搜索空间。

第四章:光鲜背后的阴影——主流方法的局限性分析

尽管DARTS和One-Shot NAS取得了巨大成功,但它们都存在着固有的、深刻的局限性。

4.1 DARTS的局限性
  1. 离散化误差(Discretization Gap)
    这是DARTS最根本的问题。搜索是在连续松弛的空间中进行的,而最终得到的却是离散的架构。最优的连续架构 α∗\alpha^*α 与离散化后的架构在性能上可能存在显著差异。搜索时表现最好的连续架构,其对应的离散版本可能表现平平。

  2. 性能崩塌(Performance Collapse)
    在DARTS的后续研究中,人们发现其搜索结果存在模式坍塌的倾向:网络会倾向于选择跳跃连接(Skip-Connect) 等参数量少、计算简单的操作。原因是:

    • 跳跃连接的“不公平优势”:跳跃连接提供了无损的梯度通路,在搜索初期能更快地降低损失,从而获得更大的架构权重 α\alphaα
    • Double优化近似不准确:交替优化并非真正的bilevel优化,wwwα\alphaα 的优化步调不一致可能导致优化陷入糟糕的局部最优点。
  3. 内存消耗巨大
    需要同时存储整个超网的所有候选操作和它们的中间计算结果,内存开销与候选操作的数量成正比,限制了搜索空间的规模。

  4. 泛化性存疑
    在CIFAR-10上搜索到的架构,在ImageNet上表现不一定最优。这表明搜索过程对数据集和超参数(如学习率)较为敏感。

4.2 One-Shot NAS的局限性
  1. 排名一致性假设(Ranking Consistency Problem)
    这是One-Shot方法的“阿喀琉斯之踵”。其有效性依赖于一个关键假设:在共享权重下,子架构的性能排名与其从头训练后的性能排名高度一致。然而,这个假设在现实中常常被打破。

    • “马太效应”:操作权重在超网训练阶段被共享。高频被采样的操作(或架构)其权重更新得更充分,性能更好;而低频采样的操作则性能更差,这进一步导致其在搜索阶段被评估为“差生”,形成恶性循环。
    • 协同适应(Co-adaptation):超网的权重是所有架构折衷的结果。一个本身潜力很好的架构,可能因为其独有的操作在超网中未被充分训练而得到低分;反之,一个平庸的架构可能因为搭了“顺风车”(其路径上的操作被其他架构训练得很好)而获得高分。
  2. 超网训练不稳定
    超网的训练本身就是一项挑战。由于需要不断切换不同的子路径,训练过程比训练一个固定网络更加不稳定,难以收敛。

  3. 搜索空间设计偏差
    无论是DARTS还是One-Shot,其性能上限极大程度受限于人为设计的搜索空间。如果最优架构不在预设的搜索空间内,那么再好的搜索算法也无能为力。这本质上只是将“架构设计”的先验知识从“微观”转移到了“宏观”(搜索空间的设计)。


第五章:超越与展望:NAS的未来之路

尽管面临挑战,NAS的研究仍在快速演进,不断涌现出新方法来克服上述局限性:

  • 针对DARTS的改进:出现了许多DARTS的变体,如:

    • DARTS-:通过提前截断跳跃连接的操作,来缓解性能崩塌。
    • PC-DARTS:通过部分通道连接来降低内存消耗和加速搜索。
    • RobustDARTS:通过分析Hessian迹来诊断和避免性能崩塌。
  • 针对One-Shot的改进

    • FairNASSPOS:通过采用严格的公平采样策略,确保每个操作和子路径在超网训练阶段被采样的概率完全相同,以缓解排名不一致问题。
    • 渐进式收缩(Progressive Shrinking):如BigNAS,先在超网中训练最大的模型,然后逐步收缩出子模型,证明了子模型无需再训练也能达到良好性能。
  • 新的范式

    • 预测器-based NAS:训练一个性能预测器,输入架构的描述,输出其预测的性能。搜索时直接查询预测器,完全摆脱了权重共享的假设。
    • 零成本(Zero-Cost)NAS:使用一种无需训练的超快代理指标(如梯度信息、BN层尺度)来估计架构性能,在几秒钟内完成搜索。

结论:自动化与人类智慧的协同进化

神经网络架构搜索(NAS)已经从一种计算奢侈的“黑科技”,发展成为AutoML工具箱中一项实用且强大的技术。DARTS和One-Shot NAS等方法通过可微分搜索和权重共享,极大地 democratized 了NAS,使其得以广泛应用。

然而,我们必须清醒地认识到,当前的NAS并非完美的“银弹”。它并未完全消除人类的作用,而是将人类的智慧从繁琐的调参和试错中解放出来,转移到了定义问题、设计搜索空间、制定评估准则等更高层次的任务上。

NAS的未来,不是取代人类专家,而是与人类专家形成协同进化的关系。人类引导搜索的方向,NAS则在人类划定的广阔空间内进行高效探索,发现那些反直觉却又无比精巧的设计。正如计算机辅助设计(CAD)没有取代建筑师,而是赋予了其更强大的创造能力一样,NAS正在成为AI研究者手中一支全新的“神笔”,帮助我们绘制出下一代更智能、更高效的AI模型的蓝图。这条路依然漫长,但充满无限可能。


点击AladdinEdu,同学们用得起的【H卡】算力平台”,注册即送-H卡级别算力沉浸式云原生的集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价

http://www.dtcms.com/a/395616.html

相关文章:

  • LoRA微调技术:大模型时代的“乐高式“参数改造指南
  • 数据建模和设计章节考试考点及关系梳理
  • pytorch工具箱
  • Spark源码中的CAS思想
  • webpack-dev-server使用
  • 现有项目添加CMake
  • c语言学习_数组使用_扫雷2
  • 轻量级KVM管理工具 —— 筑梦之路
  • 第十四章:数据分析基础库NumPy(一)
  • 课题学习——SimCSE
  • gitee.com 有raw.githubusercontent.com一样的机制吗?
  • AI原生未来:新商业机会全景洞察与商业模式深度解构
  • Spark源码中的volatile
  • IDEA运行/调试配置找不到对应脚本的命令
  • 测试duckdb的C插件模板的编译加工和加载
  • 如何用AI工具开发一个轻量化CRM系统(二):需求分析
  • ARM架构学习9——LM75温度传感器+ADC转换器
  • 再见,Windows 10:升级 Windows 11 的必要性!
  • 数据结构从入门到实战——算法的时间复杂度
  • Rust字符串
  • 【图文详解】强化学习最新进展以及核心技术突破方向、核心技术架构
  • Linux SSH 安全加固与批量管理:密钥认证 + 自动化脚本 + OpenSSH 升级
  • 一个可以直接跑满本地带宽文件分享工具 开箱即用,可用于局域网内分享文件和文件夹
  • 探索AI无人直播技术:自动化带来的新机遇
  • Codeforces Round 1051 (Div. 2) D1题 题解记录
  • 计算机视觉、图像处理国际学术会议
  • redhat7.4升级到Oracle Linux8.10
  • PEFT库实战快速入门
  • PyTorch 核心知识手册:神经网络构建与训练基础
  • DeepSeek对数学工具的分类(2025.1.13)