粒子群算法的修正

基础的PSO算法可以成功解决一些问题,例如数学优化问题、组合问题即多层神经网络训练等。但也存在着算法收敛性与收敛速度等问题,因此对PSO算法有许多修正方法,用于提升性能。这些修改包括引入惯性权重、最大速度、速度收缩、确定个人最佳和全局最佳(或局部最佳)位置以及不同的速度模型等方法。

一、最大速度

决定优化算法效率和准确性的很重要的一个方面是 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群,即探索能力与利用能力的权衡。深度学习优化粒子群 粒子群优化算法改进_机器学习_02指算法探索不同搜索空间来确定最优解位置所在区域的能力;深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_03指算法在给定范围内寻找一个优秀候选解的能力。一个好的优化算法可以很好的平衡这两个目标的矛盾。在PSO中,是利用速度更新公式来达到这一目标。
如前面几篇所述,粒子 深度学习优化粒子群 粒子群优化算法改进_机器学习_04

深度学习优化粒子群 粒子群优化算法改进_搜索空间_05

对于 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_06 PSO算法, 粒子 深度学习优化粒子群 粒子群优化算法改进_机器学习_04 在第 深度学习优化粒子群 粒子群优化算法改进_算法_08

深度学习优化粒子群 粒子群优化算法改进_机器学习_09

常数最大速度

若速度过大,则容易使粒子飞出搜索空间边界,造成粒子发散。为控制粒子的探索能力(即使粒子尽可能不飞出边界),引入速度的边界限制,即最大速度,以 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10 代表允许的在第 深度学习优化粒子群 粒子群优化算法改进_算法_08 维上的最大速度,则粒子速度更新公式可改为:

深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_12, 其中,深度学习优化粒子群 粒子群优化算法改进_搜索空间_13 是根据上述速度更新公式计算得到的。最大速度对搜索的影响如下所示:

深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_14

深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10 的值是很重要的,它控制着由逐渐增加的速度所决定的搜索粒度。 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10 越大,全局探索能力越强; 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10 越小,局部开发能力越强。因此,需要确定一个合适的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10 值,以使粒子不能移动的太快或太慢,使得算法的探索与开发能力相平衡。通常, 深度学习优化粒子群 粒子群优化算法改进_搜索空间_19深度学习优化粒子群 粒子群优化算法改进_机器学习_20

控制最大速度有许多优势,但也存在着一些问题:其一,最大速度不仅改变步长,也改变粒子移动的方向,可能有利于最优解的搜素,也可能不利;其二,当粒子的所有速度都达到最大速度时,就会使得粒子的搜索域变为一个的 深度学习优化粒子群 粒子群优化算法改进_机器学习_21 超立方体,这就使得粒子可能跳过最优解,也很难对局部区域进行良好的开发利用。这一问题可使用随时间变化的最大速度来解决(即 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_10

可利用双曲正切函数对速度进行限制,降低 PSO算法对 深度学习优化粒子群 粒子群优化算法改进_机器学习_20 的敏感性,如:深度学习优化粒子群 粒子群优化算法改进_算法_24

动态最大速度

1.当经过 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_25

深度学习优化粒子群 粒子群优化算法改进_搜索空间_26

2.指数衰减:深度学习优化粒子群 粒子群优化算法改进_搜索空间_27,其中,深度学习优化粒子群 粒子群优化算法改进_计算机视觉_28 是由实验或误差或正交验证等方法发现的一个正常数,深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_29

二、惯性权重

惯性权重可作为一个不使用最大速度时的机制,虽然对速度更新中第一项的作用上很成功,但并不能完全消除最大速度。惯性权重 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 控制先前速度对新速度的影响,对于 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_06 PSO算法, 粒子 深度学习优化粒子群 粒子群优化算法改进_机器学习_04 在第 深度学习优化粒子群 粒子群优化算法改进_算法_08

深度学习优化粒子群 粒子群优化算法改进_计算机视觉_34

大的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 值提升探索能力,增加多样性;小的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 值提升局部开发能力,但太小的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 会使种群丧失探索能力,小的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 值使得对应的动量也小,这样使得粒子的方向变化会很容易。深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30

对于 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 的设置,可在迭代的初始阶段设置一个大一点静态值,使得可以充分搜索,之后使用动态的 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 ,使得粒子对局部区域的开发能力逐渐增强。深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 值和加速度常数之间的重要关系是至关重要的,因此 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30 的选择需要与 深度学习优化粒子群 粒子群优化算法改进_搜索空间_44 一同进行。需满足:深度学习优化粒子群 粒子群优化算法改进_算法_45,这保证粒子轨迹线的收敛,若不满足,则会使粒子发散或产生循环行为。

一些动态变化的惯性权重如下:
1.随机调整:在每一代使用随机选择的不同的惯性权重 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_30

2.线性衰减: 深度学习优化粒子群 粒子群优化算法改进_算法_48 ,其中,深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_29 是执行算法的最大时间步数,深度学习优化粒子群 粒子群优化算法改进_搜索空间_50 为初始惯性权重,深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_51 为终止惯性权重,有深度学习优化粒子群 粒子群优化算法改进_搜索空间_52

3.非线性衰减:非线性衰减相较于线性衰减,进行探索的时间较短,更多的时间用在开发优秀解上。非线性衰减在平滑搜索的空间上更合适。有以下方法:
(1)深度学习优化粒子群 粒子群优化算法改进_机器学习_53,其中 深度学习优化粒子群 粒子群优化算法改进_算法_54
(2)深度学习优化粒子群 粒子群优化算法改进_计算机视觉_55,可取 深度学习优化粒子群 粒子群优化算法改进_机器学习_56深度学习优化粒子群 粒子群优化算法改进_算法_57 是惯性权重上一次改变时的时间。只有当种群的适应度没有大的变化时,惯性权重才会发生改变。
(3)自适应惯性权重,其中惯性值的变化量与群体的相对改进成正比,即 深度学习优化粒子群 粒子群优化算法改进_机器学习_58 ,其中相对改进 深度学习优化粒子群 粒子群优化算法改进_机器学习_59深度学习优化粒子群 粒子群优化算法改进_搜索空间_60
。该方法的速度更新与认知部分无关,每个粒子的权重仅与距邻居中最优位置的距离有关。

4.模糊适应权重

5.增加型权重

三、限制系数

限制系数设置如下:
深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_61

其中 深度学习优化粒子群 粒子群优化算法改进_机器学习_62深度学习优化粒子群 粒子群优化算法改进_计算机视觉_63,需满足 深度学习优化粒子群 粒子群优化算法改进_搜索空间_64

上述方程可以衍生出一种对种群特征值动态分析的方法。上述限制条件确保了在不需要最大速度时,使得算法可收敛于一个稳定点,深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_65 表示速度在每次迭代时的衰减程度。参数 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_66 控制种群的探索与开发能力的平衡。当 深度学习优化粒子群 粒子群优化算法改进_深度学习优化粒子群_67 时,算法通过局部开发达到快速收敛,整个种群的行为几乎类似于爬坡;当 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_68 时,算法有很高的探索能力,收敛很慢。通常, 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_66

四、同步更新与异步更新

同步更新时,最佳位置与粒子位置更新是分开进行的,一次迭代中当所有粒子更新完成后再更新最佳位置;

异步更新时,在每次有粒子位置更新后就计算新的最佳位置。

异步更新有着关于搜索空间最佳区域及时反馈的特性,而同步更新则是每迭代一次,只反馈一次信息。异步更新更适用于像 深度学习优化粒子群 粒子群优化算法改进_搜索空间_70 PSO 这种低连通性的结构,而同步更新则更适用于像 深度学习优化粒子群 粒子群优化算法改进_计算机视觉_06

五、速度模型

认知模型

在速度更新公式中去掉了社会部分,速度更新公式变为:深度学习优化粒子群 粒子群优化算法改进_机器学习_72
认知模型中,粒子的行为可以类比为怀旧,即粒子有回到原来最佳位置的随机趋势。相较于全模型,认知模型是脆弱的,趋向于在初始区域进行局部搜索,其在动态环境中的表现是较差。

社会模型

在速度更新公式中去掉了认知部分,速度更新公式变为:深度学习优化粒子群 粒子群优化算法改进_算法_73

无私模型

无私模型基本上是社会模型,但是邻域最佳解只从粒子的邻域中选择。即粒子本身是不允许成为最佳邻域解的。无私模型在动态变化的环境中表现也很惨。

有关粒子群算法的其他信息,可参见其之前的两篇博客:
粒子群算法(PSO)——总体概述粒子群算法(PSO)——算法详解(一)