
摘要
传统的神经架构搜索(Neural Architecture Search, NAS)方法通常基于强化学习或进化策略,其在CIFAR-10数据集上寻找一个优良模型往往需要超过3000个GPU小时。为此,我们提出一种高效的NAS方法——通过梯度下降来学习搜索过程。该方法将搜索空间建模为有向无环图(Directed Acyclic Graph, DAG),其中包含数十亿个子图,每个子图对应一种特定的神经网络架构。为避免遍历所有可能的子图组合,我们设计了一种可微分的采样器(differentiable sampler)来对DAG进行高效采样。该采样器具有可学习性,并通过所采样架构在验证集上的损失进行优化。由此,整个搜索过程可采用端到端的方式,通过梯度下降进行训练,我们将其命名为基于可微分架构采样的梯度搜索方法(Gradient-based search using Differentiable Architecture Sampler, GDAS)。在实验中,我们的方法仅需约4个GPU小时即可完成一次完整的搜索过程,所发现的模型在CIFAR-10上达到2.82%的测试误差,且仅包含250万个参数,性能与当前最先进水平相当。相关代码已公开发布于GitHub:https://github.com/D-X-Y/NAS-Projects。
代码仓库
epfl-ml-reproducers/subspace-attack-reproduction
pytorch
GitHub 中提及
xxlya/COS598D_Assignment1
pytorch
GitHub 中提及
D-X-Y/AutoDL-Projects
pytorch
GitHub 中提及
rwbfd/OpenCompetitionV2
pytorch
GitHub 中提及
D-X-Y/GDAS
pytorch
GitHub 中提及
D-X-Y/NAS-Projects
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| neural-architecture-search-on-cifar-10 | GDAS | Search Time (GPU days): 0.21 Top-1 Error Rate: 3.4% |
| neural-architecture-search-on-cifar-10 | GDAS (FRC) | Search Time (GPU days): 0.17 Top-1 Error Rate: 2.5% |
| neural-architecture-search-on-nas-bench-201 | GDAS | Accuracy (Test): 41.71 Search time (s): 28926 |
| neural-architecture-search-on-nas-bench-201-1 | GDAS | Accuracy (Test): 93.61 Accuracy (Val): 89.89 Search time (s): 28926 |
| neural-architecture-search-on-nas-bench-201-2 | GDAS | Accuracy (Test): 70.70 Accuracy (Val): 71.34 Search time (s): 28926 |