神经架构搜索 是自动化机器学习的一个核心子领域,其目标是自动化地设计神经网络的结构。

NAS 尝试回答这个问题:
“针对我的特定任务(如图像分类、语言翻译)和数据集,什么样的神经网络架构(层类型、连接方式、超参数)能取得最佳性能?”
传统上,设计神经网络需要研究人员依靠深厚的领域知识、经验和大量的试错,这是一个耗时且成本高昂的过程,NAS 试图将这个过程自动化,用算法来“搜索”最优或近似最优的架构。
核心三要素
一个典型的 NAS 框架包含三个基本组成部分:
-
搜索空间:定义了所有可能被搜索的神经网络架构的集合。
- 链式结构:最简单的空间,网络是一层接一层的序列,搜索内容主要是每层的类型(卷积、池化等)和参数(卷积核大小、滤波器数量)。
- 多分支结构:更现代的空间,允许复杂的连接,如残差连接(ResNet)、密集连接(DenseNet)和单元重复结构,通常搜索一个“单元”,然后堆叠多个单元形成最终网络。
-
搜索策略:决定如何在搜索空间中探索和选择下一个要评估的架构,这是 NAS 算法的核心。
- 强化学习:早期经典方法,将架构生成视为一个序列决策过程,用一个控制器(通常是 RNN)来生成架构描述字符串,训练好的架构在任务上的准确率作为奖励,来更新控制器。
- 进化算法:受生物进化启发,维护一个架构种群,通过选择、交叉、变异等操作迭代进化出更好的架构。
- 基于梯度的方法:革命性的方法,代表工作是 DARTS,它将离散的架构选择松弛为连续变量,从而允许使用标准的梯度下降来同时优化架构参数和网络权重,搜索效率极高。
- 权重共享/单次方法:如 ENAS 和 One-Shot NAS,训练一个包含所有子架构的“超网络”,子架构共享超网络的权重,评估子架构时无需从头训练,只需在共享权重上做快速推理或微调,大幅降低计算成本。
- 基于预测器的方法:训练一个性能预测器,根据架构特征(如操作类型、连接数)预测其最终性能,从而引导搜索。
-
性能评估策略:如何快速且准确地评估一个候选架构的好坏。
- 标准训练验证:最准确但最耗时,每个候选架构都需要从头训练到收敛,再在验证集上测试。
- 低保真度评估:训练更少的周期、使用数据子集、降低图像分辨率等,以快速获得性能估计。
- 权重共享:如上所述,是当前主流的加速评估策略。
NAS 的主要类别
- 根据搜索目标分类:
- 单目标NAS:通常只优化模型在验证集上的性能(准确率)。
- 多目标NAS:同时优化多个目标,性能 vs. 效率(模型大小、推理延迟、能耗),这在移动端和边缘设备上至关重要。
- 根据部署场景分类:
- 硬件感知NAS:在搜索时直接考虑目标硬件平台(如CPU、GPU、手机芯片)的延迟或功耗,搜索出在该硬件上高效的架构。
一个简单比喻
- 传统人工设计:就像你亲手画图纸、选材料,一砖一瓦地盖房子。
- 神经架构搜索:就像你告诉一个智能建筑机器人(搜索策略)你想要什么样的房子(任务目标),它在一个巨大的设计库(搜索空间)里尝试成千上万种组合,并快速模拟测试(性能评估)每种房子的坚固度和舒适度,最后为你推荐几个最优设计方案。
优势和挑战
优势:
- 自动化与降低门槛:减少对专家经验和大量试错的依赖。
- 发现新颖结构:可能发现人类设计者未曾想到的高效结构(如 NASNet 中的 “Normal Cell” 和 “Reduction Cell”)。
- 实现极致优化:可以针对特定数据集、任务和硬件平台进行精细优化,达到 Pareto 最优(在给定限制下性能最好)。
挑战与局限性:
- 巨大的计算成本:即使有权重共享等方法,大规模的 NAS 仍需要数百甚至数千 GPU 天的计算,能耗和费用高昂。
- 搜索结果的可复现性与泛化性:在一个数据集(如 CIFAR-10)上搜索到的最佳架构,在另一个数据集(如 ImageNet)上不一定最优,且搜索过程本身随机性较强。
- 搜索空间的设计偏置:最终搜到的架构质量极大程度上受限于预设的搜索空间,如果搜索空间设计不好,算法再优秀也找不到好架构。
- 对超参数的敏感性:NAS 算法本身有很多超参数(如学习率、控制器结构等),其设置会影响搜索结果。
著名成果与应用
- NASNet:谷歌早期用强化学习搜索出的图像分类网络,在 ImageNet 上达到了当时顶尖水平。
- EfficientNet:通过复合缩放模型深度、宽度和分辨率,并使用 NAS 搜索基础模型,在准确率和效率之间取得了卓越的平衡,成为工业界标杆。
- MobileNetV3:结合硬件感知 NAS 和人工设计,为移动设备优化的轻量级网络。
- Transformer 架构的搜索:有工作尝试用 NAS 搜索更高效的 Transformer 变体,用于 NLP 和视觉任务。
当前趋势
- 可负担/平民化 NAS:研究更高效、计算成本更低的搜索方法,让普通研究者和公司也能用得起。
- 零样本/预测器 NAS:致力于不经过任何训练就能预测架构性能,实现即时搜索。
- 与基础模型结合:在大规模预训练模型(如 ViT, GPT)的基础上进行架构搜索或微调,以适应下游任务。
- 更广阔的搜索空间:不仅搜索前馈架构,还搜索优化器、激活函数、数据增强策略等,即 AutoML。
神经架构搜索是连接自动化与深度学习模型设计的桥梁,它已经从最初计算密集的“学术奢侈品”,逐渐发展成为实用化工具,特别是在需要权衡模型性能和效率的场景中,虽然仍面临成本、泛化性等挑战,但它无疑是推动机器学习民主化和模型设计进步的重要力量,对于从业者而言,理解其原理有助于判断何时以及如何利用这项技术。