【微软AutoML】 NNI实现的Tuner分析与总结
何为Tuner
所谓Tuner,直译就是调参器,也就是用来搜索参数空间的算法,搜索就搜索嘛,为啥要个Tuner呢?这是因为参数空间太大了。即使是对于离散的超参数,假设每个都有三种可能取值,参数空间大小也会是以3为底指数级增长,倘若是有drop_out这样的连续变量,则有无限多种取值,因此遍历参数空间是不可能的,需要一些启发式的优化算法。
这种问题让Someday联想到了NP问题,以前Someday写过遗传算法,解决的正是这样的只能近似不能最优的优化问题。
NNI现有的Tuner
Grid Search、Random Search、TPE、Anneal、Naive Evolution、SMAC、Batch、Hyperband、Network Morphism、ENAS、Metis Tuner
先说一下Grid Search和Random Search吧,这两个最好理解,Grid Search就是暴力搜索,尝试每一种参数组合,所以像Grid(网格)。而Random Search更好理解,就是在参数空间中随机,虽然听起来很蠢,但是Yoshua Bengio曾经论述过这个事,还真不要小看随机,Random Search的表现在很大程度上可能要优于Grid Search。
TPE
当你可以运行的Trial数很少时,适合使用TPE。据经验,TPE远比Random Search好。