对于具有许多局部最优和昂贵目标函数的问题,使用哪种优化算法?

机器算法验证 优化
2022-03-06 23:53:35

我对这些属性有优化问题:

  • 目标函数的计算成本并不低。在优化中最多可以评估大约 10^4 次。
  • 有很多局部最优。
  • 高值聚集在最大值附近,所以问题有点凸。
  • 解决方案被限制在一个已知的超级盒中。
  • 梯度未知,但直观上,函数是平滑的。
  • 它是多达 50 个变量的函数。下图是二维特殊情况的示例。

Nelder-Mead 经常陷入局部最优。以上三个变量,没有使用蛮力的机会。我研究过遗传算法,但它们似乎需要对目标函数进行大量评估。

我应该寻找什么样的算法?

在此处输入图像描述

在此处输入图像描述

1个回答

在没有导数的昂贵函数的情况下,一个有用的优化抽象框架是

Compute the function in few points (it may be a regular grid or even not)
Repeat
    Interpolate data/fit into a stochastic model
    Validate the model through statistical tests
    Find the model’s maximum.
    If it is better that the best one you previously have got, update the maximum
    Put this point in the dataset

这也应该与您提到的伪凸性非常吻合。

此处参考:

昂贵的黑盒函数的高效全局优化

代理优化昂贵函数的严格框架