粒子群算法PSO基本知识快速了解

粒子群算法PSO基本知识

1. 基本思想

2. PSO算法流程

3. 速度和位置更新规则

4. 参数分析与设置

4.1 群体规模N

4.2 最大速度Vmax

4.3 权重因子

4.4 收敛因子K替代权重因子

总结:

参考:


粒子群算法PSO

1. 基本思想

粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解调整自己的速度和位置

2. PSO算法流程

粒子群算法PSO基本知识快速了解_第1张图片

迭代终止条件根据具体问题一般选为最大迭代次数Gk或(和)粒子群迄今为止搜索到的最优位置满足预定最小适应阈值。适应性函数是评价粒子是否处于最优位置的函数,也是优化问题的目标函数。

 

3. 速度和位置更新规则

PSO算法初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。(pbest为当前粒子自身最好位置,gbest为当前整个群体中所有粒子发现的最好位置)

粒子群算法PSO基本知识快速了解_第2张图片

 

对于公式(1),由三部分组成:

公式(1)的第①部分称为“记忆项”,表示上次速度大小和方向的影响;

公式(1)的第②部分称为“自身认知项”,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;

公式(1)的第③部分称为“群体认知项”,是一个从当前点指向粒子群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。

以公式(1)和(2)为基础,形成了PSO标准形式

在公式(2)的基础上,引入惯性因子w(记忆项中),得到公式(3):

粒子群算法PSO基本知识快速了解_第3张图片

动态ω能获得比固定值更好的寻优结果。动态ω可在PSO搜索过程中线性变化,也可以根据PSO性能的某个测度函数动态改变。目前采用较多的是线性递减权值(Linearly Decreasing Weight,LDW)策略。

粒子群算法PSO基本知识快速了解_第4张图片

ω的引入,使用PSO算法性能有了很大的提高,针对不同的搜索问题,可以调整全局和局部搜索能力,也使PSO算法有成功地应用于很多实际问题。

因此,公式(3)和(2)构成了标准PSO算法

4. 参数分析与设置

PSO算法设定参数:群体规模N,惯性因子ω,学习因子c1和c2,最大速度Vmax,最大迭代次数Gk。

4.1 群体规模N

一般取20~40,对较难或特定类别的问题可以取到100~200。现在尚没有确定最佳粒子数量的理论分析,因此通常使用敏感性测试来获得它。

4.2 最大速度Vmax

决定当前位置最好位置之间的区域的分辨率(或精度)。如果太快,则粒子有可能越过极小点;如果太慢,则粒子不能在局部极小点之外进行足够的探索,会陷入到局部极值区域内。这种限制可以达到防止计算溢出、决定问题空间搜索的力度的目的。

4.3 权重因子

包括惯性因子ω和学习因子c1和c2。

(1) 惯性因子ω

ω使粒子保持着运动惯性,使其具有扩展搜索空间的趋势,有能力探索新的区域。如果ω=0,则速度只取决于当前位置和历史最好位置,速度本身没有记忆性。假设一个粒子处在全局最好位置,它将保持静止,其他粒子则飞向它的最好位置和全局最好位置的加权中心。粒子将收缩到当前全局最好位置。

(2) 学习因子c1和c2

c1和c2代表将每个粒子推向pbest和gbest位置的统计加速项的权值。较低的值允许粒子在被拉回之前可以在目标区域外徘徊,较高的值导致粒子突然地冲向或越过目标区域

1) 当c1=0时

此时粒子没有了认知能力,变为只有社会的模型(social-only)。此时被称为全局PSO算法。粒子有扩展搜索空间的能力,具有较快的收敛速度,但由于缺少局部搜索,对于复杂问题比标准PSO更易陷入局部最优

2) 当c2=0时

粒子之间没有社会信息,模型变为只有认知模型(cognition-only)。此时被称为局部PSO算法。由于个体之间没有信息的交流,整个群体相当于多个粒子进行盲目的随机搜索收敛速度慢,因而得到最优解的可能性小。

3) 当c1=c2=0时

粒子将一直以当前速度飞行,直到边界,很难找到最优解。

4.4 收敛因子K替代权重因子

粒子群算法PSO基本知识快速了解_第5张图片

总结:

PSO算法在优化过程中,种群的多样性算法的收敛速度之间始终存在着矛盾。对标准PSO算法的改进,无论是参数的选取、小生境技术的采用或是其他技术与PSO的融合,其目的都是希望在加强算法局部搜索能力的同时,保持种群的多样性,防止算法在快速收敛的同时出现早熟收敛。

PSO算法的一些优点:(1)它是一类不确定算法。不确定性体现了自然界生物的生物机制,并且在求解某些特定问题方面优于确定性算法。(2)是一类概率型的全局优化算法。非确定算法的优点在于算法能有更多机会求解全局最优解。(3)不依赖于优化问题本身的严格数学性质。(4)是一种基于多个智能体的仿生优化算法。粒子群算法中的各个智能体之间通过相互协作来更好的适应环境,表现出与环境交互的能力。(5)具有本质并行性。包括内在并行性和内含并行性。(6)具有突出性。粒子群算法总目标的完成是在多个智能体个体行为的运动过程中突现出来的。(7)具有自组织和进化性以及记忆功能,所有粒子都保存优解的相关知识。(8)都具有稳健性。稳健性是指在不同条件和环境下算法的实用性和有效性,但是现在粒子群算法的数学理论基础还不够牢固,算法的收敛性还需要讨论。

参考:

[1] https://blog.csdn.net/weixin_40679412/article/details/80571854

[2] https://blog.csdn.net/myarrow/article/details/51507671

[3] https://blog.csdn.net/daaikuaichuan/article/details/81382794

[4] https://www.cnblogs.com/dengfaheng/p/9637751.html

这是本人参阅这些博客所作的整理,十分感谢各位博主的分享。

你可能感兴趣的:(机器学习)