TL;博士
我建议使用 LIPO。它可证明是正确的,并且可证明比纯随机搜索 (PRS) 更好。它实现起来也非常简单,并且没有超参数。我没有进行过将 LIPO 与 BO 进行比较的分析,但我的预期是 LIPO 的简单性和效率意味着它将胜过 BO。
(另请参阅:贝叶斯超参数优化有哪些缺点?)
贝叶斯优化
贝叶斯优化类型的方法构建高斯过程代理模型来探索参数空间。主要思想是靠得更近的参数元组将具有相似的函数值,因此点之间的协方差结构的假设允许算法对接下来最值得尝试的最佳参数元组做出有根据的猜测。该策略有助于减少功能评估的次数;实际上,BO 方法的动机是在“使用整个 buffalo”的同时,尽量减少函数评估的次数,以便很好地猜测接下来要测试的点。有不同的品质因数(预期改进、预期分位数改进、改进概率......)用于比较接下来要访问的点。
将此与网格搜索进行对比,网格搜索永远不会使用其先前功能评估中的任何信息来告知下一步要去哪里。
顺便说一句,这也是一种强大的全局优化技术,因此不对表面的凸度做出任何假设。此外,如果函数是随机的(例如,评估有一些固有的随机噪声),这可以直接在 GP 模型中解释。
另一方面,您必须在每次迭代中至少拟合一个 GP(或几个,选择“最佳”,或对替代方案进行平均,或完全贝叶斯方法)。然后,该模型用于进行(可能数千)预测,通常以多启动局部优化的形式,观察到评估 GP 预测函数比优化下的函数便宜得多。但是即使有这种计算开销,即使是非凸函数也可以通过相对少量的函数调用来优化。
关于该主题的一篇被广泛引用的论文是Jones 等人 (1998),“Efficient Global Optimization of Expensive Black-Box Functions”。但是这个想法有很多变化。
随机搜索
即使成本函数的评估成本很高,随机搜索仍然很有用。随机搜索很容易实现。研究人员唯一的选择是设置您希望结果位于某个分位数中的概率 ;其余的使用基本概率的结果自动进行。p q
假设您的分位数是,并且您希望模型结果位于所有超参数元组的前 % 的尝试的元组都不在该窗口中的概率(因为它们是从同一分布中独立随机选择的),因此至少一个元组在该区域中的概率是。综上所述,我们有q=0.95p=0.95100×(1−q)=5nqn=0.95n1−0.95n
1−qn≥p⟹n≥log(1−p)log(q)
在我们的具体情况下产生。n≥59
这个结果就是为什么大多数人推荐尝试的元组进行随机搜索的原因。值得注意的是,当参数数量适中时与高斯过程不同,查询元组的数量不会随着要搜索的超参数的数量而变化;事实上,对于大量的超参数,基于高斯过程的方法可能需要多次迭代才能取得进展。n=60n=60
由于您对结果有多好有一个概率表征,因此该结果可以成为说服您的老板相信进行额外实验将产生边际收益递减的有说服力的工具。
LIPO 及其变体
这是一个令人兴奋的到来,如果它不是新的,对我来说肯定是新的。它通过在函数上设置知情界限和从最佳界限采样以及使用二次近似之间交替进行。我仍在研究所有细节,但我认为这是非常有希望的。这是一篇不错的博客文章,论文是 Cédric Malherbe 和 Nicolas Vayatis “ Lipschitz 函数的全局优化”。