PSO 能否收敛于导数非零的点?
Can PSO converge at a point with non-zero derivative?
我正在使用这个库 - https://pythonhosted.org/pyswarm/ 来查找凸函数的全局最小值。这只是为了开始并致力于非凸函数。我使用线性回归找到了全局最小值,但问题是 PSO 似乎收敛于不同的点,具体取决于我设置的 omega 和 phi(s) 的值。通过将成本与线性回归给出的最小值进行比较,我可以确认这些点不是全局最小值。
这在 PSO 中是否可能收敛(10 次迭代后值不会改变)或者我在某处犯了一些错误?
PSO绝对有可能收敛在错误的地方。关于元启发式的事情是他们可能需要很多时间才能 运行。在错误的地方重复十次是非常可能的。此外,收敛到绝对全局最小值将需要很长时间,并且该算法永远无法证明它已收敛到全局最小值,只能达到终止标准。你对元启发式的期望应该是它最终会给你一个好的答案,而不是它总是收敛到全局最小值。
为了补偿这些缺点——运行 时间长,不能保证全局最小化——你得到了一个可以处理任何类型的函数评估或适应度景观的优化算法。
我正在使用这个库 - https://pythonhosted.org/pyswarm/ 来查找凸函数的全局最小值。这只是为了开始并致力于非凸函数。我使用线性回归找到了全局最小值,但问题是 PSO 似乎收敛于不同的点,具体取决于我设置的 omega 和 phi(s) 的值。通过将成本与线性回归给出的最小值进行比较,我可以确认这些点不是全局最小值。
这在 PSO 中是否可能收敛(10 次迭代后值不会改变)或者我在某处犯了一些错误?
PSO绝对有可能收敛在错误的地方。关于元启发式的事情是他们可能需要很多时间才能 运行。在错误的地方重复十次是非常可能的。此外,收敛到绝对全局最小值将需要很长时间,并且该算法永远无法证明它已收敛到全局最小值,只能达到终止标准。你对元启发式的期望应该是它最终会给你一个好的答案,而不是它总是收敛到全局最小值。
为了补偿这些缺点——运行 时间长,不能保证全局最小化——你得到了一个可以处理任何类型的函数评估或适应度景观的优化算法。