zt3ff3n 发表于 2021-11-24 21:37

如何理解大规模粒子群优化算法CCPSO2?

一句话解释

CCPSO2算法的核心贡献为基于高斯分布采样的新解产生策略和动态协同进化分组大小调整,即新解产生使用高斯分布进行生成而非传统的PSO变异算子,且协同进化的随机分组大小根据运行状态动态调整。
协同进化PSO简介

PSO算法

PSO的核心公式如下所示,其中和代表Global Best的加速系数,其中为2.05,为区间内均匀采样的一个值。 https://www.zhihu.com/equation?tex=c2 和 https://www.zhihu.com/equation?tex=r2 的定义方式同理,代表Personal Best的加速系数。 https://www.zhihu.com/equation?tex=%5Cchi 代表探索限制系数,即0.7298。


协同进化PSO

除了介绍PSO算法以外,还有必要介绍一下协同进化PSO,即CPSO。下图代表了一个经典的CPSO算法思路,其中最重要的部分是PSO评估和更新部分,这也是协同演化算法的名称来源。图中 https://www.zhihu.com/equation?tex=P_%7Bj.x_i%7D 代表在第个Swarm中,第个粒子的当前位置, https://www.zhihu.com/equation?tex=P_%7Bj.y_i%7D 代表在第个Swarm中,第个粒子的Personal Best位置。在CPSO中,一个Swarm代表一个子种群,用于演化部分解。那么从图中就可以看出,协同进化的核心步骤是将变量进行拆分,即第个Swarm只演化一部分变量,其他的变量固定使用该Swarm的已知全局最优值 https://www.zhihu.com/equation?tex=P_x.%5Chat%7By%7D 。
在局部变量演化的过程中,更新方法就与传统的PSO完全一样了。即判断新解是否优于局部最优解 https://www.zhihu.com/equation?tex=y 和全局最优解,再进行相应更新即可。


核心贡献

基于高斯分布的PSO采样

CCPSO2的一个核心贡献是将基于高斯采样的PSO (GPSO) 引入协同演化PSO框架内。具体来说,不同于传统的PSO算法,即需要计算速度值,然后根据速度值更新粒子的位置。GPSO直接基于一个高斯分布 https://www.zhihu.com/equation?tex=%5Cmathcal%7BN%7D%5Cleft%28%5Cfrac%7By_%7Bi%2C+d%7D%28t%29%2B%5Chat%7By%7D_%7Bd%7D%28t%29%7D%7B2%7D%2C%5Cleft%7Cy_%7Bi%2C+d%7D%28t%29-%5Chat%7By%7D_%7Bd%7D%28t%29%5Cright%7C%5Cright%29 ,采样新的粒子位置。
更具体来说,采样公式如下所示。在论文中 https://www.zhihu.com/equation?tex=p 为0.5,即算法有一半概率选择基于高斯分布进行采样,而另一半情况下选择基于柯西分布进行采样。值得一提的是, https://www.zhihu.com/equation?tex=%5Chat%7By%7D_%7Bi%2C+d%7D%5E%7B%5Cprime%7D%28t%29 代表了粒子的Local Best粒子,即该粒子以及其相邻两个粒子中的最优粒子。基于该方法进行采样,可以保证一定程度上的种群多样性,避免过早收敛。


动态分组大小调整

CCPSO2的另一个核心贡献是动态分组大小调整,调整原理非常简单,即判断在每一轮演化之后最优解是否有更新。如果最优解更新了,则证明分组大小有效。否则,从数组 https://www.zhihu.com/equation?tex=+%5C%7B+2+%2C+5+%2C+50+%2C+100+%2C+200+%5C%7D+ 中随机挑选一个新的分组大小。
CCPSO2整体流程

CCPSO2的核心算法如图所示,整体来说与上面的CPSO算法非常类似。比较大的区别是,由于CCPSO2采样高斯采样方式产生新解,因此CCPSO2算法还会计算每个粒子的Local Best粒子,并根据Local Best粒子采样得到新的粒子点。至于其他的部分,CCPSO2和CPSO算法是基本一致的。


实验结果

从实验结果来看,CCPSO2的效果远胜于以前的EPUS-PSO和DMS-PSO算法,并可以达到与基于DE的协同进化算法MLCC类似的性能。


总结

CCPSO2是大规模PSO优化领域非常经典的算法,该算法将高斯采样和动态种群大小调整引入到协同进化PSO算法中,进一步推进了PSO类算法的发展。尤其是对于基于PSO的大规模特征选择问题,该算法为PSO算法用于大规模特征选择奠定了基石。因此,对于大规模PSO优化领域感兴趣的同学,CCPSO2是一个非常值得了解的一个算法。

unityloverz 发表于 2021-11-24 21:40

一句话解释

CCPSO2算法的核心贡献为基于高斯分布采样的新解产生策略和动态协同进化分组大小调整,即新解产生使用高斯分布进行生成而非传统的PSO变异算子,且协同进化的随机分组大小根据运行状态动态调整。
协同进化PSO简介

PSO算法

PSO的核心公式如下所示,其中和代表Global Best的加速系数,其中为2.05,为区间内均匀采样的一个值。 https://www.zhihu.com/equation?tex=c2 和 https://www.zhihu.com/equation?tex=r2 的定义方式同理,代表Personal Best的加速系数。 https://www.zhihu.com/equation?tex=%5Cchi 代表探索限制系数,即0.7298。


协同进化PSO

除了介绍PSO算法以外,还有必要介绍一下协同进化PSO,即CPSO。下图代表了一个经典的CPSO算法思路,其中最重要的部分是PSO评估和更新部分,这也是协同演化算法的名称来源。图中 https://www.zhihu.com/equation?tex=P_%7Bj.x_i%7D 代表在第个Swarm中,第个粒子的当前位置, https://www.zhihu.com/equation?tex=P_%7Bj.y_i%7D 代表在第个Swarm中,第个粒子的Personal Best位置。在CPSO中,一个Swarm代表一个子种群,用于演化部分解。那么从图中就可以看出,协同进化的核心步骤是将变量进行拆分,即第个Swarm只演化一部分变量,其他的变量固定使用该Swarm的已知全局最优值 https://www.zhihu.com/equation?tex=P_x.%5Chat%7By%7D 。
在局部变量演化的过程中,更新方法就与传统的PSO完全一样了。即判断新解是否优于局部最优解 https://www.zhihu.com/equation?tex=y 和全局最优解,再进行相应更新即可。


核心贡献

基于高斯分布的PSO采样

CCPSO2的一个核心贡献是将基于高斯采样的PSO (GPSO) 引入协同演化PSO框架内。具体来说,不同于传统的PSO算法,即需要计算速度值,然后根据速度值更新粒子的位置。GPSO直接基于一个高斯分布 https://www.zhihu.com/equation?tex=%5Cmathcal%7BN%7D%5Cleft%28%5Cfrac%7By_%7Bi%2C+d%7D%28t%29%2B%5Chat%7By%7D_%7Bd%7D%28t%29%7D%7B2%7D%2C%5Cleft%7Cy_%7Bi%2C+d%7D%28t%29-%5Chat%7By%7D_%7Bd%7D%28t%29%5Cright%7C%5Cright%29 ,采样新的粒子位置。
更具体来说,采样公式如下所示。在论文中 https://www.zhihu.com/equation?tex=p 为0.5,即算法有一半概率选择基于高斯分布进行采样,而另一半情况下选择基于柯西分布进行采样。值得一提的是, https://www.zhihu.com/equation?tex=%5Chat%7By%7D_%7Bi%2C+d%7D%5E%7B%5Cprime%7D%28t%29 代表了粒子的Local Best粒子,即该粒子以及其相邻两个粒子中的最优粒子。基于该方法进行采样,可以保证一定程度上的种群多样性,避免过早收敛。


动态分组大小调整

CCPSO2的另一个核心贡献是动态分组大小调整,调整原理非常简单,即判断在每一轮演化之后最优解是否有更新。如果最优解更新了,则证明分组大小有效。否则,从数组 https://www.zhihu.com/equation?tex=+%5C%7B+2+%2C+5+%2C+50+%2C+100+%2C+200+%5C%7D+ 中随机挑选一个新的分组大小。
CCPSO2整体流程

CCPSO2的核心算法如图所示,整体来说与上面的CPSO算法非常类似。比较大的区别是,由于CCPSO2采样高斯采样方式产生新解,因此CCPSO2算法还会计算每个粒子的Local Best粒子,并根据Local Best粒子采样得到新的粒子点。至于其他的部分,CCPSO2和CPSO算法是基本一致的。

http://pic1.zhimg.com/v2-01224bdc413df2b6ee66a11dbb8e9076_r.jpg?source=1940ef5c
实验结果

从实验结果来看,CCPSO2的效果远胜于以前的EPUS-PSO和DMS-PSO算法,并可以达到与基于DE的协同进化算法MLCC类似的性能。


总结

CCPSO2是大规模PSO优化领域非常经典的算法,该算法将高斯采样和动态种群大小调整引入到协同进化PSO算法中,进一步推进了PSO类算法的发展。尤其是对于基于PSO的大规模特征选择问题,该算法为PSO算法用于大规模特征选择奠定了基石。因此,对于大规模PSO优化领域感兴趣的同学,CCPSO2是一个非常值得了解的一个算法。
页: [1]
查看完整版本: 如何理解大规模粒子群优化算法CCPSO2?