bandit-based and multi-fidelity methods
MFES-HB
bohb或者hyperband在不同的bracket的内部sh过程中会产生非常多各种精度下验证的结果(即不同的
然后我们还可以知道的是高精度下对目标函数
此外,由于sh策略的特性,随着精度的增加,验证配置的数量减少。即对于
因此,高精度验证结果的数量比较少,是不足以拟合模型的。所以作者认为说可以综合高精度和低精度的结果来拟合最终的模型。
首先要做的是就是对各组精度的结果进行normalize。然后对每个精度组都单独拟合一个模型
还有一个问题,上面阐述过每个基础模型之间并不是独立的,那么我们就不能粗暴地用每个基础模型的均值和方差进行加和或者平方和来计算集成代理模型的均值和方差。所以这里引入了如下公式(gPoE)来计算:
下一个问题是,我们到底应该如何去计算每个基础模型的权重,直觉上这个权重的值应该和这个基础模型最最终
这个公式是什么意思,它表示基于模型预测和真实值排序关系不一致的成对数量,其实就是计算:对于精度
然后呢利用这个不一致数量来计算一致比例
$$
p_i = 1 - \frac{\mathcal{L}(M_i; D_K)}{N_{pairs}} \
N_{pairs} = C^{2}{\vert D_K \vert}
w_i = \frac{p^{\theta}i}{\sum^{K}{k=1}p^{\theta}{k}}, \theta \in \mathbb{N}
$$
当然以上这个计算公式(3)只是适用于低精度模型的权重计算中的loss计算,对于高精度模型的权重计算是这样的。首先是进行留一法交叉验证,也就是对于全精度的配置验证结果对集合
假设
还有值得注意的时候,如果一开始高精度验证结果的数量小于3,则对于低精度权重统一设置为
算法的伪代码如下:
FlexHB
对MFES-HB做了改进。
FGF
首先是作者认为说不同精度的数据分布不够平坦,低精度的数据很多而高精度的验证数据比之相比特别少;并且在早期能够用来拟合模型的数据很少并且数据的增加也很慢;还有就是使用的精度不够多,并且精度之间的过渡过于陡峭,基础模型的个数比较少。
所以作者做的第一个改进是增加了每个bracket内部sh过程中评估配置的精度组,从原来的按照
有了这样的改进后每个低精度基础模型的权重计算方法和MFES-HB保持一致,但作者改进了MFES-HB高精度模型使用交叉验证计算权重的方法,后面有实验表明这种做法计算出来的权重
GloSH
其次是作者认为呢一个配置在低精度场景下性能一般不能代表说它在高精度场景表现就一定不好(?那是否可以说sh这个算法其实是不完备的)下面这个图是在所有精度下都验证了所有的配置,越蓝是越好的配置,最后一张子图里面打叉的是在低精度场景表现不好而被提前终止的配置,可以看到在精度为27的情况下很多表现比较好呈现蓝色的点对应到最后一张子图都被打叉即提前终止了。
所以作者的第二个想法是能不能设置一个复活机制,让前面bracket被抛弃的配置能在后面复活且被再次进行验证,也就是说对于相同精度验证下的资源应该进行全局排序而不是在bracket内部进行排序,这样这个原来被抛弃的配置很有可能在其它bracket被进行进一步在更多精度下进行验证。
这部分的实现通过维护一个集合
FlexBand
最后是作者认为对每个bracket使用固定的
具体来说呢,给定一组在精度
FlexBand的算法伪代码如下所示。
这里的
experiment
settings
- baselines
- random search
- smac
- batch-bo (a parallelized BO method that concurrently evaluating candidates)
- hyperband
- bohb
- mfes
- tse (a multi-fidelity BO method samples smaller subsets of training data and utilizes their low fidelity measurements)
- boms (BO with Median Stop, a candidate is stopped if its best metric at some step is worse than a median value calculated based on history configurations)
- bocf (BO using Curve Fitting method to predict fullfidelity metric for early stopping determination)
- tuning task
- MLP: Tuning a 2-layer MLP on MNIST.
- ResNet: Tuning ResNet on CIFAR-10.
- LSTM: Tuning a 2-layer LSTM on Penn Treebank
- Traditional ML model: Tuning XGBoost on several classification datasets: Covertype, Adult, Pokerhand and Bank Marketing
- LCBench: a public HPO benchmark, containing learning curve data for 35 OpenML datasets.
results
- hpo performance
analysis of fgf weights
在MFES中,最低和最高精度的权重远小于中间精度模型的权重。当r = 27时,权重值没有显著增加,直觉来看这是非常不合理的(因为这部分的策略应该可以更好地估计f)。在FlexHB中,最低精度的权重随着调优的进行而减小,同时,高精度模型的权重在不断增加。而且随着更多高精度测量值的收集,高精度和中等精度模型的权重的差异逐渐增大。这样的结果显然是更合理的。
analysis of glosh
复活后的一些配置最终有取得较好结果的(蓝色点)
analysis of sh arrangements
造了一个数据集并且用参数
来控制生成的配置的方差, 值越大的话生成的配置的方就差越大,这种不稳定性对于小精度来说是很难区分的。从下图中我们可以看到在左图中hyperband和all exploration(也就在所有bracket里面初始化精度都为
)方法的效率是相似的,但在总体方差更小的配置上all exploration效率是更高的且收敛结果更好。所以虽然说相比于all exploitation(也就是所有bracket里面初始化精度都为
)hyperband可以通过低精度尝试和探索更多更优秀的配置并且取得更好的效果,但在配置反差较大的时候他取得的性能确实一般,在反差较小的时候还不如直接从最低精度开始搜索的效率高。从实验结果看FlexHB这种self-adaptive的方法确实可以更好balance各种情况。
ablation study
这里的improve是相对于hyperband的,
是相对于FlexHB。