1.2 NAS 的定义与基本概念 本节摘要:NAS 的正式定义是"在预定义搜索空间内,用特定搜索策略自动寻找最优神经网络架构的过程"。本节拆解定义里的"自动化、搜索空间、搜索策略、最优性能"四个关键词,展开三大支柱与基本流程图,梳理从 1990 年代进化算法到 DARTS/ENAS 的发展历程,并理性看待 NAS 的优势与局限。 本节要回答的问题 阅读完本节,你应当能够: 用一句话定义 NAS,并拆解其中的四个关键要素 说出三大支柱(搜索空间、搜索策略、性能评估)各自管什么 复述 NAS 基本流程的七个步骤 描述 NAS 从早期探索到快速发展的三个历史阶段及代表方法 平衡地评价 NAS 的优势(自动化、性能、领域适应、创新)与局限(成本、空间受限、泛化、可解释)
本节摘要:NAS 的正式定义是"在预定义搜索空间内,用特定搜索策略自动寻找最优神经网络架构的过程"。本节拆解定义里的"自动化、搜索空间、搜索策略、最优性能"四个关键词,展开三大支柱与基本流程图,梳理从 1990 年代进化算法到 DARTS/ENAS 的发展历程,并理性看待 NAS 的优势与局限。
阅读完本节,你应当能够:
把 NAS 想象成一位自动化架构工程师。这位工程师手里有一个巨大的零件库——卷积层、池化层、循环层、全连接层、各种连接方式——库就是搜索空间。他的工作流程是:先看任务需求(图像分类还是目标检测),再从零件库挑零件、按规则组装,最后在任务上检验组装结果。跟人类工程师唯一的区别是,这个工程师不休息、不偷懒、也没有"我觉得这样好看"的审美偏见,它只会按目标函数做事。
这个类比点透了 NAS 的本质:架构设计不是玄学,而是一个可以在明确定义的空间里做的优化问题。既然是优化问题,就能用算法求解。这就是 NAS 与"调参"的根本区别——调参的对象是给定结构里的数值,NAS 的对象是结构本身。
正式定义。SOURCE 给出的定义很凝练:NAS 是在预定义的搜索空间内,利用特定搜索策略,自动寻找最优神经网络架构,以在给定任务上达到最佳性能。定义里藏着四个关键词——"自动化"是核心特征,摆脱人工干预;"搜索空间"是探索范围,决定天花板;"搜索策略"是导航算法,决定效率;"最优性能"是最终目标,用具体指标度量。性能指标要按任务定:图像分类看准确率或 Top-K 准确率,目标检测看 mAP,NLP 看 BLEU 或 ROUGE。有时还要叠加计算效率、参数量、延迟等指标,这已经是第 5 章约束 NAS 的伏笔。
三大支柱。第一根支柱是搜索空间,维度分两层:架构层面(链式结构如 VGG/ResNet、多分支结构如 Inception/DenseNet、细胞结构如 NASNet/DARTS)和操作层面(不同尺寸卷积、池化、ReLU/Sigmoid/Tanh/ELU/Swish 等激活、跳跃/残差/密集连接)。设计空间要平衡三个因素——表达能力(够大才能装下好解)、搜索效率(够小才能搜得动)、先验知识(用领域经验缩小空间)。第二根支柱是搜索策略,分为随机、网格、贝叶斯、进化、强化学习、梯度六类,选型时看搜索效率、探索能力、样本效率、计算资源四个因素。第三根支柱是性能评估策略,从完全训练到代理模型、权重共享、提前停止、低保真度评估,核心矛盾永远是评估精度对评估成本。
基本流程。SOURCE 把 NAS 流程拆成七步:定义搜索空间、初始化架构、评估架构性能、判断性能是否达标、更新搜索策略、基于策略选择新架构、循环迭代。七步里"评估"和"更新"是最耗时的两环——评估贵是因为要真训练,更新贵是因为要消化评估结果。后面的章节会反复回到这两环。
发展历程。NAS 不是新概念。SOURCE 把历史分成三段:1990 年代到 2010 年代是早期探索,代表是 Stanley 的 NEAT(拓扑增强的神经进化),能自动进化出复杂结构,但受限于算力只能在小任务上试;2016-2018 是复兴期,Google Brain 的 NASNet 用强化学习在图像分类上超过人工设计,把 NAS 带进主流;2018 年至今是快速发展期,DARTS 引入可微搜索大幅提速,SNAS 把 NAS 当贝叶斯问题提高稳定性,ENAS 用权重共享降成本,NAS 开始横扫各类任务。三段的共同线索是:算力每上一个台阶,NAS 的搜索空间就敢大一圈。
| 阶段 | 时间 | 代表方法 | 主要突破 |
|---|---|---|---|
| 早期探索 | 1990s-2010s | NEAT | 用进化算法自动生成拓扑 |
| 复兴期 | 2016-2018 | NASNet | 强化学习超过人工设计 |
| 快速发展 | 2018 至今 | DARTS/SNAS/ENAS | 可微搜索与权重共享降成本 |
SOURCE 在第 1.2 节专门留了一块讲"优势与局限性:理性看待",这是本教程最该认真对待的立场。优势是明的:自动化设计降低人力成本;性能优化可能超过人工网络;领域适应性让换任务不必重写结构;创新性有可能发现人类想不到的架构。局限也实在:计算成本高昂——NAS 常常需要大量算力搜索评估;搜索空间受限——你只能搜到空间里有的东西,全局最优在空间之外也没用;泛化能力不足——搜出来的架构可能只在特定任务数据集上好看;可解释性差——搜出来的结构为什么好,往往说不清。
工程上的正确姿势是把这些局限当约束来设计实验,而不是当缺点来回避。
⚠️ 常见坑:在"小数据集 + 大搜索空间 + 完全训练评估"的组合下跑 NAS,结果多半是既慢又差。预算少就缩小空间或换评估策略,别硬撑。
💡 关键直觉:可解释性差不是 NAS 的副产品,而是它的固有属性。搜索算法按目标函数行事,它找到的架构没有"设计理由"——工程上要接受"结构有效但说不清为什么"的状态,把解释工作留到事后分析。
两者血缘很近——都起源于"用算法设计网络",但范围有差异。神经进化通常特指用进化算法(第 3.2 节)设计网络,是 NAS 的一种具体实现路线;而 NAS 是更宽的概念伞,覆盖进化、强化学习、梯度、贝叶斯等所有自动搜索方法。SOURCe 在讲发展历程时把 NEAT 列为早期探索代表,又在讲搜索策略时把进化算法单列一类,就是这个关系的体现。遇到文献时留意区分:说"神经进化"指具体算法家族,说"NAS"指整个领域。
教科书答案会说三个都重要,工程答案是"分阶段重要"。空间错了,整个搜索报废,所以它最"致命";评估策略最贵,它决定预算能不能扛住,所以它最"现实";搜索策略决定了在给定空间和预算下能逼近多好,所以它最"微妙"。可以记一个优先级:先保证空间合理,再保证评估可信,最后才谈策略聪明。本教程第 2、3、4 章的编排顺序正是按这个优先级来的。
没有统一指标,全看任务。SOURCe 给了一组对应关系:图像分类用准确率或 Top-K 准确率,目标检测用 mAP,自然语言处理用 BLEU 或 ROUGE。更进一步,有时性能还要叠加计算效率、参数量、延迟等指标——这时 NAS 就变成了多目标问题,也就是第 5 章约束 NAS 的内容。指标选错,搜索方向就错,这个坑在第 5.3 节会专门展开。
因为 NAS 永远只能搜到空间里存在的架构。如果你的空间没有包含残差连接,再聪明的策略也搜不出残差网络——这就是"搜索空间受限"的准确含义。SOURCe 在局限性里点过一句:NAS 只能在预定义的搜索空间内进行搜索,可能无法找到全局最优解。这句话是理解 NAS 能力边界的钥匙:NAS 的上限由空间定义,算法只是逼近这个上限的工具。
想象你要用 NAS 给手头的图像分类任务找模型。如果理解到位,你应该能立刻回答四个问题:搜索空间怎么定(搜整网还是搜 Cell,操作集合放什么)?搜索策略怎么选(预算少用梯度或贝叶斯,预算多用进化或强化学习)?评估怎么配(用代理任务粗筛,还是权重共享,还是完全训练)?停止条件怎么设(固定轮数还是性能阈值)?四问全答得出,NAS 定义对你就不只是名词,而是可操作的方法论。
回头再看 NAS 发展史,三个转折值得单独标出。转折一:从搜整网到搜 Cell。 早期 NAS(包括 NEAT)直接搜网络拓扑,空间爆炸;NASNet 把搜索对象收敛到 Cell,空间小了几个数量级——这是 NAS 第一次从"理论上可行"变成"工程上可行"。转折二:从评估贵到评估便宜。 ENAS 的权重共享让"评估一个架构"不再等于"训练一个模型",评估成本降了两个数量级——这是 NAS 第二次质的飞跃,第 4 章会详解。转折三:从离散到连续。 DARTS 的连续松弛把 NAS 从"黑箱搜索"变成"可微优化",单卡几天就能出架构——这是 NAS 第三次飞跃。三个转折分别对应三大支柱的进化:空间、评估、策略,恰好就是第 2、4、3 章的标题。记住这条线索,后面的章节就有了"为什么先讲空间、再讲评估、最后讲策略"的组织依据。
SOURCe 在"理性看待"部分特意平衡了优势和局限,这个态度值得学习。NAS 论文普遍只报性能亮点,但作为使用者你要自己补齐"成本账"和"边界账":这次搜索花了多少 GPU 小时、搜出来的架构在别的任务上还能不能打、换数据集要不要重搜。把 NAS 当成"有明确代价的自动化工具"而不是"免费的性能提升器",是对 NAS 最理性的定位——这也正是本教程反复强调"对比驱动、讲清取舍"的原因。一句话收束本节:定义给出的是框架,三要素给出的是零件,流程给出的是装配图——三者齐备,NAS 对你就不再是论文里的抽象名词,而是一套可以动手执行的完整方法论。
下一节我们看 NAS 的价值到底在哪——从性能、效率、门槛、创新四个维度,以及它在各领域的落地成果。