NAS-Bench-101: Towards Reproducible Neural Architecture Search(可复现NAS数据集)

谁说我不能喝 提交于 2019-12-13 11:49:45

作者:Chris Ying * 1 Aaron Klein * 2 Esteban Real 1 Eric Christiansen 1 Kevin Murphy 1 Frank Hutter

摘要

NAS需要大量的计算开销,论文提出第一个公共NAS搜索的结构数据集:NAS-Bench-101

包含423k个卷积结构,在CIFAR-10数据集上多次对模型训练和评估。

作用:使得可以再毫秒时间内从数据集查找评估模型的质量

 

代码:https://github.com/google-research/nasbench

基准测试代码脚本:https://github.com/automl/nas_benchmarks

1、介绍

NAS有影响力工作:

Designing neural network architectures using reinforcement learning MIT的NAS开山之作

Neural architecture search with reinforcement learning  NAS开山之作

Neural architecture search: A survey NAS综述

NAS的SOTA工作:

 

NAS难复现原因:1、计算开销大 2、不同方法不好比较:搜索空间、训练过程不同

建立NAS-Bench-101数据集:

  • 包含423k个样本,映射模型结构到对应的指标(run time and accuracy)
  • 遍历了穷尽了整个搜索空间,使之可对整个搜索空间做复杂分析

开源代码 https://github.com/google-research/nasbench 包含数据、搜索空间、训练代码

论文贡献如下:

  • 提出第一个开源结构NAS数据集NAS-Bench-101
  • 介绍了使用数据集去分析搜索空间,揭示内部机理去指导网络设计
  • 介绍了使用数据集对各种开源NAS优化算法做benchmarking

2、NASBench数据集

NAS-Bench-101:数据集表格包含CNN结构和对应训练\评估指标

2.1 结构

如图所示,每个CNN结构的外骨架,由stem、stack、downsample组成,每个stack中有3个Cell单元

网络结构的变化,由Cell单元变化产生

Cell单元:由包含V个顶点(其中两个为IN-OUT顶点)的所有可能有向非循环图(DAGs)组成,每个顶点包含L种可能的ops,L=3。

ops集合包含(3x3 conv; 1x1 conv; 3x3 max-pool操作);V <= 7;最大边数<=9;

所有卷积使用了BN+ReLU

2.2 Cell编码

编码方式:基于7个顶点的无向循环图,每个顶点有3种可能的操作

 

In

1

2

3

4

5

Out

In

 

1/0

1/0

1/0

1/0

1/0

1/0

1

 

 

1/0

1/0

1/0

1/0

1/0

2

 

 

 

1/0

1/0

1/0

1/0

3

 

 

 

 

1/0

1/0

1/0

4

 

 

 

 

 

1/0

1/0

5

 

 

 

 

 

 

1/0

Out

 

 

 

 

 

 

 

如图所示,1/0表示图中的顶点是否连通,总计有 种可能连通方式;除去IN-OUT顶点,每个顶点有3种可能,总共有种可能的ops组合。

综上,有  种可能Cell结构

除去无效和重复的,有423K个不同的结构图

2.4 训练

设计了一个对所有数据集模型适用的开源单一通用的训练流程

超参数设置:使用单一固定的超参数集,选对不同结构都鲁棒的超参,依据对50个随机采样机构的平均精度来选择

实现细节:

 

数据集:CIFAR-10(40k训练/10k验证/10k测试),标准数据扩充技术(参考ResNet)

优化器:RMSProp  损失函数:Cross-entropy loss

代码:https://github.com/google-research/nasbench

每个模型在4 种Epochs下各重复训练/评估3次

2.5 度量指标Metric

结构A,在不同E_stop下,不同初始化训练3次,得到如下映射关系数据集

(A,  E_stop,trial#) -à (训练acc, 验证acc, 测试acc, 训练时间, 模型参数数量)

2.6 基准测试方法Benchmarking

NAS-Bench-101数据集的其中一个目的:促进NAS算法的基准测试

表示在整个数据集上具有最高平均测试精度的模型

在搜索过程中,根据验证集精度排序记录搜索算法发现的最好的结构

计算中间regret:

Regret作为每次搜索的分数

3、NASNet作为数据集

分析整个NASNet数据集来深入了解ops和cell拓扑结构在CNN网络中性能

3.1 数据集统计信息

 

如图左,大部分结构训练精度收敛至100%,验证/测试精度达到90%

如图右,相同结构,由于训练\测试的有一定的噪声,更长的训练epochs有更低的噪声

最好的结构测试精度达到94.32%,ResNet-like:93.12%,Inception-like:92.95%

 

研究了参数数目、训练时间、验证集精度之间的关系

如图左,显示了三者呈正相关;但参数数目和训练时间不是唯一决定因素

如图右,显示了参数和训练时间都更少的resnet和inception仍达到了同样高精度

3.2 结构设计

 

替换Cell中的ops,不同操作,绝对验证精度对比和相对训练时间对比

左图,把3x3卷积替代为1x1卷积或3x3 max-pool,验证精度下降1.16%和1.99%

右图,把3x3卷积替代为1x1卷积或3x3 max-pool,训练时间下降14.11%和9.84%

3.3 位置

位置特性:结构接近有相似的性能。

接近度:edit-distance(编辑距离):从一个结构转向另一个结构所需最少的变化数目

衡量位置的参数,Random-walk autocorrelation(RWA):defined as the autocorrelation of the accuracies of points visited as we perform a long walk of random changes through the space

参考:https://stats.stackexchange.com/questions/181167/what-is-the-autocorrelation-for-a-random-walk

 

 

如左图,RWA在小距离时显示了高相关性,超过6时,相关性变得不可区分

FDC(fitness-distance correlation):测量邻近的locality

4、作为基准的NASBench

4.1 比较NAS算法

通过使用数据集对比其他Alg,建立baseline

基准测试了小部分NAS、hyperparameter optimization(HPO)、RS、regularized evolution(RE)、SMAC、TPE、HB、BOHB、

基准测试代码脚本:https://github.com/automl/nas_benchmarks

调研了所有optimizer的元参数 见S2.2

 

如图左,显示了每类NAS/HPO算法的平均性能,通过500次独立试验

如图右,研究了优化器对随机性的鲁棒性

运行每种方法500次,每次10M秒,关于regret的经验累积误差(CDF,empirical cumulative distribution), RE, BOHB, and SMAC显示最鲁棒

4.2 Generalization bootstrap

测试在数据集上结果的泛化能力,需要在更大数据集上运行基准测试算法

由于计算限制,不能在更大空间做大量NAS试验

在NAS-Bench-Mini数据集上试验(NAS-Bench-101的子集),包括在搜索空间内所有的Cell,仅用<=6个顶点(64.5k unique cells)。

 

如图,可以看到在NASBench-Mini和NASBench-101不同大小空间上,相同算法精度比较是一致的都是 RS<NRE<RE

5、讨论

5.1 联系超参优化(hyperparameter optimization )

NAS:目标去发现好的神经网络结构

HPO:目标针对给定结构,寻找最优训练超参数集

f 是性能度量指标,如验证精度

NAS问题为在最优参数下的最优结构

实际上,寻找所有结构的最优超参数 H_*,计算上是棘手的,所以用 近似H_+

H_+:通过在小的结构子集上S(随机采样50个结构),选择取得最大平均精度的超参数集

用 来近似求解近似最优结构

并给出了如上近似结构的证明

 

 

如图,两个函数的秩高度相关,Spearman rank correlation = 0.9155 

总结

提出了NAS-Bench-101,一个神经结构搜索的表格基准,保留了初始NAS优化问题

使得可以快速比较各种算法,而不用巨大地计算开销

利用数据集,可以对卷积神经结构做穷尽地评估和分析

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!