Gridsearchcv 与贝叶斯优化

Posted

技术标签:

【中文标题】Gridsearchcv 与贝叶斯优化【英文标题】:Gridsearchcv vs Bayesian optimization 【发布时间】:2019-09-14 21:35:19 【问题描述】:

Gridsearchcv 和贝叶斯优化中哪一个更适合优化超参数?

【问题讨论】:

【参考方案1】:

这里没有更好的方法,它们是不同的方法。

Grid Search 中,您尝试了某些范围内所有可能的超参数组合。

Bayesian 中,您不会尝试所有组合,而是在尝试时沿着超参数学习的空间进行搜索。这样可以避免尝试所有组合。

所以Grid Search 的优点是你是详尽无遗的,Bayesian 的优点是你不需要,基本上如果你可以在计算能力方面去Grid Search 但如果空间Bayesian 搜索太大了。

【讨论】:

您能否详细说明为什么详尽无遗是件好事? 我认为 gridsearchcv 并不详尽。因为我们不能搜索所有的组合。【参考方案2】:

在理论上和实践中,网格搜索在优化超参数 [1] 方面都比随机搜索更糟糕。除非您只优化一个参数,否则切勿使用网格搜索。 另一方面,贝叶斯优化被认为在各种问题上优于随机搜索,也用于优化超参数 [2]。然而,这并没有考虑到几件事:使用这些超参数的模型的泛化能力、与简单得多的随机搜索相比使用贝叶斯优化的努力,以及并行使用随机搜索的可能性。

因此,总而言之,我的建议是:永远不要使用网格搜索,如果您只想尝试几个超参数并且可以并行尝试(或者如果您希望超参数泛化到不同的问题),请使用随机搜索,然后使用贝叶斯优化如果你想要最好的结果并且愿意使用更高级的方法。

[1] 超参数优化的随机搜索,Bergstra 和 Bengio 2012。

[2] 贝叶斯优化优于随机搜索进行机器学习超参数调优:2020 年黑盒优化挑战分析,Turner 等人。 2021.

【讨论】:

以上是关于Gridsearchcv 与贝叶斯优化的主要内容,如果未能解决你的问题,请参考以下文章

贝叶斯优化

朴素贝叶斯算法优化与 sklearn 实现

如何从 gridSearchCV 的输出中获取特征名称

基于贝叶斯分类器的数据处理与MATLAB实现matlab优化算法一

贝叶斯优化,364页pdf阐述高斯过程理论与实践

如何在 GridSearchCV 的 keras 模型的超参数优化中使用简单的验证集?