如何确保我的优化算法找到了解决方案



我正在进行数值优化,试图找到与数据的某些矩最匹配的统计模型的参数。我总共有6个参数需要查找。我写了一个matlab函数,它以参数为输入,并给出经验矩的平方偏差之和作为输出。我使用fminsearch函数来查找参数,它给了我一个解决方案。

然而,我不确定这是否真的是一个全球最低限度。我可以做什么类型的检查来确保数值解是正确的?由于高维度,绘制函数具有挑战性。任何解决这类问题的一般性建议也值得赞赏。

您正在描述全局优化问题的困难

如其中一条注释中所述,fminsearch()和相关函数fminunc()将返回局部最小值它不能保证您将获得全球最低限额

检查你得到的答案是否真的是全局最小值的一个简单方法是从不同的起点多次运行函数。如果答案都收敛到相同的值,则可能是全局最小值。如果您找到一个错误值较低的答案,那么最后一个答案不是全局最小值。

要完全确定你有全局极小值,唯一的方法是知道你的函数是否是凸的(即你的函数只有一个极小值。(这必须通过分析来完成。

如果无法进行分析,您可能需要考虑许多全局优化方法,包括一些可用的MATLAB工具箱。

最新更新