因此,我们知道随机搜索比网格搜索效果更好,但最近的一种方法是贝叶斯优化(使用高斯过程)。我查了两者之间的比较,没有发现任何东西。我知道在斯坦福的 cs231n 中,他们只提到了随机搜索,但他们可能想让事情变得简单。
我的问题是:哪种方法通常更好,如果答案是“有时是随机搜索,有时是贝叶斯”,我什么时候应该更喜欢一种方法而不是另一种方法?
因此,我们知道随机搜索比网格搜索效果更好,但最近的一种方法是贝叶斯优化(使用高斯过程)。我查了两者之间的比较,没有发现任何东西。我知道在斯坦福的 cs231n 中,他们只提到了随机搜索,但他们可能想让事情变得简单。
我的问题是:哪种方法通常更好,如果答案是“有时是随机搜索,有时是贝叶斯”,我什么时候应该更喜欢一种方法而不是另一种方法?
我认为这里的答案与数据科学中的任何地方都是一样的:它取决于数据:-)
一种方法可能优于另一种方法(这里https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/人们比较贝叶斯超参数优化并在旧金山犯罪 kaggle 挑战中取得比随机搜索),但是我怀疑是否有一般规则。你可以在这里看到一个漂亮的 gif ( http://blog.revolutionanalytics.com/2016/06/bayesian-optimization-of-machine-learning-models.html ),人们展示了贝叶斯优化在景观中的“路径”特别是超参数,它似乎并不优于一般的随机搜索......
我认为人们倾向于使用贝叶斯超参数优化的原因是,与具有足够多的实验的随机搜索相比,它只需要更少的训练步骤即可获得可比较的结果。
一句话总结:
*当训练时间很关键时,使用贝叶斯超参数优化,如果时间不是问题,请选择两者之一... *
通常我懒得用高斯过程实现贝叶斯的东西,如果我可以通过随机搜索获得相同的结果......我只是在“少数”数据上训练 Gradient Bossting 集成,所以对我来说,时间不是问题......
贝叶斯优化更好,因为它可以做出更明智的决策。您可以查看这篇文章以了解更多信息:神经网络的超参数优化。本文还介绍了这两种方法的优缺点以及一些额外的技术,如网格搜索和树结构 parzen 估计器。尽管它是为了展示神经网络不同方法的优缺点而编写的,但主要知识对于任何其他机器学习领域都是可推广的
值得注意的是,贝叶斯超参数优化是一个顺序过程,因此它可能需要比其他一些能够搜索或并行执行的方法更长的时间。