贝叶斯优化不会提高预测准确性

Bayesian Optimization does not improve prediction accuracy

这可能是什么原因?

没有任何保证贝叶斯优化将提供最佳超参数值;引用权威教科书 Deep Learning, by Goodfellow, Bengio, and Courville (page 430):

Currently, we cannot unambiguously recommend Bayesian hyperparameter optimization as an established tool for achieving better deep learning results or for obtaining those results with less effort. Bayesian hyperparameter optimization sometimes performs comparably to human experts, sometimes better, but fails catastrophically on other problems. It may be worth trying to see if it works on a particular problem but is not yet sufficiently mature or reliable.

换句话说,它实际上只是一种启发式算法(如网格搜索),您报告的内容并不一定意味着您做错了什么或有程序有问题待更正...

我想通过一个小小的直觉来扩展一个完美的@desertnaut 可能会出现什么问题以及如何改进贝叶斯优化。贝叶斯优化通常使用某种形式的点(超参数)之间的距离(和相关性)计算。不幸的是——通常几乎不可能将这种几何结构强加于参数 space。与此问题相关的重要问题之一是在优化值和超参数之间施加 Lipshitzlinear 依赖性。要了解更多细节,让我们看一下:

Integer(50, 1000, name="estimators")

参数。让我们检查添加 100 个估计器如何改变优化问题的行为。如果我们将 100 个估计器增加到 50 个——我们将把估计器的数量增加三倍,并且可能会显着提高表达能力。从 900 到 1000 如何变化应该不那么重要。因此,如果优化过程从开始 - 让我们假设 600 个估计量作为第一个猜测 - 它会注意到将估计量改变大约 50 个并没有太大变化,因此它会跳过优化这个超参数(因为它假设准连续线性依赖) .这可能会严重损害勘探过程。

为了克服这个问题,最好为此参数使用某种 log 分布。应用了类似的技巧,例如到 learning_rate 参数。