BOHB - 贝叶斯优化与 Hyperband

class hpbandster.optimizers.bohb.BOHB(configspace=None, eta=3, min_budget=0.01, max_budget=1, min_points_in_model=None, top_n_percent=15, num_samples=64, random_fraction=0.3333333333333333, bandwidth_factor=3, min_bandwidth=0.001, **kwargs)[source]

BOHB 通过将 Hyperband 搜索的速度与贝叶斯优化的指导和收敛保证相结合,在大规模场景下执行鲁棒高效的超参数优化。BOHB 不会随机采样新配置,而是使用核密度估计器来选择有前景的候选配置。

参考

@InProceedings{falkner-icml-18,
  title =        {{BOHB}: Robust and Efficient Hyperparameter Optimization at Scale},
  author =       {Falkner, Stefan and Klein, Aaron and Hutter, Frank},
  booktitle =    {Proceedings of the 35th International Conference on Machine Learning},
  pages =        {1436--1445},
  year =         {2018},
}
参数
  • configspace (ConfigSpace object) – 搜索空间的有效表示
  • eta (float) – 在每次迭代中,都会执行完整的连续减半(sequential halving)。在此过程中,在对每种配置在相同的子集大小上进行评估后,只有其中 1/eta 的配置“晋级”到下一轮。必须大于或等于 2。
  • min_budget (float) – 要考虑的最小预算。必须是正数!
  • max_budget (float) – 要考虑的最大预算。必须大于 min_budget!预算将按几何分布 \(a^2 + b^2 = c^2 \sim \eta^k\) 分布,其中 \(k\in [0, 1, ... , num\_subsets - 1]\)
  • min_points_in_model (int) – 开始构建 KDE 所需的观测数量。默认值为 'None',表示 dim+1,这是最低限度。
  • top_n_percent (int) – 被认为是好的观测值的百分比(介于 1 和 99 之间,默认值 15)。
  • num_samples (int) – 优化 EI 的样本数量(默认值 64)
  • random_fraction (float) – 在没有模型的情况下从先验中采样的纯随机配置的比例。
  • bandwidth_factor (float) – 为了鼓励多样性,建议优化 EI 的点是从一个“加宽的”KDE 中采样的,其中带宽乘以该因子(默认值:3)。
  • min_bandwidth (float) – 为了保持多样性,即使所有(好的)样本在某个参数上具有相同的值,也使用最小带宽(默认值:1e-3)而不是零。
  • iteration_kwargs (dict) – 要添加到每次迭代实例化中的 kwargs 参数
get_next_iteration(iteration, iteration_kwargs={})[source]

BO-HB(就像 Hyperband 一样)在每次迭代中都使用连续减半(SuccessiveHalving)。参考 Li et al. (2016)。

参数iteration (int) – 要实例化的迭代索引
返回值SuccessiveHalving – 相应数量的配置
返回类型具有以下属性的 SuccessiveHalving 迭代