algorithm - 寻找求解时间不可忽略的多变量函数的最优解?

标签 algorithm machine-learning optimization data-science simplex

所以我遇到了这个问题,我必须找到最佳分布,当通过函数时,该分布与已知表面相匹配。我写了一个脚本,它在给定一些参数的情况下创建分布,并吐出一个将给定表面与已知表面进行比较的指标,但是这个脚本花费了不可忽略的时间,所以我不能只运行一组非常大的参数找到最佳参数集。我研究了单纯形法,它似乎是正确的路径,但它并不是我所需要的,因为我没有一组线性方程,也不知道参数的约束,而是一种给出的方法单个输出(仅此而已)。谁能指出我如何解决这个问题的正确方向?谢谢!

为了再次快速回顾我的过程/问题,我有一组定义分布的参数(此时为 2,但稍后会扩展到更多)。该分布用于创建一个表面,将其与已知表面进行比较,并生成一个误差度量。我想找到最佳参数集,但由于时间限制无法遍历任意多的参数。

最佳答案

一种情况与您所问的一致,即您有一个合理易处理的概率分布生成未知值的模型。这个未知值经历了一个复杂的、在数学上不是很好的过程,并产生了一个观察结果。您的表面对应于观察到的观察概率分布。您会很高兴找到在理论和实际表面分布之间提供良好最小二乘拟合的参数。

拟合过程的一种近似方法是计算概率分布输出空间中的值网格。每组参数都会为您提供此网格上每个点的概率。 not nice 过程将此处的每个网格点映射到表面空间中最近的网格点。最小二乘拟合是为第一个网格计算的概率的二次方,因为为表面中的网格点计算的概率是为第一个网格中的值计算的概率的总和,这些值映射到更接近该点的某些东西表面比表面上的任何其他点。这意味着它具有您可以计算的一阶(甚至二阶)导数。如果您的概率分布足够好,您可以使用链式法则计算初始参数中拟合的最小二乘法的导数。这意味着您可以使用优化方法来计算最佳拟合参数,这不仅需要一种方法来计算要优化的函数,还需要计算其导数,这些通常比仅需要函数值的优化方法(例如 Nelder)更有效-Mead 或 Torczon Simplex。参见例如http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/optim/package-summary.html .

另一种可能的方法是通过称为 EM 算法的东西。这里 EM 代表期望最大化。如果您可以看到一些您实际上看不到的隐藏状态,那么它可以用于寻找最大似然拟合的情况。在这种情况下,初始分布产生的输出可能就是这样一个隐藏状态。一个起点是 http://www-prima.imag.fr/jlc/Courses/2002/ENSI2.RNRF/EM-tutorial.pdf .

关于algorithm - 寻找求解时间不可忽略的多变量函数的最优解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833334/

相关文章:

amazon-web-services - 此数据文件中的架构必须与数据源 : Amazon Machine Learning 匹配

python - Scikit-learn:避免高斯过程回归中的过度拟合

java - 优化Java中的128位序列按位运算

c - 这个 RGB 到 XYZ 颜色空间转换算法有什么问题?

algorithm - 为什么数组中所有元素之和的空间复杂度是O(n)?

javascript - 尝试过的二叉树示例将输出作为一个对象,我怎样才能将这个对象值放入一个数组中以处理进一步的问题

python - 谁能解释一下这个列表理解?

MySQL优化存储过程中慢UNION查询

java - 由于 freeMemory() 仅报告长期存在的对象,如何跟踪 Java 中的任何对象创建?

algorithm - GUID 或 GUID 的 SHA1 哈希值之间发生冲突的可能性更大吗?