2.3 微观搜索空间


文档摘要

2.3 微观搜索空间 本节摘要:微观搜索空间把镜头对准 Cell 内部,只搜基本单元的结构——节点、边、操作与控制流。本节讲清这四个核心概念,分析微观空间的搜索效率、结构异构性、可迁移性三大优势,并通过 NASNet(Normal Cell/Reduction Cell + 代理任务)、DARTS(连续松弛 + 超网络)、AmoebaNet(进化 + 年龄正则化)三个案例,说明"设计一次、复用多次"如何在实践中落地。

2.3 微观搜索空间

本节摘要:微观搜索空间把镜头对准 Cell 内部,只搜基本单元的结构——节点、边、操作与控制流。本节讲清这四个核心概念,分析微观空间的搜索效率、结构异构性、可迁移性三大优势,并通过 NASNet(Normal Cell/Reduction Cell + 代理任务)、DARTS(连续松弛 + 超网络)、AmoebaNet(进化 + 年龄正则化)三个案例,说明"设计一次、复用多次"如何在实践中落地。

学习目标

阅读完本节,你应当能够:

  1. 说出微观搜索空间中 Cell、节点、边、控制流四个概念各自的角色
  2. 解释 Normal Cell 与 Reduction Cell 的分工及背后的分辨率逻辑
  3. 对比 NASNet、DARTS、AmoebaNet 三个微观搜索空间实例的异同
  4. 评价微观空间的优势(效率、异构、迁移)与劣势(全局优化受限、先验依赖)

一、问题与直觉:从"盖整栋楼"到"设计一间标准间"

宏观搜索空间有个致命伤:空间随网络深度呈指数级膨胀。你每多搜一层,候选数就翻几倍,搜 30 层就天文数字了。研究者们的对策很朴素——既然网络本质上是重复结构的堆叠,那我只搜"一个标准间",然后整栋楼都用它来盖,不就行了?

这就是微观搜索空间的"设计一次、复用多次"思想。SOURCE 把它比作细胞核:细胞核的精巧设计决定了细胞的功能,进而影响整个生物体的特性。搜一个高性能的 Cell,堆叠 N 次构成网络,搜索空间从"全网结构"塌缩到"一个 Cell 的内部结构",成本降几个数量级。附带的好处是迁移性——Cell 设计得通用,换个数据集、换类任务,同一个 Cell 还能用。这就是为什么 NASNet 在 CIFAR-10 上搜出 Cell 后,可以直接把 Cell 搬到 ImageNet 上堆更大网络。

代价也清楚:网络只剩一种"标准间"形态,全局结构的灵活性受限。万一最优解需要"非标准间"的架构(比如不同阶段用不同 Cell),微观空间就找不到它。这是微观空间的固有边界,工程上要心里有数。

二、核心原理:四个概念与三个案例

概念一:Cell/Block。Cell 是构成网络的重复单元,负责对输入特征做变换。NASNet 定义了两类 Cell:Normal Cell 保持特征图尺寸不变,负责"精加工";Reduction Cell 减小特征图尺寸,扮演传统 CNN 里池化层的角色,负责"降采样"。两种 Cell 分工明确,一起搭出层次化的特征提取管线。

概念二:节点(Node)。Cell 内部的计算单元,每个节点执行一种操作(卷积、池化、激活等),接收前驱输入、输出给后继。节点在 Cell 内通常组织成有向无环图(DAG),节点的连接关系就是搜索对象。

概念三:边与操作(Edge/Operation)。边连接节点并定义数据流动路径,每条边上挂一个操作。常见操作有:不同尺寸的卷积(3x3、5x5)、深度可分离卷积、最大/平均池化、ReLU 等激活、空洞卷积(不增参数扩感受野)、跳跃连接/Identity、Zero(表示无连接,用于剪枝)。操作集合的选择是设计核心——集合太小,搜索空间缺乏灵活性;太大,搜索难度失控。

概念四:控制流(Control Flow)。Cell 之间的连接与堆叠方式。最简单的是线性堆叠(ResNet/VGG 都是线性堆);进阶是分层堆叠,把 Cell 分成阶段(Stage),不同阶段用不同 Cell 或不同深度;更复杂的还有循环连接、图结构连接。控制流决定"标准间"怎么盖成"楼"。

上图是一个最小 Cell 示意:输入分流给两个节点,各自做完操作后融合,再输出。搜索算法的任务就是决定"节点做什么操作、谁连谁、最后怎么融合"。

案例一:NASNet。搜索对象是 Normal Cell 和 Reduction Cell。每个 Cell 含 B 个 Block,每个 Block 由两个输入节点和一个输出节点组成。操作集合含卷积、池化、ReLU、Identity。用 RNN 控制器 + 强化学习搜 Cell 结构,关键创新是代理任务——先在 CIFAR-10 这类小数据集上搜 Cell,再把搜到的 Cell 搬到 ImageNet 上堆大网络。代理任务把搜索成本降了一个台阶,这是第 4 章评估策略的预告。

案例二:DARTS。把 Cell 表示成节点-边 DAG,每条边预置一组候选操作,用 softmax 对操作加权——这就是连续松弛。Cell 内 N 个节点,边连接与操作权重都变成连续变量,用梯度下降联合优化超网络权重和架构参数。搜索完成后,每条边取权重最高的操作离散化。DARTS 的优雅在于"离散搜索变连续优化",代价是退化问题(操作权重失衡导致结构过于简单)和超参数敏感。

案例三:AmoebaNet。同样是 Cell 空间,改用进化算法搜索。随机初始化 Cell 种群,用锦标赛选择挑个体,复制变异生成新种群。关键创新是年龄正则化(Age Regularization)——新生成的个体有"年龄"属性,年龄小的个体优先保留,鼓励算法探索新结构、避免过早收敛到局部最优。AmoebaNet 在 ImageNet 上达到与 NASNet 相当的性能,搜索效率更高。

方法 搜索算法 Cell 设计 关键技巧
NASNet 强化学习 RNN 控制器 Normal/Reduction Cell 代理任务加速
DARTS 梯度优化 节点-边 DAG + softmax 连续松弛
AmoebaNet 进化算法 同 NASNet 的 Cell 形态 年龄正则化

三、工程实践要点:微观空间的优势与权衡

优势复盘。搜索效率:只搜一个 Cell 的内部结构,空间大幅缩小,有限算力也能搜复杂网络。结构异构性:Cell 内部允许精细的操作组合与复杂连接,产出比宏观空间更多样的结构。迁移性:Cell 设计模块化通用,换任务不必重搜。可解释性:模块化结构更易分析。硬件效率:精细设计能搜出适合移动端部署的轻量 Cell。

劣势要认。设计复杂:节点数、边连接、操作集合的每个选择都影响结果,设计 Cell 空间本身需要经验。全局优化受限:只优化局部 Cell,Cell 堆叠方式、阶段间交互这类全局因素被固化,可能错过全局更好的结构。先验依赖:操作集合、Cell 基本形态都要靠先验定义,先验错则全盘错。

实践建议。第一,操作集合宁缺毋滥——从 5-8 个操作起步(3x3/5x5 卷积、深度可分离卷积、池化、Identity),验证搜索有效后再加操作。第二,Cell 规模从小到大——先搜 3-4 节点的小 Cell 验证评估流程,再放大节点数。第三,重视 Reduction Cell 的定位——它决定特征图怎么降,对网络整体效率影响极大,别只盯着 Normal Cell 的精度。

⚠️ 常见坑:DARTS 类连续方法搜完的 Cell 直接重训,发现性能崩了——连续松弛的架构参数与离散化后的真实性能存在 gap。搜完一定要用"离散化架构 + 从头训练"复验一遍,这是 DARTS 的必修课。

💡 关键直觉:微观空间的本质是"用结构复用换搜索效率"。复用的对象越通用,迁移收益越大;复用的代价是全局灵活性,这是它与宏观空间之间永远存在的跷跷板。

四、案例续读:AmoebaNet 的细节与 DARTS 的退化应对

AmoebaNet 的进化细节

SOURCe 对 AmoebaNet 的描述值得读细:每个 Cell 含 B 个 Block,每个 Block 由两个输入节点和一个输出节点组成,操作集合含卷积、池化、ReLU、Identity。搜索流程是:随机初始化 Cell 种群 → 锦标赛选择 → 变异(改 Cell 内部结构)→ 交叉(交换两个 Cell 的部分结构)→ 评估适应度 → 迭代。AmoebaNet 与 NASNet 共享同一套搜索空间设计,区别只在搜索策略——一个用强化学习,一个用进化。这个对照说明一个重要事实:搜索空间与搜索策略是正交的两个决策,同样的空间可以配不同的策略。这也是本教程把第 2 章(空间)和第 3 章(策略)分开讲的原因。

DARTS 退化问题的三个应对套路

DARTS 搜索时可能退化:某条边收敛到只选 Identity 或池化这类"廉价操作",网络结构变得过于简单,性能随之崩盘。SOURCe 在 2.3 节列出了 DARTS 的缺点,第 3.4 节会再展开。这里先给三个业界常用的应对套路,读到第 3.4 节时可以回来对照:

套路一:操作集合去廉价化。 别把 Identity 和池化放太多——它们是退化的"避风港",搜索容易躲进去偷懒。把操作集合限定在"有实质计算"的操作上,退化空间就小很多。

套路二:架构正则化。 给架构参数加正则,惩罚过于偏斜的权重分布,逼搜索保持多样性,防止某条边的 softmax 过早收敛成 one-hot。

套路三:重训复验。 搜索完无论如何都要把离散化架构独立重训,跟搜索分数对比——退化架构重训后分数必然崩,这一验就能当场识破。这个套路其实是第 4 章"定稿必须完全训练"纪律在 DARTS 场景的具体化。

五、FAQ:微观空间设计的高频问题

Cell 里节点数越多越好吗?

不是。节点多意味着 Cell 内连接数爆炸(节点两两可连,连接数按平方涨),搜索空间随之膨胀,评估更贵、更易退化。NASNet/DARTS 常用的节点数在 4-8 之间,先小后大是稳妥路线。记住:Cell 空间的价值在于"小",把 Cell 做大就背离了它的初衷。

Normal Cell 和 Reduction Cell 必须都搜吗?

都可以。NASNet 两个都搜,因为降采样策略对网络影响大;也有方法只搜 Normal Cell、Reduction Cell 用固定设计(比如固定用 2x2 池化)。工程上建议:第一次实验先固定 Reduction Cell,只搜 Normal Cell,降低搜索难度;跑通后再把 Reduction Cell 放开。分步放开永远比一把抓稳。

"设计一次、复用多次"的迁移真的可靠吗?

有条件地可靠。Cell 在同类任务间迁移(CIFAR 到 ImageNet)经验上很成功;跨类任务(图像到文本)就需要重新验证——文本的 Cell 结构(循环单元)跟图像完全不同。SOURCe 对迁移性的描述是"可以灵活地堆叠和迁移到不同的任务和数据集",注意这个"可以"的前提是结构先验相通。迁移前做一次小规模验证,比默认"一定可行"靠谱。

收束:微观空间与宏观空间的配合关系

最后把两节连起来看:宏观空间管"楼型",微观空间管"标准间",真实 NAS 系统里两者是嵌套关系——宏观决定"搜几个阶段、每个阶段多深多宽、放几个 Reduction Cell",微观决定"每个 Cell 内部的节点连接与操作"。DARTS 搜的是微观(Cell 内部),宏观堆叠方式是手工定的;也有方法把两层一起搜,空间随之爆炸。工程上的成熟路线是:宏观手工先验设定,微观自动搜索——把人的经验用在"整体格局"上,把算法的能力用在"细节打磨"上,各得其所。这也是本教程建议多数 NAS 初学者的起步配置。

  • 四个概念:Cell、节点、边/操作、控制流,构成微观空间的最小语言
  • 两类 Cell 分工:Normal Cell 保持分辨率,Reduction Cell 降分辨率
  • 操作集合要克制:集合大小直接决定空间难度与灵活性
  • NASNet 的代理任务:小数据集搜 Cell,大数据集复用,成本降一档
  • DARTS 的连续松弛:离散变连续,但退化问题与 gap 要复验
  • AmoebaNet 的年龄正则化:鼓励探索新结构,避免过早收敛
  • 跷跷板权衡:结构复用换效率,全局灵活性让位

下一节解决一个实操问题:搜出来的架构怎么"说"给算法听——搜索空间的编码方式。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U