Rethinking Performance Estimation in Neural Architecture Search
1、简介
**解决的问题:**以往训练一个性能估计器,网络需要大量的计算资源(需要训练大量的网络)。为了高效的估计网络的性能,提出一种MIP方法(Minimum Importance Pruning)。
另外,以前的方法无法证明训练的子网络结构和从头训练的网络性能具有强烈的正相关关系。
extensive experiments in Sec. 5 show that the effectiveness of BPE is very sensitive, which means that
it needs to carefully select and analyze the corresponding hyperparameters in NAS.
**方法:**MIP使用随机森林估计超参数的重要性,然后在下一轮迭代中删除重要性小的参数,从而实现分配更多的计算资源给更重要的。
**效果:we achieve 1, 000× of NAS speed up with a negligible performance drop comparing to the SOTA.
BPE主要控制训练、网络设计和数据集处理的超参数,如信道数、层数、学习速率和图像大小。
BPE的目标是在特定的体系结构空间中学习不同神经体系结构最可实现的相对精度顺序
2、方法
优化问题的定义:
The performance estimation is a training algorithm A with n hyperparameters in a domain Ω. Given an architecture set G sampled from O.
MIP
算法大体流程:
- we first sample examples with the lowest time consumption.
- The sampled examples are then used to estimate the hyper-parameter importance using random forest [6, 16]
- the hyperparameter with the lowest importance is pruned by setting the value with the minimum time cost.
- The algorithm stops when every hyper parameter is set.
这里看的云里雾里的,可能理解的不是很准确,还请批评指正。
Lowest time cost sampling :
引入一个关于计算时间的分布。即,每层每个操作可能被采样的概率直接和其flops相关。
这样, An example b is generated by sampling the joint probability in Eq. 2, e.g.**
Then, we obtain Rb by training every architecture in G using the sampled b,
the objective r**s is calculated with Rf by using Eq. 1.
算法:
重复采样K次,就得到了训练随机森林用的数据集。D = {(b1*, rs,1),(b2, rs,2),* …,(bk, rs,K)}
训练随机森林:
其中训练随机森林时,应该注意如何选择和分割特征(超参数)。这里建议去看看随机森林的基础知识。没什么好说的,一堆公式懒得贴上来了。需要的读者请去看原文。
When training the regression tree, we need to consider how to measure and choose the partition feature(hyperparameter in our case).
超参数重要性的计算:
剪枝的方法:
把不重要的参数,设置为flops中的最小值,这样的话,被采样到的概率就很小。从而分配更多的计算资源给重要的参数。这也是这个算法高效的原因。
实验结果却是很高效
算法高效的原因。
[外链图片转存中…(img-okhsby0j-1592192451791)]
实验结果却是很高效