2

使用贝叶斯优化和一些启发式选择来探索超参数调整的最佳方法是什么?

在 spearmint 或 hyperopt 等包中,可以指定要探索的范围,但我还想探索一些不一定属于该范围的启发式值。有什么建议这样做的最佳做法是什么?

4

1 回答 1

0

我已经将贝叶斯优化应用于生产中的超参数调整,所以我遇到了类似的问题。

不同的贝叶斯方法在探索/利用权衡方面具有不同的特征,例如改进概率(PI)倾向于通过选择接近已知极值的下一个点来更多地利用,而上置信区间(UCB)相反更喜欢探索. 问题是第一个局部最大值通常不足以利用,但是“探索性”方法需要太多时间和运气才能单独使用它们。

对我来说效果最好的方法是投资组合策略(也称为混合策略),它本质上是其他方法的集合。例如,在每一步中,它可以以 40% 的概率选择 UCB,以 40% 的概率选择 PI,以 20% 的概率选择普通随机点。重要的是所有方法共享结果,例如,如果某个随机方法选择了一个好的候选者,它会改变 UCB 和 PI 的 GP 模型,因此从这一刻起,PI 更有可能利用这一点。我有时注意到,即使是负面但出乎意料的结果也会显着改变 GP 的形状,进而影响 UCB 及其探索方式。

显然,投资组合分布本身也会随着时间而改变。从探索更多开始然后转向利用是有意义的,但仍然留下一些探索的机会(ε-greedy in the limit)。

至于范围选择,我更喜欢让它尽可能大,让贝叶斯优化决定哪些值值得更多尝试,至少在开始时是这样。请注意,PI 方法并不关心您的范围有多大。随着范围的扩大,UCB 倾向于进行更多尝试。根据我的经验,某些范围(例如,正则化器小于 0.01)与结果(严重过拟合)之间的相关性通常在多次运行后变得明显,这使得所有方法的范围都变窄了。但我不建议从一开始就进行这样的“过早优化”。

最后,我编写了自己的贝叶斯优化库。如果您对代码感兴趣,请在 GitHub 上查看

于 2017-09-16T14:56:08.187 回答