我想知道有哪些方法可以优化你的轮廓有很多小的尖锐扭结的问题。例如,假设我们有一个轮廓,其中有很多尖峰,但足够平滑的最大值。在这种情况下,如果我们要使用诸如梯度下降之类的优化过程,我们必须将梯度下降步长设置为非常小,以防我们“跳跃”到一个对于我们的步长来说太小而无法检测到的最大值。是否有任何现有的文献可以控制这一点?谢谢!
哪些优化(最大化/最小化)方法存在有很多扭结的轮廓?
机器算法验证
机器学习
优化
梯度下降
2022-03-27 04:02:50
1个回答
在复杂、病态和多模态环境中进行非凸优化的最先进技术是协方差矩阵适应 - 进化策略,又名 CMA-ES,它有各种版本(例如 BIPOP-CMA-ES ) 在多个全球优化竞赛中获得第一名(例如参见 Black-Box Optimization Benchmarking, BBOB 2009)。
您可以在Nikolaus Hansen 的网站上找到大量信息、多种语言(C、C++、Java、Matlab、Octave、Python、Scilab)的代码、关于 CMA-ES 的研究论文和教程。
相关论文是:
Hansen、Nikolaus、Sibylle D. Müller 和 Petros Koumoutsakos。“通过协方差矩阵自适应 (CMA-ES) 降低去随机化进化策略的时间复杂度。” 进化计算 11.1 (2003): 1-18;
您可以在上面链接的第一作者的网站上找到。我还推荐他的教程论文,你也可以在他的网页上找到。
缺点是 CMA-ES 需要大量的函数评估才能有效(例如,通常不少于-,甚至更多);但是,它能够解决其他求解器无法解决的问题。
如果您的目标函数的评估成本很高,则一种可能的替代方法是使用贝叶斯优化 (BO),假设目标函数中有噪声;这将消除目标分布中的扭结。另请参阅此问题和我的回复,以获取有关 BO 或其他优化器的一些参考。
其它你可能感兴趣的问题