Hyperband算法的伪代码如下:
R是单个超参数组合能够分配的最大资源预算,如1个epoch就是1个预算,R=81,就表示81个epoch,smax=4,B=5R=405,当s=4时,初始为81个点,每个点训练1个epoch,然后选择最好的27个点,每个点再训练3个epoch,...,直到最后只剩下1个点,再训练81个epoch,当s=0时,初始为5个点,不淘汰,每个点都训练81个epoch,如下表所示:
这样可以将表现不好的点迅速淘汰掉,让表现好的点继续训练.以MNIST为例,训练结果如下:
可见训练结果并不是s=0或者s=4时最好,而是s=3时最好.