
摘要
现有的神经架构搜索(Neural Architecture Search, NAS)方法要么采用离散编码来表示神经架构,这类方法难以扩展;要么采用基于监督学习的方法,联合学习架构表示并在此表示基础上优化架构搜索,但这会引入搜索偏差。尽管这些方法已被广泛使用,但NAS中学习到的架构表示仍缺乏深入理解。我们观察到,当架构表示学习与搜索过程耦合时,神经架构的结构特性在潜在空间中难以有效保持,从而导致搜索性能下降。在本研究中,我们通过实证发现:仅使用神经架构本身(不依赖其准确率作为标签)进行预训练,可显著提升下游架构搜索的效率。为解释这一现象,我们可视化了无监督架构表示学习的过程,发现其更有利于将具有相似连接结构和操作符的神经架构聚集在潜在空间中的相近区域。这使得性能相近的神经架构在潜在空间中被映射至同一区域,从而实现潜在空间中架构之间的平滑过渡,显著提升了多种下游搜索策略的多样性与有效性。
代码仓库
MSU-MLSys-Lab/arch2vec
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| architecture-search-on-cifar-10-image | arch2vec | Params: 3.6 Percentage error: 2.56 Search Time (GPU days): 10.5 |
| neural-architecture-search-on-cifar-10 | arch2vec | Parameters: 3.6M Search Time (GPU days): 10.5 Top-1 Error Rate: 2.56% |
| neural-architecture-search-on-nas-bench-201 | arch2vec | Accuracy (Test): 46.27 |
| neural-architecture-search-on-nas-bench-201-1 | arch2vec | Accuracy (Test): 94.18 Accuracy (Val): 91.41 Search time (s): 12000 |
| neural-architecture-search-on-nas-bench-201-2 | arch2vec | Accuracy (Test): 73.37 Accuracy (Val): 73.35 |