超参数优化 (HPO) 是 AutoML 的一个关键组成部分。最近开发的、多保真度优化方法被证明比现有的黑盒优化方法更有效和强大。
然而,HPO 算法的性能很大程度上取决于其应用到的 HPO 问题,即待评估的机器学习模型、要探索的配置空间、要应用的保真度,甚至机器学习模型所依赖的依赖项。所有这些因素导致了不同 HPO 方法比较中的不一致性和困难。
此外,评估一个 HPO 问题可能非常昂贵:例如,训练一个神经网络并评估相应的配置通常需要几个小时。在这样的问题上复现 HPO 算法的结果,在有限的计算资源下几乎是不可能的。
作为 HPOlib 的继任者,HPOBench 旨在解决上述问题,并做出以下贡献
- 一个标准 API,允许用户在多个基准及其对应的保真度上评估多保真度 HPO。
- 容器隔离了基准与计算环境,并缓解了软件依赖问题。
- 代理和表格基准提供了一种廉价的评估目标算法的方式。
HPOBench 目前包含 100 多个具有各种属性的多保真度基准问题:数值和分类配置空间、不同的难度和复杂性。此外,HPOBench 还提供了几个流行的 HPO 包的结果,以便更容易地与新的 HPO 算法进行比较。
使用 singularity 评估配置只需要 4 行代码
>>> from hpobench.container.benchmarks.nas.tabular_benchmarks import SliceLocalizationBenchmark
>>> b = SliceLocalizationBenchmark(rng=1)
>>> config = b.get_configuration_space(seed=1).sample_configuration()
>>> result_dict = b.objective_function(configuration=config, fidelity={"budget": 100}, rng=1)
更多信息,请查看我们的 HPOBench GitHub 仓库和相应的博客文章
参考文献:
