optimization - 优化已找到全局最小值,但收敛到局部最小值
问题描述
我正在使用随机优化算法 CMA-ES。尽管它在第一个周期中找到了全局最小值(我知道,因为它是一个虚构的基准测试),但在一些周期之后,算法收敛到另一个最小值(一个局部最小值,因为它具有更大的成本函数值)。
每个人都有这方面的经验吗?
我是否必须关心它是否收敛到局部最小值,因为它已经找到了全局最小值?像这样只使用全局最小值而不关心算法在哪里收敛是错误的吗?
我对结果的看法是,这是由于正态分布而发生的,全局最小值只有几个解,但局部最小值有很大比例的解。(我尝试了很多不同的人口值,但结果是一样的)
预先感谢您的帮助!
解决方案
在运行进化算法时,保持全局“最佳”解决方案是很常见的,特别是如果它们是允许从更好的结果转向更坏结果的那种。
如果您正在运行具有近似适应度函数的算法并且获得足够好的结果是可以的,那么您可以使用它的收敛结果。根据您要解决的问题,过度拟合解决方案可能非常好或非常糟糕。
如果您的适应度函数不是近似值并且是要优化的正确指标,则只需保留表现最佳的人并在完成算法运行时使用它。
推荐阅读
- java - Java 8 如何确保我们的代码检查完整的证书链?
- tsql - SQL NOT LIKE 与动态列表的比较
- ruby-on-rails - 我收到此错误:为数据库适配器指定了“sqlite3”,但未加载 gem
- javascript - 如何删除 2 个数组上的相同值?
- javascript - If, Else if, Else - 不输出“else”代码
- c# - 公共变量在 Inspector 中工作,但不在场景或游戏窗口中显示
- python - 在一行中遍历两个系列,然后应用逻辑
- html - 缩小工具删除的空白会影响 HTML 的外观
- laravel - 在 ubuntu 和 nginx 上部署 laravel api rest
- ios - 苹果手表上 facebook Messenger 的自定义回复