AutoML 系列 - Hyperband介绍

本文主要根据《Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization》论文,对Hyperband进行介绍

背景

随着数据量的增大以及模型复杂度的增加,使用类似贝叶斯优化等方法进行超参数优化会消耗大量的计算资源,所以有必要寻求一种更加快速的算法。

该文章的作者将寻找最优超参数的过程视为一个在给定资源( 迭代次数,数据量,特征量等 )下,在无限臂老虎机上进行非随机地探索的过程。在这种想法下提出了 Hyperband 算法框架。

AutoML 系列 - Hyperband介绍_第1张图片
目前现有的超参数优化算法相对于之前的随机搜索或者网格搜索,主要在两个方向做出努力。其一,类似于贝叶斯优化的方法,根据之前的探索结果,推断出下一个最值得探索的位置,更快地找到最优解,如上图(a)所示,图中红色表示error小的位置,序号表示依次探索的位置。另一个方向是加快在探索过程中每种超参数组合的评价速度,这样可以在相同的时间内完成更多组超参数的探索与评价,从而达到更快的找到最优超参数的目的。

Hyperband 就是通过合理的分配资源,从而提高超参数组合的评价速度。

Hyperband 算法框架

Successive Halving

这个算法做的事情大致是这样的,对于一系列超参数组合分配相同的资源,然后对这些超参数组合进行评价,扔掉表现较差的一半超参数,重复上述流程直到只剩下一组超参数。

这个算法需要超参数组合的总数量 n n n与总资源 B B B作为输入,这样,每个待评价的组合平均分配 B n \frac{B}{n} nB的资源。但是,对于一个确定的 B B B来说,我们很难知道是应该选用较大的 n n n配备较少的资源还是较小的 n n n配置较多的资源,哪种选择会得到更好的结果

具体来说,如下图所示, v 1 v_1 v1 v 2 v_2 v2是在两组超参数配置下验证集上最终达到的loss大小,可以发现随着被分配资源的增加, v 1 v_1 v1 v 2 v_2 v2的值也逐渐趋于稳定(阴影部分可以理解为 v 1 v_1 v1 v 2 v_2 v2的errorbar)。而当阴影有重合的时候,我们无法分辨出哪种超参数更好。因为我们在拿到一个任务的时候,是无法事先就知道如下图所示的那种误差曲线的,所以也就不知道分配给每组超参数多少的资源能够达到无阴影重合的情况,也就是有把握说一种超参数要优于另一种超参数。

AutoML 系列 - Hyperband介绍_第2张图片

Hyperband

Hyperband算法框架如下图所示,对于上面 Successive Halving 中的 n − B n n-\frac{B}{n} nnB的问题,Hyperband 对于一个确定的 B B B,在可行的 n n n范围内对 n n n进行 grid search。

Hyperband 需要两个输入:

  • R,对于一种超参数组合最多被分配的资源。我们可以自己定义一单位的资源为多少,例如,如果最大的迭代次数为100k,我们定义一单位的资源为100次,那么R为1000,如果我们定义一单位的资源为1000次,那么R为100。所以,一般我们定义的一单位的资源就是我们认为要分配的最少资源,而R是最多资源与最少资源之间的比例。

  • η \eta η,控制在每轮 Successive Halving 中被保留的超参数组合的比例,一般建议 η \eta η取3或者4。

在 Hyperband的伪代码中出现的3个函数及其意义如下:

  • get_hyperparameter_configuration(n):按照在超参数空间定义的某种分布i.i.d.采样,例如:均匀分布,这个分布越倾向于高质量的超参数,Hyperband的结果越好
  • run_then_return_val_loss(t, r):根据输入的超参数以及分配的资源,返回训练后在validation set上的loss
  • top_k(configs, losses, k):根据输入的超参数集合以及其对应的loss,返回表现排名前k的超参数。
    AutoML 系列 - Hyperband介绍_第3张图片

从上面的伪代码和对R和 η \eta η的介绍中,可以看出,当 s = 0 s=0 s=0时,此时 r = R r=R r=R,相当于baseline。随着s的增加,相应的分配个每个超参数组合的资源就变少了,相当于逐渐加大训练 early stopping 的力度,但是可以在总利用资源相同的情况下,增加探索过的超参数组合的个数,s的增加直到分配给每个超参数组合的资源为一单位。

资源

上面总提到说分配的资源,那么资源都包括哪些呢?

  • 时间
  • 迭代次数
  • 样本的subset(R对应全部样本)
  • 特征的subset

demo

文中给出了一个 MNIST 数据集的例子,设置了 R = 81 , η = 3 R=81,\eta=3 R=81,η=3,此时, s m a x = 4 s_{max}=4 smax=4。每次 Successive Halving 的资源与超参数组合的数量如下表所示。
AutoML 系列 - Hyperband介绍_第4张图片
AutoML 系列 - Hyperband介绍_第5张图片
从实验结果可以发现,并不是s=0或者s=4效果最好。

参考资料:《Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization》

你可能感兴趣的:(超参数优化)