最大化未知噪声函数

计算科学 优化 蒙特卡洛 模拟
2021-12-19 05:05:28

我对最大化功能感兴趣f(θ), 在哪里θRp.

问题是我不知道函数或其导数的解析形式。我唯一能做的就是通过插入一个值来逐点评估函数θ并得到一个嘈杂的估计f^(θ)在那时候。如果我愿意,我可以减少这些估计的可变性,但我必须付出越来越多的计算成本。

这是我到目前为止所尝试的:

  • 具有有限差分的随机最速下降:它可以工作,但需要大量调整(例如增益序列、缩放因子),并且通常非常不稳定。

  • 模拟退火:它有效并且可靠,但它需要大量的功能评估,所以我发现它很慢。

因此,我正在寻求有关可以在这些条件下工作的可能替代优化方法的建议/想法。为了鼓励来自与我不同的研究领域的建议,我尽可能地保持问题的普遍性。我必须补充一点,我会对一种可以让我估计收敛时的 Hessian 的方法非常感兴趣。这是因为我可以用它来估计参数的不确定性θ. 否则我将不得不使用最大值附近的有限差分来获得估计。

3个回答

我们的 Matlab 包 SnobFit 正是为此目的而创建的。不需要关于噪声分布的假设。此外,函数值可以通过文本文件提供,因此您可以将其应用于在任何能够编写文本文件的系统中实现的函数。
http://www.mat.univie.ac.at/~neum/software/snobfit/

SnobFit 是针对甚至不存在要优化的功能的应用而开发的,功能值(衡量制造质量的指标)是通过专门的、昂贵的设备创建样本产品并手动测量,从而产生大约 50 个功能每天评价。

您可以尝试几种贝叶斯优化技术。最简单的是基于高斯过程:

  • 哈罗德·J·库什纳。一种在存在噪声的情况下定位任意多峰曲线最大值的新方法。基础工程杂志,第 86:97-106 页,1964 年 3 月。
  • J.莫库斯。全局优化的贝叶斯方法。控制与信息科学讲义,38:473–481, 1982。
  • Niranjan Srinivas、Andreas Krause、Sham Kakade 和 Matthias Seeger。强盗设置中的高斯过程优化:无遗憾和实验设计。在过程中。国际机器学习会议 (ICML),2010。
  • 安德烈亚斯克劳斯、阿吉特辛格和卡洛斯盖斯特林。高斯过程中接近最优的传感器放置:理论、有效算法和实证研究。J.马赫。学习。水库,9:235–284,2008 年 6 月。

他们通过形成一个似是而非的函数的后验来操作,给出迄今为止的观察结果,并建议下一个点来快速学习函数并找到全局最大值(参见我的博客文章)。

另一个优点是您可以在最大值处估计 Hessian。但是,您需要指定噪声模型。

James Spall 的 SPSA 算法(如果我没记错的话,是 Stochastic Perturbation Simulated Annealing 的缩写)正是针对此类问题而设计的。他有几篇论文,他用它来解决你描述的问题。