繁体   English   中英

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

[英]How to ensure my optimization algorithm has found the solution?

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

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

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

如评论之一所述, fminsearch()和相关的 function fminunc()将返回局部最小值 它不保证您将获得全球最低限度。

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

完全确定您拥有全局最小值的唯一方法是知道您的 function 是否是(即您的 function 只有一个最小值。)这必须通过分析来完成。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM