长期以来,设计神经网络的架构一直被视为一门玄学——直觉、经验与反复试验的结合。但如果我们能将这个过程自动化呢?如果一个 AI 能设计出更强大的 AI 呢?这就是神经架构搜索 (Neural Architecture Search, NAS) 的前景,该领域已经诞生了一些计算机视觉中性能最优秀的模型。
然而,这种强大的能力在过去一直伴随着惊人的成本。早期的顶尖方法,如谷歌的 NASNet,需要巨大的计算资源——500 张高端 GPU 连续运行 4 天,训练和评估 20,000 种不同的架构。这样的要求,让没有大型数据中心的多数研究人员或机构望而却步。
渐进式神经架构搜索 (Progressive Neural Architecture Search, PNAS) 应运而生: 这是一种更智能、更高效的方式来寻找高性能架构。PNAS 能够在达到先前方法相同准确率的同时,做到模型评估效率高出 5 倍,总计算速度快 8 倍。PNAS 不是盲目地在巨大的可能性空间中搜索,而是从简单开始,逐步增加复杂性,并利用一个学习到的模型来引导搜索方向。
在本文中,我们将探索 PNAS 的工作原理——从其渐进式搜索策略到性能预测器——以及各项结果如何使它成为自动化机器学习领域的一个里程碑。
背景: 为什么架构搜索如此困难
在 PNAS 之前,主流的 NAS 方法主要有两种:
强化学习 (Reinforcement Learning, RL) :
一个基于 RNN 的控制器学习策略来生成描述神经架构的序列。每个生成的架构都会被训练,其验证准确率将作为奖励来更新控制器。经过数千次迭代,更优秀的架构逐渐涌现。NASNet 就是著名的例子。演化算法 (Evolutionary Algorithms, EA) :
将架构视作一个基因组群体。性能最好的模型通过**突变 (随机更改) 和交叉 **(混合两个架构的部分) 来“繁殖”,逐步演化出更好的解决方案。
这两种方法都很强大,但成本极高: 它们从一开始就搜索完全指定、复杂度很高的架构。这导致反馈缓慢、计算开销巨大。
NASNet 的一个关键想法是搜索单元 (cell) 而不是整个 CNN。
一个单元是一个小型网络模块,通过堆叠可以构造完整 CNN——这大大缩小了搜索空间,并使其能够迁移到其他数据集。
PNAS 采用相同的基于单元的搜索空间,但在策略上进行了创新。
核心思想: 渐进式神经架构搜索
PNAS 建立在一个简单理念之上:
从小处着手,逐步增加复杂度,并且只训练那些最有潜力的架构。
搜索空间: 单元与块
一个单元 (cell) 是一个由 B
个块 (block) 组成的有向无环图。
一个块执行以下操作:
- 接收两个输入。
- 对每个输入应用选定的操作。
- 通过逐元素相加合并结果。
输入可以来自:
- 同一单元中较早块的输出。
- 整个 CNN 中前两个单元的输出。
操作从一个紧凑且高效的 8 个选项中选择:
- 深度可分离卷积 (3×3、5×5、7×7) 。
- 平均池化 (3×3) 。
- 最大池化 (3×3) 。
- 1×7 卷积后接 7×1 卷积。
- 3×3 空洞卷积。
- 恒等映射。
CNN 通过堆叠学到的单元副本构建——有时通过步长为 2 的单元进行空间下采样。
图 1. 左: PNAS 找到的最佳单元结构 (PNASNet-5) 。
右: 通过堆叠单元构建 CIFAR-10 和 ImageNet 的 CNN。
即使已经做了这种简化,搜索所有可能的 5 块单元仍然会产生约 \(10^{12}\) 种独特结构——暴力搜索完全不可行。
渐进式搜索策略
PNAS 分阶段、逐级地搜索:
级别 1 (B=1) :
评估所有可能的单块单元 (共 136 种独特结构) 。它们训练很快,可提供初始关键数据。级别 2 (B=2) :
基于每个单块单元,添加所有可能的第二块——生成超过 100,000 个双块候选架构。预测与选择:
不训练所有候选,而是用性能预测器快速打分,只挑选排名前 K (如 K=256) 的架构进行训练。训练与更新:
训练这些前 K 个单元,并利用结果改善预测器。重复:
扩展、预测、选择、训练与更新,直到达到目标深度 (如 B=5) 。
图 2. 在预测器指导下的渐进式搜索: 从 S1 (B=1) 开始,扩展到 S′2,预测评分,选择前 K 个形成 S2,训练,再重复此过程直到深度 B。
优点:
- 效率高: 跳过不具潜力的架构。
- 反馈快: 小模型训练快,有助于早期改进预测器。
- 聚焦外推: 预测器对比以往刚稍大一些的模型进行排序。
算法概述
图 3. 渐进式神经架构搜索算法的简化伪代码。
秘密武器: 性能预测器
预测器为候选单元打分,只有排名靠前的 K 个才能进入训练阶段。预测器无需完美,只需排序正确。
要求
- 支持可变长度输入: 能为比训练集中更大的单元打分。
- 与真实性能排序一致: 预测排名应与实际排名相符。
- 样本效率高: 能从少量训练实例中学习。
测试过的模型
RNN 预测器 (LSTM) :
读取标记序列 (块的输入与操作) 。天然支持可变长度。MLP 预测器:
将每个块的标记嵌入表示,然后在所有块上求平均,形成固定长度向量。
为减少方差,PNAS 使用了5 个预测器的集成,每个都在数据的不同子集上训练。
预测器效果如何?
研究人员用斯皮尔曼等级相关系数来衡量预测与实际性能的相关性。
图 4. 顶行: 相同尺寸模型 (当前级别) 的相关性很高。
底行: 外推到更大模型 (下一级) 时,相关性较低但依然为正。
表 1. MLP 与 RNN 预测器比较: MLP 集成在外推能力上略胜一筹——这是 PNAS 的关键应用。
效率之战: PNAS vs NAS vs 随机搜索
在相同搜索空间内,PNAS 与以下方法对比:
- 基于强化学习的 NASNet
- 随机搜索
图 5. PNAS 更快找到优模型;曲线攀升更陡。
表 2. 效率对比: PNAS 用极少的模型评估就能达到 NAS 的准确率。
PNAS 的优势:
- 在模型评估数量上高出 5 倍的效率
- 约快 8 倍的总计算速度: 避免了 NAS 耗时的重排序阶段
最终性能: CIFAR-10 与 ImageNet
CIFAR-10
最佳单元 PNASNet-5 测试错误率 3.41% —— 与 NASNet-A 相当,但计算开销减少 21 倍。
表 3. CIFAR-10 结果: 以极低搜索成本实现相当或更高精度。
ImageNet 迁移
在 CIFAR 找到的单元在 ImageNet 上有效吗?是的。两者性能高度相关 (ρ=0.727) 。
图 6. 高相关性表明在 CIFAR-10 上搜索是大数据集搜索的有效代理。
ImageNet 结果
**移动端设定 **(224×224 输入,<600M 次乘加运算) :
表 4. 移动端设定: PNASNet-5 与 NASNet-A 及顶级演化模型竞争力相当。
**大型设定 **(331×331 输入) :
表 5. 大型设定: PNASNet-5 达到 top-1 = 82.9%,top-5 = 96.2%,超过 NASNet-A 并与 SENet 相当。
结论与未来方向
PNAS 是向实用化、可普及的自动化架构搜索迈进的重要一步。通过从简单到复杂的逐步推进和预测引导:
- 它以极低预算实现了 state-of-the-art 的结果。
- 让缺乏海量计算的研究人员也能做有效 NAS 实验。
- 证明了智能搜索胜过蛮力搜索。
核心要点:
- 由简到繁的搜索策略在巨大空间中极为高效。
- 代理模型可有效引导探索过程。
- 提升效率能让更多研究者参与 ML 研究。
未来的潜在方向包括:
- 更优的预测器 (如带字符串核的高斯过程) 。
- 对无前途架构进行早停。
- 从较小父模型热启动更大模型。
- 用贝叶斯优化选择候选。
- 自动探索速度与精度的权衡。
PNAS 不只找到一个顶级模型——它给我们提供了一份蓝图,让我们能在不耗尽资源的情况下,找到更多这样的模型。