KerasTuner:超参数调优 / API 文档 / Oracles / BayesianOptimization Oracle

BayesianOptimization Oracle

[源代码]

BayesianOptimizationOracle

keras_tuner.oracles.BayesianOptimizationOracle(
    objective=None,
    max_trials=10,
    num_initial_points=None,
    alpha=0.0001,
    beta=2.6,
    seed=None,
    hyperparameters=None,
    allow_new_entries=True,
    tune_new_entries=True,
    max_retries_per_trial=0,
    max_consecutive_failed_trials=3,
)

贝叶斯优化 Oracle。

它使用带有底层高斯过程模型的贝叶斯优化。使用的采集函数是置信上限 (UCB),可以在 此处 找到。

参数

  • objective: 一个字符串、keras_tuner.Objective 实例,或一个 keras_tuner.Objective 对象和字符串的列表。如果是一个字符串,将推断优化的方向(最小化或最大化)。如果是一个 keras_tuner.Objective 对象列表,我们将最小化所有目标的总和以进行最小化,或最大化所有目标的总和以进行最大化。当 Tuner.run_trial()HyperModel.fit() 返回一个单一的浮点数作为要最小化的目标时,objective 参数是可选的。
  • max_trials: 整数,最多测试的试验(模型配置)总数。请注意,如果搜索空间已耗尽,则预言器可能会在测试 max_trial 个模型之前中断搜索。默认为 10。
  • num_initial_points:可选参数,表示用于贝叶斯优化初始训练数据的随机生成样本的数量。如果未指定,则使用超参数空间维度的 3 倍作为该值。
  • alpha:浮点数,在拟合过程中添加到核矩阵对角线上的值。它表示在贝叶斯优化中观察到的性能中预期的噪声量。默认为 1e-4。
  • beta:浮点数,用于平衡探索和利用的因子。值越大,探索性越强。默认为 2.6。
  • seed: 可选的整数,随机种子。
  • hyperparameters: 可选的 HyperParameters 实例。可用于覆盖(或预先注册)搜索空间中的超参数。
  • tune_new_entries: 布尔值,是否应将 hypermodel 请求但未在 hyperparameters 中指定的超参数条目添加到搜索空间。如果为 false,则将使用这些参数的默认值。默认为 True。
  • allow_new_entries: 布尔值,是否允许 hypermodel 请求未在 hyperparameters 中列出的超参数条目。默认为 True。
  • max_retries_per_trial: 整数。默认为 0。如果试验崩溃或结果无效,则重试 Trial 的最大次数。
  • max_consecutive_failed_trials: 整数。默认为 3。连续失败 Trial 的最大数量。达到此数量时,搜索将停止。当重试均未成功时,Trial 将被标记为失败。