智能优化算法 | 您所在的位置:网站首页 › 粒子群算法惯性权重作用是什么 › 智能优化算法 |
前言:
本文主要参考B站的一篇学习视频后,加之自己的理解和浓缩精华,不想看文字的可以直接划到末尾去b站看原视频,非常通俗易懂。 理论知识:感性认知:如下面一张图片所示。在一个范围内,以三点(三)为例,假如此时A点为目前的最优点,那么B点和C点都可能会向A点靠,但不是直接到A点而是下一步(下一个迭代循环)会向A点靠。 首先:设置各个参数:w:0.5-0.8;c1、c2:0.1-2;以及vmax和xmax:粒子的飞行边界,取决于优化函数。 接下来介绍算法具体步骤: 初始化粒子群:设定粒子个数N,并将所有的粒子初始到某个值(位置)上计算所有粒子的适应度。计算待更新的粒子的新速度,以及待更新粒子的新位置(大小和方向)计算新位置的适应度,若新位置适应度更高,则将粒子位置更新,否则不更新判断迭代次数等条件是否满足终止循环条件,若满足,则退出且输出最优结果,否则返回第二步继续迭代计算。 PS:适应度的解释:就是满足我们需要优化的函数的结果的程度。例如,我们需要优化一个函数,并找到其的最小值,那么这个适应度就是值该粒子的函数值是不是全局最小的,或者比上一次的粒子的函数值更小,这个粒子的函数值就是否更小就作为本次迭代的粒子的适应度。 PS:在第三步中,计算出下一步粒子的速度和位置后,需要先进行一个边界检测,看速度和位置是否大于边界值,若速度或位置大于边界值,则直接用边界值替换该计算结果即可。 提醒:在初始化比如50个粒子时,在100次迭代中,找到了全局最优解(例如最小值),但不是意味着所有50个粒子全都收敛到了最小值的位置,我们只需要在100次迭代后有至少一个粒子收敛到了全局最优的位置,我们就能够得到这个最优解。别的粒子可能因为学习率等原因没能向最优解靠近,也没问题。但是这种模型的参数肯定是不如那种能够全体收敛至最优解的模型的参数来得好的。 优缺点分析:优点:原理简单,容易实现,参数较少。 缺点:容易早熟收敛,导致局部最优,且迭代后期的收敛速度很慢 解释:w参数前期要大一些,保证粒子的个体独立性强一些,能够多搜索一些位置,后期要小一些,多向其他粒子学习,尽可能收敛到全局最优。 参数设置的一些其他规律:前期:c1大一些c2小一些,保证粒子独立性。后期:c1小一些c2大一些,尽快收敛至全局最优。 改进方法: 针对以上参数的设定原理,实现参数的自适应变化这是对模型提升的一个好办法,例如可以将w设置成一个随着迭代次数增大而递减的函数。引入一些其他因素,比如速度,边界值随着迭代次数而增大或减小等等方法。结合一些其他的只能优化算法,例如遗传算法(GA),免疫算法,模拟退火算法等等,来帮助粒子跳出局部最优,改善收敛速度。 参考:参考b站相关视频——通俗易懂讲算法-最优化之粒子群优化(PSO) 链接:通俗易懂讲算法-最优化之粒子群优化(PSO) 谢谢b站这位up主的讲解,非常通透。 后续后续会有时间分析一些别的优化算法的自己的相关学习理解——遗传算法(GA)、梯度下降算法、主成分分析(PCA)等。 |
CopyRight 2018-2019 实验室设备网 版权所有 |