神经网络架构搜索(Neural Architecture Search, NAS) 是自动化机器学习(AutoML)领域的核心技术。NAS旨在自动设计性能优越的深度神经网络架构,减少人工干预。
传统上,神经网络架构(如 ResNet、Inception、Transformer)是由人类专家耗费数月甚至数年时间精心设计的。NAS 的核心目标是将这一过程自动化:在给定的约束条件下(如计算量、延迟、内存、能耗),自动在巨大的架构候选空间中发现性能(如准确率、效率)最优的模型。
搜索空间定义了 NAS 算法可以"看到"和"选择"的所有可能的网络结构。它直接决定了算法的上限和搜索效率。
搜索策略决定了如何在庞大的搜索空间中高效地找到最优解。这相当于在地图上寻找宝藏的导航算法。
评估一个搜索到的架构有多好,是 NAS 中最昂贵的一步。如果每个候选架构都从头训练到收敛,搜索可能需要数千个 GPU 天。因此,高效的性能评估策略至关重要。
DARTS (Differentiable Architecture Search) 是 NAS 发展史上的里程碑。它将离散的搜索空间松弛为连续空间,使得可以用梯度下降来优化架构参数,搜索效率从数千 GPU 天降低到几个 GPU 天。
在离散搜索中,每条边只能选择一种操作。DARTS 使用 Softmax 将所有操作进行加权混合:
o(x) = Σ (exp(α_i) / Σ exp(α_j)) * op_i(x)
其中 α 是可学习的架构参数。搜索完成后,选择权重最大的操作离散化。
DARTS 需要同时优化两组参数:网络权重 w(训练集)和架构参数 α(验证集)。这是一个双层优化问题,DARTS 使用近似方法高效求解。
| 方法 | 搜索策略 | 搜索空间 | 搜索成本 | 代表成果 |
|---|---|---|---|---|
| NASNet (2017) | 强化学习 | Cell-based | ~2000 GPU天 | CIFAR-10 SOTA |
| ENAS (2018) | RL + 权重共享 | Cell-based | ~0.5 GPU天 | 大幅降低成本 |
| AmoebaNet (2018) | 进化算法 | Cell-based | ~3150 GPU天 | ImageNet SOTA |
| DARTS (2019) | 梯度优化 | Cell-based | ~1-4 GPU天 | 可微分高效 |
| EfficientNet (2019) | RL + 复合缩放 | 深度+宽度+分辨率 | 中等 | 精度-效率SOTA |
| Once-for-All (2020) | 渐进式训练 | 超网 | 训练一次 | 多硬件优化 |
神经网络架构搜索(NAS)正在重塑深度学习的开发范式。它将工程师从繁琐的架构调优中解放出来,专注于更高层面的搜索空间和策略设计。
NAS 不仅是一项技术,更是 AI 民主化的重要推动力。随着算法和硬件的进步,未来 AI 模型的设计将更加自动化、高效化和智能化。