【问题标题】:Can PSO converge at a point with non-zero derivative?PSO 可以收敛于非零导数的点吗?
【发布时间】:2018-12-06 06:04:21
【问题描述】:

我正在使用这个库 - https://pythonhosted.org/pyswarm/ 来查找凸函数的全局最小值。这只是开始并致力于非凸函数。我使用线性回归找到了全局最小值,但问题是 PSO 似乎收敛于不同的点,具体取决于我设置的 omega 和 phi(s) 的值。通过将成本与线性回归给出的最小值进行比较,我可以确认这些点不是全局最小值。
这在 PSO 中是否可能收敛(10 次迭代后值不会改变)还是我在某处犯了一些错误?

【问题讨论】:

  • 一般来说,如果您发现自己(使用 PSO)没有取得进一步进展,首先检查您的 swarm 中当前正在使用的其他解决方案(非最佳),然后您可能需要调整拓扑您的群体,例如您的粒子如何相互通信(您是否只存储 1 个最佳解决方案或一小部分以从每一代中提取?)您的群体中有多少粒子?不要忘记您也可以重新开始,通过获取当前状态并注入一些具有随机域位置的粒子来重新优化您的优化。 (只是为了帮助多样性)

标签: python optimization convex-optimization particle-swarm


【解决方案1】:

PSO 绝对有可能在错误的地方收敛。关于元启发式的事情是它们可能需要很长时间才能运行。在错误的地方进行十次迭代是非常可能的。此外,收敛到绝对全局最小值需要很长时间,并且算法永远无法证明它收敛到全局最小值,只能达到终止标准。你对元启发式算法的期望应该是它最终会给你一个好的答案,而不是它总是收敛到全局最小值。

为了弥补这些缺点 - 运行时间长,无法保证全局最小化 - 您将获得一种可以处理任何类型的函数评估或适应度情况的优化算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多