【问题标题】:Particle Swarm Optimisation: Converges to local optima too quickly in high dimension space粒子群优化:在高维空间中过快收敛到局部最优
【发布时间】:2021-11-04 09:14:36
【问题描述】:

在投资组合优化问题中,我有一个高维 (n=500) 空间,其上限和下限为 [0 - 5,000,000]。使用 PSO,我发现该解决方案可以快速收敛到局部最优,并将问题缩小到多个领域:

  1. 速度:粒子速度在上限/下限 [0 - 5,000,000] 的范围内迅速衰减到极小的步长 [0-10]。我发现的一个插件是我可以将速度更新函数更改为二进制步长 [例如250,000] 通过使用 sigmoid 函数,但这显然只是一个插件。关于如何激励保持高速度的任何建议?
  2. 初始可行解决方案:在初始化 1,000 个粒子时,我可能会发现在我的约束条件下,只有 5% 是可行解决方案。我认为我可以通过重新运行初始化来改进搜索空间,直到所有粒子都在可行空间中开始,但事实证明这实际上会导致性能更差,并且所有粒子都停留在它们的初始化向量附近。

关于我的参数,w1=c1=c2=0.5。这可能是这两个问题的根源吗?

我对这方面的任何建议持开放态度,因为理论上它应该是优化投资组合的好方法,但实际上我没有看到这一点。

【问题讨论】:

    标签: machine-learning particle-swarm


    【解决方案1】:

    考虑更改参数。使用 w=0.5 可以“稳定”粒子,从而防止从局部最优值中逃逸,因为它已经收敛。此外,我建议将 c1 和 c2 的值设置为大于 1(我认为 2 是建议值),并可能修改 c1 的值(趋向全球最佳的趋势)略小于 c2 以防止过度拥挤一种解决方案。

    无论如何,您是否尝试过使用大量粒子进行 PSO?人们通常使用 100-200 个粒子来解决 2-10 维问题。我不认为 500 维空间中的 1,000 个粒子会切割它。我还建议使用更高级的初始化方法,而不是正态分布或均匀分布(例如混沌映射、Sobol 序列、拉丁超立方体采样)。

    【讨论】:

    • 您对 w、c1 和 c2 的指导非常有帮助。我对这些参数进行了优化,并使用 w-0.5 和 c1=c2=1.75 找到了更好的解决方案。我将研究您提到的各种初始化方法。
    • @Toby-wan 如果您想了解更多相关信息,我建议您阅读 Yang (dl.acm.org/doi/10.5555/1628847) 的 Nature Inspired Metaheuristic。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多