【超参数寻优】量子粒子群算法(QPSO) 超参数寻优的python实现
一、粒子群算法的缺点
本人之前的博文(参考资料【1】)已经详细介绍了PSO算法,学习本博文前需要先学习PSO算法。
PSO算法的缺点:
1、需要设定的参数(惯性因子 w w w,局部学习因子 c 1 {c_1} c1和全局学习因子 c 2 {c_2} c2)太多,不利于找到待优化模型的最优参数。
2、粒子位置变化缺少随机性,容易陷入局部最优的陷阱。
二、量子粒子群算法
量子粒子群优化(Quantum Particle Swarm Optimization,QPSO)算法取消了粒子的移动方向属性,粒子位置的更新跟该粒子之前的运动没有任何关系,这样就增加了粒子位置的随机性(参考资料【2】)。
量子粒子群算法中引入的新名词:
mbest:表示pbest的平均值,即平均的粒子历史最好位置。
量子粒子群算法的粒子更新步骤:
步骤一:计算mbest
M b e s t = 1 M ∑ i = 1 M p b e s t _ i {M_{best}} = \frac{1}{M}\sum\limits_{i = 1}^M { {p_{best\_i}}} Mbest=M1i=1∑Mpbest_i
其中 M M M表示粒子群的大小, p b e s t _ i {p_{best\_i}} pbest_i表示当前迭代中的第 i i i个 p b e s t pbest pbest。
步骤二:粒子位置更新
P i = ϕ ⋅ p b e s t _ i + ( 1 − ϕ ) g b e s t {P_i} = \phi \cdot {p_{best\_i}} + (1 - \phi )gbest Pi=ϕ⋅p