这篇文章发表在ICLR 2020公认的焦点论文“NAS-BENCH-201:扩展可再现神经结构搜索的范围”中,以供解释。本文提出的NAS-Bench-201可以大大提高NAS算法的可重复性,降低NAS算法的计算要求(例如,搜索仅需0.1秒)。
作者信息
背景
神经网络结构对深度学习领域各种应用的性能起着至关重要的作用。目前,网络结构的设计范式已经从专家手工设计逐渐转变为机器自动搜索。神经架构搜索(NAS)是研究如何在给定的搜索空间中自动发现高性能、高精度、高效率的网络结构。
近几年来,越来越多的研究者投入到NAS的研究领域,提出了越来越多的NAS方法,并在整个领域取得了许多突破。是时候回顾一下NAS的优缺点了。NAS不仅以其良好的性能而闻名,而且由于其庞大的计算需求也使许多研究人员望而却步。同时,各种NAS算法的实验设置也不尽相同,很难公正地衡量一个NAS算法的真实性。
为了进一步提高NAS算法的可重复性,降低NAS算法的计算需求,让大家关注NAS算法的本质,并启发后续的NAS算法,我们提出了NAS-Bench-201。
什么是NAS-Bench-201?
NAS-Bench-201在基于不同超参数的不同随机数种子的三个数据集(CIFAR-10、CIFAR-100、ImageNet-16-120)上训练了15000多个神经网络。提供重要信息,如每个训练周期后的训练和测试时间、训练集/验证集/测试集中模型的损失函数和精度、训练后模型参数、模型大小和模型计算量。NAS-Bench-201组织这些有用的诊断信息,并提供一个方便的API来获取它们。运行“pip install nas-bench-201”一键安装nas-bench-201的API。你将拥有15000多个神经网络的所有信息!下图是15000多个网络性能的可视化。
用途?
-
加速NAS算法。使用NAS-Bench-201等NAS算法,正则化进化算法/随机搜索/增强可以在0.1s内完成搜索过程,并给出所发现网络的性能。
-
实时跟踪NAS算法的性能。对于单次NAS算法,使用NAS-Bench-201,您可以随时观察当前预测的网络结构的性能,而无需重新训练该结构。
-
公平比较每种NAS算法。不同的文章在重新训练搜索的网络结构时使用不同的超参数/数据增强/规则性等。现在使用NAS-Bench-201的API,每个研究人员都可以公平地比较搜索到的网络结构。
作者在一个代码库下实现并开源了10种不同的NAS算法。尽可能公平地测试了这些算法的性能。结果如下:
500 runs of REA / REINFORCE / RANDOM / BOHB
六种One-shot NAS算法的3次运行结果
NAS-Bench-201旨在为NAS社区提供一个公平、计算友好的环境。由于使用我们的API可以很容易地获得每个网络的性能,这种方便的条件可能无形中允许设计的新NAS算法过度适合最佳结构。为此,我们制定了一些规则来防止过度优化。
-
无法规范化特定操作。例如,限制跳过连接操作的数量。
-
使用我们提供的网络性能。训练策略影响网络结构的最终性能。我们建议NAS-Bench-201的用户使用我们的基准提供的每个网络的性能,即使可以使用其他培训策略来获得更好的性能。这是为了确保公平。
-
发布多组搜索实验的结果。重复的搜索过程可以更稳定地显示NAS算法的效果。
接口示例
相关资源
论文地址:
https://arxiv.org/pdf/2001.00326
10+种NAS算法的PyTorch实现:
https://github.com/D-X-Y/AutoDL-Projects
NAS-Bench-201复现指南:
https://github.com/D-X-Y/AutoDL-Projects/blob/master/docs/NAS-Bench-201.md
NAS-Bench-201 API的pip安装:
https://pypi.org/project/nas-bench-201/1.0/
优秀NAS文章列表:
https://github.com/D-X-Y/Awesome-NAS
更多论文地址源码地址:关注“图像算法”微信公众号
imalg图像算法 发布了139 篇原创文章 · 获赞 30 · 访问量 4万+ 私信 关注