10
$\开始组$

关于函数最小化这一常见的应用数学问题,有大量的信息。。软件包、数百本书、研究等。但对于要采样的函数非常昂贵的情况,我仍然没有找到一个好的参考。

我的具体问题是计算机科学的一个应用问题,我有一个模拟程序,其中的数据库有十几个参数,这些参数会影响体素大小、缓存分布、树分支等。这些数字参数不影响算法的正确性,只影响运行时。我想最小化运行时。

因此,我可以将这个问题视为黑盒最小化。我的成本函数是运行时,我想将其最小化。我没有导数,我可以把它当作一个黑匣子。我有一个不错的起点,甚至每个参数的粗略尺度。在时间测量中,参数和甚至噪声之间可能存在相互作用和相关性(幸运的是很小)

那么,为什么不使用任何软件包,将其放入标准的最小二乘最小化工具中呢?因为我的计时样本每次运行需要8小时。。所以每个数据点都很宝贵,我发现的算法往往忽略了这一成本。经典的Levenberg-Marquand程序免费“花费”样本,甚至不记得每个样本的完整历史(而是更新一些平均统计数据)。

所以我的问题是寻找一个指向迭代函数最小化方法的指针,这些方法使用函数的最小样本数。理想情况下,我可以传入一组已采样的位置和每个位置的值,算法将输出一个新位置以获取下一个样本(如果算法认为值得测试,则可能是探索性样本,而不是对最佳最小位置的猜测)

我可能需要数百个样本,但只有数百个,大多数多维最小化方法预计需要数百万个样本。

目前,我每天都在使用自己的特别发明手动进行最小化。我已经对我的15参数模型进行了40个现有的定时采样。我将所有现有样本拟合为一个独立的二次函数之和(假设每个参数都是独立的),然后查看完整二次矩阵的N*(N-1)/2=100个可能的相关系数。我发现当允许从0.0、,对我的数据进行最佳二次拟合,并允许这几个条目进行最佳最小二乘拟合。我还为具有较小(更快)值的位置赋予了更高的拟合权重(有点特别,但有助于排除远离最小值的行为)。一旦我有了这个矩阵,我会手动查看每个主要特征值方向的图形和眼球位置,这些位置似乎需要更好的采样。我将所有这些猜测重新组合到一个新的样本位置。每天,我都会生成4个新的点,设置一次跑步来在第二天测试它们,并在计算完成后再次重复整个过程。周末分批得分10分!

谢谢你的建议!这个问题可能没有一个完美的“最佳”答案,但我坚持认为,在评估成本如此巨大的情况下,什么策略最有效。

$\端组$
10
  • 7
    $\开始组$ 首先,这是关于MO的第10000个问题,对你来说太好了。其次,你看过格申费尔德(例如)书中的内容吗?books.google.com/books?id=lSTOh8U7NkkC&pg=PA156 $\端组$ 评论 2010年8月27日22:04
  • 1
    $\开始组$ 这里有一件事应该被问到:你有没有费心确定合理的参数第一近似值?如果你这样做了,Nelder-Mead或任何随机优化方法(例如差分进化和模拟退火)都可能奏效。这些方法都不能假设你的目标函数是可微的。 $\端组$ 评论 2010年8月28日0:01
  • 2
    $\开始组$ 在一个明显不是平方和的函数上使用Levenberg-Marquardt就像用黄油刀拧螺丝一样:它可能会起作用,但你的处理方式根本上是错误的。 $\端组$ 评论 2010年8月28日0:02
  • 2
    $\开始组$ 这里有一些值得深思的东西:不要把它看作一个纯粹的优化问题,而要把它看作是一个实验设计问题,但有一个转折点:你试图在映射空间的同时将其中一个变量(你的成本)推到所需的值。此外,您的输入参数可能是相关的,因此单独移动它们会浪费迭代。您希望使用偏最小二乘例程(告诉您数据的最大协方差)将输入数据投影到低维空间,并在潜在变量空间中移动变量。 $\端组$
    – 基列德
    评论 2010年8月28日1:27
  • 2
    $\开始组$ 我还应该添加一个警告,因为这个问题是用“全局优化”标记的。我认为,除非对问题空间进行彻底搜索,否则任何无导数方法都无法为您提供全局最优的证明。在你的情况下,听起来任何方法都会非常昂贵,所以局部最优性可能是你所希望的最好的(除非你的黑盒问题是凸的)。我希望这有帮助! $\端组$
    – 基列德
    评论 2010年8月28日1:48

5个答案5

重置为默认值
4
$\开始组$

我读过这篇论文,但从未使用过这种方法。

“昂贵黑盒函数的高效全局优化”作者:Donald R.Jones、Matthias Schonlau、William J.Welch

PDF可从其中一个作者的页面.

$\端组$
2
$\开始组$

你没有这么明确地说,但听起来你的函数求值可能也有点杂乱,因为函数值是蒙特卡洛模拟的结果,其中包含了随机数。如果是这样的话,那么你肯定想看看响应面建模,因为试图通过有限差分来近似导数的方法在这种情况下不起作用,甚至像Nelder-Mead这样的模式搜索方法也很容易被一个糟糕的函数求值所愚弄。

$\端组$
0
$\开始组$

您的问题似乎是物理科学中出现的一些典型问题(昂贵的实验),并且经常受到响应曲面建模的攻击。这是一种技术(与统计学主题“实验设计”相关),它试图通过少量函数求值来建立未知函数的图形的良好模型。响应面建模的整个要点是从少量样本中提取关于图形形状的最大信息。

Arnold Neumaier有一个网页http://www.mat.univie.ac.网址:/~neum/glopt.html在全局优化上,您可以找到有用的链接。你也可以用关键词搜索网页响应面优化。

$\端组$
0
$\开始组$

让我向其他建议Nelder-Mead单纯形法(顺便说一下,这与求解线性规划的单纯形算法完全无关)。我听说Nelder-Mead在实践中的表现出奇的好,尽管理论上对此知之甚少。

$\端组$
2
  • $\开始组$ 是的,“令人惊讶”的部分是真的。尽管在无导数方法方面取得了进步,Nelder-Mead仍然是一种有竞争力的DFO算法,这也是为什么它仍然在许多优化课程中教授的原因。然而,它是一种启发式方法,并没有利用问题的结构。此外,当一个函数的评估特别昂贵时,我的观点是,统计方法(响应面建模,特别是投影到低维空间时)可以帮助人们避免进行不必要的评估。Nelder-Mead的设计目的并不是为了节约功能评估。 $\端组$
    – 吉利德
    评论 2010年9月5日3:37
  • $\开始组$ 补充一下吉利德的评论:虽然我通常对下坡单纯形很热情,但它仍然是一种“不那么快和肮脏”的方法;对于一个包含大量独立变量的问题,值得一试的是,看看在他的问题中可以利用什么结构,而不是盲目地将其提供给优化器。 $\端组$ 评论 2010年9月5日9:58
0
$\开始组$

你可以试试这个代码.

这里是纸张这描述了它的工作原理。

$\端组$

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.