ICLR 2019

DARTS: Differentiable Architecture Search
可微分架构搜索 — 用梯度下降设计神经网络

Liu, Simonyan, Yang · CMU · DeepMind · Google Brain

arXiv: 1806.09055 ICLR 2019 被引 8000+

论文基本信息

标题DARTS: Differentiable Architecture Search
作者Hanxiao Liu, Karen Simonyan, Yiming Yang
机构CMU · DeepMind · Google Brain
发表ICLR 2019 (Oral)
标签 Neural Architecture Search Differentiable Bilevel Optimization Continuous Relaxation Gradient Descent

This paper addresses the scalability challenge of architecture search by formulating the task in a differentiable manner. Unlike conventional approaches of applying evolution or reinforcement learning over a discrete and non-differentiable search space, our method is based on the continuous relaxation of the architecture representation, allowing efficient search of the architecture using gradient descent.

背景与动机:NAS的效率瓶颈

神经架构搜索(NAS)的目标是自动化神经网络设计。此前的方法已取得令人瞩目的成果,但存在根本性问题:

效率瓶颈:
• NASNet(Zoph et al., 2018):2000 GPU天(强化学习)
• AmoebaNet(Real et al., 2018):3150 GPU天(进化算法)

原因在于:这些方法将架构搜索视为离散空间上的黑箱优化——每次评估候选架构都需要完整训练到收敛。

此前的加速方案(人工设计搜索空间、权重共享、性能预测等)只是在"离散搜索+黑箱优化"框架下修修补补。DARTS提出了截然不同的思路:把架构搜索变成可微分的优化问题,用高效的梯度下降替代低效的黑箱搜索。

核心方法:连续松弛化与双层优化

Step 1
连续松弛
Step 2
梯度优化
Step 3
离散化
DARTS三步骤:连续松弛 → 梯度优化 → 最终离散架构

3.1 搜索空间:有向无环图(DAG)细胞

遵循NAS的前期工作,DARTS搜索计算细胞(Cell)作为架构基础构建块。一个Cell是有序节点序列的DAG:

// Cell = 有向无环图 (DAG),N个节点 // 节点 x^(i):潜在表示(特征图) // 边 (i,j):操作 o^(i,j) 转换 x^(i) // 中间节点的计算: x(j) = i<j o(i,j)( x(i) ) // 输入:前两层输出(卷积)或 当前输入+上一步状态(RNN) // 输出:所有中间节点拼接

3.2 连续松弛——关键创新

传统NAS中,每条边上的操作是离散选择(argmax)。DARTS将其松弛为连续概率分布

// 连续松弛:用softmax替代argmax o_bar(i,j)(x) = o∈O softmax(αo(i,j)) · o(x) // α^(i,j) = 架构参数(Architecture Parameters) // 松弛后每条边是所有候选操作的加权混合 // 搜索结束:取权重最大操作 → 离散架构

这个松弛的意义是革命性的——架构搜索从离散组合优化变成了连续优化,可以用梯度下降学习 α 了!

3.3 双层优化(Bilevel Optimization)

松弛后需要同时优化两类参数:

  • 架构参数 α:控制操作选择(上层变量)
  • 网络权重 w:各操作内部参数(下层变量)
// 双层优化问题 minα Lval( w*(α), α ) // 上层:最小化验证损失 s.t. w*(α) = argminw Ltrain( w, α ) // 下层:最小化训练损失
  • 内层:给定架构α,训练权重w使训练损失最小化
  • 外层:在验证集上评估,优化架构α使验证损失最小化
设计洞察:验证损失衡量网络泛化能力。只用训练损失优化架构会导致过拟合。双层优化天然分离了"训练权重"和"评估架构"两个角色。

高效的架构梯度近似

双层优化理论上优雅,但计算困难——内层优化需训练到收敛。DARTS采用单步展开(One-step Unrolling,来自MAML思想):

// 精确梯度(昂贵)α Lval( w*(α), α ) // 近似:用一步梯度更新后的w代替w* ≈ ∇α Lval( w − ξ∇wLtrain(w, α), α )

二阶项 + 有限差分

展开链式法则后,梯度含一个矩阵-向量乘积项。DARTS用有限差分将复杂度从 O(|α||w|) 降到 O(|α|+|w|)

计算效率:只需2次前向 + 2次反向传播即可计算二阶梯度,与网络规模线性相关。

一阶近似

ξ = 0,梯度简化为 αLval(w, α)。速度更快,但性能略差。

完整算法

DARTS
对每条边 (i,j),创建混合操作,用架构参数 α 参数化
while 未收敛 do
  1. 更新架构 α:下降 ∇αLval(w−ξ∇wLtrain(w,α), α)
  2. 更新权重 w:下降 ∇wLtrain(w, α)
end while
基于学习到的 α 导出最终离散架构(argmax)

实验与结果

CIFAR-10 图像分类

2.76%
测试错误率
3.3M
参数量
4 GPU天
搜索成本

在CIFAR-10上,DARTS发现的最佳卷积Cell达到 2.76% ± 0.09% 测试错误率,与SOTA进化方法(AmoebaNet)相当,但搜索速度快了三个数量级

// 计算资源对比(CIFAR-10) DARTS : 4 GPU天 NASNet : 2000 GPU天 (RL) AmoebaNet : 3150 GPU天 (Evolution)

ImageNet 迁移学习

26.7%
Top-1错误率
8.6%
Top-5错误率
4.7M
参数量

将CIFAR-10搜索到的Cell迁移到ImageNet(移动端,600M FLOPs约束),DARTS达到26.7% Top-1错误率。与NASNet(26.0%)高度接近——但搜索成本为NASNet的1/500

Penn Treebank (PTB) 语言建模

55.7
PTB测试困惑度
24M
参数量
1 GPU天
搜索成本

DARTS发现的RNN Cell在PTB上获得55.7测试困惑度,超越精心调优的LSTM(56.9)和所有之前自动搜索的Cell(NAS 62.1, ENAS 58.6)。搜索仅需1 GPU天

关键对比:二阶 vs 一阶近似
• 二阶近似(ξ > 0):CIFAR-10 2.83%,PTB 56.1
• 一阶近似(ξ = 0):CIFAR-10 3.00%,PTB 60.0
结论:二阶近似显著优于一阶,验证了单步展开+有限差分的有效性。

历史影响:DARTS引发的浪潮

DARTS的发表对NAS领域产生了深远影响,使架构搜索变得触手可及

  • 可微分NAS的范式确立:DARTS开辟了可微分架构搜索全新方向,后续大量工作(GDAS, SNAS, PC-DARTS, ProxylessNAS等)在其框架上改进
  • 搜索效率的革命:将NAS从数千GPU天降至几天,使普通研究者也能参与
  • 简单胜于复杂:不需要控制器(RL)、超网络、性能预测器等复杂组件,仅用梯度下降就达到了SOTA
  • 跨领域适用:同时适用于卷积网络和循环网络,证明了方法的通用性

后续发展与局限

2019 · SNAS / GDAS
改进DARTS搜索方向的随机性和梯度估计,提出更稳定的可微分NAS变体。
2020 · PC-DARTS
通过通道采样大幅降低DARTS搜索计算量,部分解决内存瓶颈。
2021 · DARTS的稳定性问题
多项研究揭示DARTS搜索不稳定——"跳跃连接退火"和操作不平衡问题促使改进方案涌现。
2022+ · DARTS+ / FairDARTS / DARTS-PT
通过辅助损失、正则化、早停等策略,大幅提升DARTS搜索的稳定性与可复现性。

对AI研究生的启示

  • 松弛的思想:当离散优化困难时,考虑能否"松弛"为连续问题。这个技巧不仅适用于NAS——在很多AI问题上,用连续松弛替代离散选择是一个强大的设计模式。
  • 双层优化:当需要同时优化两个耦合的目标时,双层优化是自然的数学框架。它不仅在NAS中有用,在超参数优化、元学习等领域也广泛应用。
  • 近似不一定是坏东西:用单步展开替代完整内层优化看似粗糙,但实验证明它工作得非常好。在深度学习中,一个聪明的一阶近似往往比昂贵的精确计算更实用。
  • 效率与效果的平衡:DARTS展示了恰当的设计可以在效果和效率之间取得卓越平衡——这正是好研究的标志。
一句话总结:DARTS通过连续松弛将架构搜索从离散黑箱优化转化为可微分优化,用4 GPU天达到了之前2000+ GPU天的效果,成为可微分NAS的奠基之作。
NAS Differentiable Architecture Search CIFAR-10 ImageNet Neural Networks ICLR 2019 CMU DeepMind