成本函数评估缓慢时的优化

机器算法验证 梯度下降 优化 贝叶斯优化
2022-02-04 01:17:43

梯度下降和许多其他方法对于寻找成本函数中的局部最小值很有用。当成本函数可以在每个点快速评估时,无论是数值还是分析,它们都是有效的。

我有什么在我看来是不寻常的情况。我的成本函数的每次评估都很昂贵。我试图找到一组参数,以最小化 3D 表面对地面真实表面的影响。每当我更改参数时,我都需要针对整个样本群组运行算法以测量其效果。为了计算梯度,我需要独立更改所有 15 个参数,这意味着我必须重新生成所有表面并与样本队列进行比较,每个梯度的次数太多,而且在优化过程中肯定会发生太多次。

我已经开发出一种方法来规避这个问题并且目前正在对其进行评估,但令我惊讶的是,我在文献中没有发现太多关于昂贵的成本函数评估的信息。这让我想知道我是否让问题变得更加困难,并且可能已经有更好的方法可用。

所以我的问题基本上是这样的:当评估缓慢时,有没有人知道优化成本函数的方法,无论是凸的还是非凸的?或者,我是否首先通过重新运行算法并与样本队列进行多次比较来做一些愚蠢的事情?

4个回答

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×(1q)=5nqn=0.95n10.95n

1qnpnlog(1p)log(q)

在我们的具体情况下产生n59

这个结果就是为什么大多数人推荐尝试的元组进行随机搜索的原因。值得注意的是,当参数数量适中时与高斯过程不同,查询元组的数量不会随着要搜索的超参数的数量而变化;事实上,对于大量的超参数,基于高斯过程的方法可能需要多次迭代才能取得进展。n=60n=60

由于您对结果有多好有一个概率表征,因此该结果可以成为说服您的老板相信进行额外实验将产生边际收益递减的有说服力的工具。

LIPO 及其变体

这是一个令人兴奋的到来,如果它不是的,对我来说肯定是新的。它通过在函数上设置知情界限和从最佳界限采样以及使用二次近似之间交替进行。我仍在研究所有细节,但我认为这是非常有希望的。这是一篇不错的博客文章,论文是 Cédric Malherbe 和 Nicolas Vayatis “ Lipschitz 函数的全局优化”。

正如其他人所指出的,关于评估昂贵的黑盒函数的文献非常广泛,并且通常基于代理模型方法。这里的黑盒意味着对底层函数知之甚少,您唯一能做的就是在选定的点(梯度通常不可用)。f(x)x

我想说,目前评估(非常)昂贵的黑盒函数的黄金标准是(全局)贝叶斯优化(BO)。Sycorax已经描述了 BO 的一些特性,所以我只是添加一些可能有用的信息。

作为起点,您可能需要阅读这份概述文件 1还有一个更新的[2]。

近年来,贝叶斯优化作为一个领域一直在稳步增长,有一系列专门的研讨会(例如BayesOpt,并在谢菲尔德研讨会上查看这些视频),因为它在机器学习中具有非常实际的应用,例如用于优化 ML 算法的超参数——参见本文[3] 和相关工具箱SpearMint还有许多其他各种语言的包可以实现各种贝叶斯优化算法。

正如我所提到的,基本要求是每个函数评估都非常昂贵,因此与 BO 相关的计算增加的​​开销可以忽略不计。大致来说,如果您的函数在几分钟或更长时间内进行评估,那么 BO 绝对会有所帮助。您也可以将其应用于更快的计算(例如数十秒),但根据您使用的算法,您可能必须采用各种近似值。如果您的函数在seconds的时间范围内进行评估,我认为您正在触及当前研究的界限,也许其他方法可能会变得更有用。另外,我不得不说,BO 很少是真正的黑盒,你经常需要调整算法,有时甚至很多,以使其在特定的现实问题中发挥最大潜力。

除了 BO,对于一般无导数优化方法的评论,您可以查看这篇评论[4] 并检查具有良好快速收敛特性的算法。例如,多级坐标搜索 (MCS) 通常会很快收敛到最小值的邻域(当然,并不总是全局最小值)。MCS 被认为用于全局优化,但您可以通过设置适当的绑定约束使其局部化。

最后,您对 BO 感兴趣的目标函数既昂贵又嘈杂,请参阅我对这个问题的回答。


参考:

1 Brochu 等人,“昂贵成本函数的贝叶斯优化教程,应用于主动用户建模和分层强化学习”(2010 年)。

[2] Shahriari 等人,“让人类走出循环:贝叶斯优化回顾”(2015 年)。

[3] Snoek 等人,“机器学习算法的实用贝叶斯优化”,NIPS (2012)。

[4] Rios 和 Sahinidis,“无导数优化:算法回顾和软件实现比较”,全球优化杂志(2013 年)。

我自己不知道算法,但我相信您正在寻找的优化算法是无导数优化当目标成本高或嘈杂时使用

例如,看看这篇论文(Björkman, M. & Holmström, K. “Global Optimization of Costly Nonconvex Functions Using Radial Basis Functions.” Optimization and Engineering (2000) 1: 373. doi:10.1023/A:1011584207202)其摘要似乎表明这正是您想要的:

本文考虑了代价高昂的目标函数的全局优化,即当存在多个局部最小值并且每个函数值需要大量CPU时间来计算时找到全局最小值的问题。此类问题经常出现在工业和金融应用中,其中函数值可能是耗时的计算机模拟或优化的结果。导数通常很难获得,并且提出的算法没有使用这些信息。

你并不孤单。

昂贵的评估系统在工程中非常常见,例如有限元法 (FEM) 模型和计算流体动力学 (CFD) 模型。这些计算成本高昂的模型的优化是非常需要和挑战的,因为进化算法通常需要对问题进行数万次评估,这对于评估成本高昂的问题来说不是一种选择。幸运的是,有很多方法(算法)可以解决这个问题。据我所知,大部分都是基于代理模型(metamodels)的。下面列出了一些。

  • 高效全局优化(EGO,也称为贝叶斯优化)[1]。EGO算法上面已经提到过,可能是最著名的基于代理的优化算法。它基于克里金模型和称为预期改进函数 (EI) 的填充标准。包括 EGO 算法的 R 包是 DiceOptim 和 DiceKriging。
  • 模式追踪采样 (MPS) 方法 [2]。MPS 算法建立在 RBF 模型之上,并采用自适应采样策略来提取候选点。MATLAB 代码由作者在http://www.sfu.ca/~gwa5/software.html上发布。MPS 算法可能需要更多的评估才能获得最佳值,但根据我的个人经验,它可以处理比 EGO 算法更复杂的问题。
  • Juliane Müller [3] 的 Ensemble 代理模型。她使用多个代理来增强搜索能力。MATLAB 工具箱 MATSuMoTo 可在https://github.com/Piiloblondie/MATSuMoTo获得。

总之,这些基于代理的优化算法试图使用尽可能少的评估来找到问题的全局最优值。这是通过充分利用代理人(代理人)提供的信息来实现的。在 [4-6] 中对计算成本高的问题的优化进行了评论。


参考:

  1. 琼斯博士、M. Schonlau 和 WJ 韦尔奇,“昂贵的黑盒函数的高效全局优化”,《全局优化杂志》,第一卷。13,第 455-492 页,1998 年。
  2. L. Wang、S. Shan 和 GG Wang,“在昂贵的黑盒函数上进行全局优化的模式追踪采样方法”,工程优化,第一卷。36,第 419-438 页,2004 年。
  3. J. Müller,“计算昂贵的黑盒全局优化问题的代理模型算法”,坦佩雷理工大学,2012 年。
  4. GG Wang 和 S. Shan,“支持工程设计优化的元建模技术综述”,机械设计杂志,第一卷。129,第 370-380 页,2007 年。
  5. AI Forrester 和 AJ Keane,“基于代理的优化的最新进展”,航空航天科学进展,第一卷。45,第 50-79 页,2009 年。
  6. FAC Viana、TW Simpson、V. Balabanov 和 V. Toropov,“多学科设计优化中的元建模:我们到底走了多远?”AIAA 杂志,第一卷。52,第 670-690 页,2014/04/01 2014。