在不知道原始功能的情况下最小化已知成本函数

时间:2019-07-24 10:10:03

标签: python scipy minimization scipy-optimize

我试图通过调整两个参数使一个功能适合另一功能。但我不知道此功能的形式。我只有成本函数,因为在计算此函数时使用了LAMMPS(分子动力学)。我需要一些我只能给出成本函数和猜测的工具,然后将其最小化。

我一直在寻找SciPy优化,但是它似乎需要我没有的原始功能。

1 个答案:

答案 0 :(得分:0)

函数逼近算法需要您对数学模型的行为做出一些假设。

如果从黑匣子的角度来看事情,可能会发生三种情况-

X->模型-> Y

  1. 您有X和MODEL,但没有Y;这是模拟
  2. 您有MODEL和Y,但没有X;这是优化
  3. 您有X和Y,但没有MODEL;这是数学建模

但是有一个陷阱。您永远不能直接做3.。而是使用技巧将3.重新构造为2.(优化问题)。诀窍是说您假设模型为y = mx + c,然后找到新的输入m和c而不是找到模型。因此,我们可以改为-

  1. 您有(MODEL,X)和Y,但没有M,C(新输入);这也是优化。

(M,C)->(MODEL + X)-> Y

这意味着,即使您不了解输入函数,也必须假设一些模型,然后估算参数,这些参数在调整时让模型表现得尽可能接近输入函数。

基本上,您需要的是机器学习。您有输入,您有输出(或者您可以获取它们,但使用大量输出运行第一个功能),您就有成本函数。假设一个模型,并对其进行训练以近似您的输入函数。

如果不确定使用什么,则使用广义函数近似器AKA神经网络。但是请注意,它需要更多的数据来训练。