
摘要
神经架构搜索(Neural Architecture Search, NAS)旨在通过机器自动设计网络架构,被寄予厚望,有望在机器学习领域引发新一轮革命。然而,尽管期望甚高,现有NAS方案的有效性与效率仍不明确,部分近期研究甚至指出,许多现有NAS方法的实际表现并不优于随机选择架构。NAS效率低下的主要原因在于架构评估的不准确:为加速搜索过程,近期方法普遍采用共享网络参数的方式,在大规模搜索空间中对多个候选架构进行欠训练(under-training)并行评估;然而,这种做法导致了架构评分的偏差,进一步削弱了NAS的有效性。针对上述问题,本文提出将NAS的大规模搜索空间划分为模块化块(blocks),以确保候选架构能够得到充分训练。这一策略有效缓解了因参数共享带来的表征偏移(representation shift),从而实现对候选架构的准确评估。得益于块级(block-wise)搜索机制,我们还可对同一块内的所有候选架构进行完整评估。此外,我们发现网络模型的知识不仅体现在其参数中,也深植于其架构结构之中。因此,本文提出从教师模型中蒸馏神经架构(即“神经架构知识”或DNA)作为监督信号,指导块级架构搜索,显著提升了NAS的有效性。值得注意的是,所搜索得到的架构性能甚至超越了教师模型,充分验证了本方法的实用性与可扩展性。最终,该方法在移动设备场景下于ImageNet数据集上实现了78.4%的Top-1准确率,较EfficientNet-B0提升了约2.1个百分点,达到当前最优水平。所有搜索得到的模型及其评估代码均已公开,可供研究与应用参考。
代码仓库
changlin31/DNA
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| neural-architecture-search-on-cifar-10 | DNA-c | Top-1 Error Rate: 1.7% |
| neural-architecture-search-on-cifar-100-1 | DNA-c | Percentage Error: 11.7 |
| neural-architecture-search-on-imagenet | DNA-d | Accuracy: 78.4 FLOPs: 611M Params: 6.4M Top-1 Error Rate: 21.6 |
| neural-architecture-search-on-imagenet | DNA-c | Accuracy: 77.8 FLOPs: 466M Params: 5.3M Top-1 Error Rate: 22.2 |
| neural-architecture-search-on-imagenet | DNA-b | Accuracy: 77.5 FLOPs: 406M Params: 4.9M Top-1 Error Rate: 22.5 |
| neural-architecture-search-on-imagenet | DNA-a | Accuracy: 77.1 FLOPs: 348M Params: 4.2M Top-1 Error Rate: 22.9 |