DARTS

分类: NAS与自动化设计

DARTS

定义

可微分神经架构搜索方法,将离散的架构选择松弛为连续的架构参数,通过梯度下降联合优化架构和权重

数学形式

oˉ(i,j)(x)=oOexp(αo(i,j))oOexp(αo(i,j))o(x)\bar{o}^{(i,j)}(x) = \sum_{o \in \mathcal{O}} \frac{\exp(\alpha_o^{(i,j)})}{\sum_{o' \in \mathcal{O}} \exp(\alpha_{o'}^{(i,j)})} o(x)

其中 α\alpha 是架构参数,O\mathcal{O} 是候选操作集合

核心要点

将离散搜索空间转化为连续优化问题,搜索效率比 RL/进化高几个数量级

双层优化(bilevel optimization):外层优化架构参数 α\alpha,内层优化网络权重 ww

已知问题:performance collapse(搜索结果退化为全 skip-connection)

搜索成本约 1-4 GPU-days,远低于 RL-based NAS

代表工作

Liu et al., “DARTS: Differentiable Architecture Search” (ICLR 2019)

后续改进:P-DARTS, PC-DARTS, DARTS+, FairDARTS

相关概念

ViT

ImageNet