【问题标题】:Maximizing a function f(x) without evaluating the derivative在不计算导数的情况下最大化函数 f(x)
【发布时间】:2019-02-25 19:30:50
【问题描述】:

我是一名实验物理学家,试图在我的测量中自动进行相对简单(但敏感)的优化,目前完全手动完成,占用了我很多时间。在 cmets 中经过一些思考和提示后,我将问题简化为以下几点:

我想最大化一些函数 f(x)。但是,我只能评估 f(x);我无法明确评估它的导数。此外,我无法对大范围的 x 进行采样;如果 f(x) 阈值,我可以猜到一些初始步长 eps,其中 f(x_0 + eps) > 阈值也成立(但是,我不知道 f(x_0 + eps) > 或

我目前如何手动执行如下:我评估 f(x_0),然后评估 f(x_0 + eps)。如果这导致减少,我将评估 f(x_0-eps)。基于梯度(基本上我只看是否有大步或大步超出我无法跨越的阈值),我要么增加或减少 eps 并继续沿同一方向搜索,直到找到最大值,我注意到这是因为 f (x) 开始减少。然后我回到那个最大值。这样,我总是在探查最大值的顶部,因此保持在安全范围内。

【问题讨论】:

  • 我会说您需要定义问题或将其分解,例如finding local optimum
  • 我进一步分解了它。

标签: python algorithm measurement feedback


【解决方案1】:

我会说您需要定义问题或将其分解,例如finding local optimumOr Gradient descent

【讨论】:

  • 第二个似乎非常相关。我会看看那个。但是,我有一个未知函数而不是已知函数,所以符号数学并没有真正的帮助。但结构可能。
  • 是的,我遇到的麻烦是我无法评估导数。可以通过有限的差异来做到这一点,但这似乎效率低下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
相关资源
最近更新 更多