基于支持向量机回归的改进粒子群算法的制作方法

文档序号:22739353发布日期:2020-10-31 09:21阅读:295来源:国知局
基于支持向量机回归的改进粒子群算法的制作方法

本发明属于进化算法技术领域,涉及一种粒子群优化算法,具体涉及基于支持向量机回归的改进粒子群算法。



背景技术:

粒子群算法(particleswarmoptimization,pso)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种。源自kennedy和eberhart通过对鸟群某些社会行为的观察研究。由于pso操作简单、收敛速度快,因此在神经网络训练、半导体器件综合、决策调度等众多领域都得到了广泛的应用。但是粒子群算法对于离散的优化问题处理不佳,容易陷入局部最优。现在粒子群算法主要发展方向:

(1)调整pso的参数来平衡算法的全局探测和局部开采能力。如shi和eberhart对pso算法的速度项引入了惯性权重,并依据迭代进程及粒子飞行情况对惯性权重进行线性(或非线性)的动态调整,以平衡搜索的全局性和收敛速度。2009年张玮等在对标准粒子群算法位置期望及方差进行稳定性分析的基础上,研究了加速因子对位置期望及方差的影响,得出了一组较好的加速因子取值。

(2)设计不同类型的拓扑结构,改变粒子学习模式,从而提高种群的多样性,kennedy等人研究了不同的拓扑结构对pso性能的影响。针对pso存在易早熟收敛,寻优精度不高的缺点,于2003年提出了一种更为明晰的粒子群算法的形式:骨干粒子群算法(barebonespso,bbpso)

(3)将pso和其他优化算法(或策略)相结合,形成混合pso算法。如曾毅等将模式搜索算法嵌入到pso算法中,实现了模式搜索算法的局部搜索能力与pso算法的全局寻优能力的优势互补。

上述算法在优化复杂高维多模函数时,仍容易陷入局部最优。



技术实现要素:

为了解决上述的技术问题,本发明提出了一种基于支持向量机回归的粒子群改进算法,具体应用在函数优化、储能规划问题、模式识别和图像处理问题等复杂优化问题的求解过程。

本发明所采用的技术方案是:一种基于支持向量机回归的粒子群改进算法,其特征在于,包括以下步骤:

步骤1:初始化基于支持向量机回归改进粒子群算法的参数、种群位置和速度;

步骤2:计算每个粒子的适应度值,得到个体最优适应度值和群体最优适应度值,记录下每一次粒子位置和对应的适应度值并将其分别作为支持向量机回归的训练集和训练标签;

步骤3:在对应群体最优适应度值的粒子位置附近随机选取若干位置;

步骤4:将所取若干位置参数作为验证集输入支持向量机回归的输入参数中,得到对应的回归适应度值;

步骤5:选取所述步骤4对应的最优回归适应度值及对应位置;

步骤6:计算所述步骤5所选取的对应最优回归适应度值的位置的适应度值;

步骤7:用所述步骤6计算出的粒子位置替代所述粒子群中随机一个非对应最优适应度粒子的位置,形成新粒子;

步骤8:计算新粒子的适应度值,修改个体最优适应度值和群体最优适应度值;

步骤9:更新所有粒子的速度与位置;

步骤10:判断改进粒子群算法是否收敛或达到最大迭代次数,若是,则输出全局最优解的位置;否则回转执行步骤2。

作为优选,所述步骤1中,参数包括群体个数n、最大迭代次数k,惯性权重w,学习因子c1和c2,r1和r2为[-1,1]的随机数,随机位置数量t,随机位置随机数z为[-1,1]的随机数。

作为优选,所述步骤2还包括利用pso-svm计算出对应的支持向量机惩罚系数c和gamma值,其中支持向量机回归类型为e-svr,核函数类型为rbf核函数,e-svr中损失函数p=0.1。

作为优选,所述步骤2中,每一次粒子位置变化和其对应的适应度值数量会随着迭代次数的增加而增加,例如第一代已知三十一个粒子位置对应三十一个适应度,第二代会已知六十二个粒子位置对应六十二个适应度随后通过原粒子群算法计算出支持向量机惩罚系数c和gamma值。通过支持向量机回归,使得改进算法的全局性加强,局部收敛速度更快且更加精确。

作为优选,所述步骤3的具体实现过程为,最优位置为xn,旁边的随机位置xn’=xn+xn*zt,z为[-1,1]间的随机数,t为选取数量。增加了改进算法的全局性,有效的避免局部最优值。

作为优选,所述步骤9中,粒子群算法位置方程为:

vk+1id=wvkid+c1r1(pid-xid)+c2r2(pgd-xid);

粒子群算法速度更新的方程为:

xk+1id=xkid+vid;

w为惯性权值,k为迭代次数,c1和c2都为学习因子,r1和r2都为均匀分布在区间

[-1,1]内的随机数。第d个粒子位置和速度的变化范围分别为[xmin,xmax]和[vmin,vmax];

粒子群算法中粒子数为n,搜索空间为d维,第i个粒子的位置和速度分别为xi和vi,

xi=(xi1,...,xid,...,xid);

vi=(vi1,...,vid,...,vid);

群体中具有最优适应度粒子的位置记为:

pg=(pg1,pg2,...,pgd);

第i个粒子所经历解空间的最好位置为:

pi=(pi1,pi2,...,pid)。

本发明的有益效果:

本发明在当前全局最优的粒子位置旁随机取点,用支持向量机回归预测哪一随机点是最优的,然后再替换一个非最优粒子,进行下一次迭代,随着输入回归信息的不断增加,预测也会越来越精确。类比于当鸟群寻找食物的时候,鸟群总会往已知的最优位置行进,现在鸟群有一定概率不往最优位置行进且里面有了一位智者,会根据鸟群经过的点预判最优位置附近较优点的位置。本发明模拟这些行为,将原粒子群算法的随机值范围由[0,1]变为[-1,1],并在每次算完最优粒子位置之后在最优值旁边随机取值,用支持向量机回归预测哪一点是最优的,这样增强了群体的全局性和局部性,能有效增强全局和局部寻优能力。本发明能具体应用在函数优化、储能规划问题、模式识别和图像处理问题等复杂优化问题的求解过程中。

附图说明

图1:是本发明实施例的对于函数spheremodel的收敛图;

图2:是本发明实施例的对于函数generallizedrastrigin’s的收敛图;

图3:是本发明实施例的流程图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

如图3所示,本发明的一种基于支持向量机回归的粒子群改进算法,包括以下步骤:

步骤1:初始化基于支持向量机回归改进粒子群算法的参数,所述的参数包括群体个数n、最大迭代次数k,惯性权重w,学习因子c1和c2,r1和r2为[-1,1]的随机数,随机位置数量t,随机位置随机数z为[-1,1]的随机数;

步骤2:初始化种群位置和速度,计算每个粒子的适应度值,得到个体最优适应度值和群体最优适应度值,记录下每一次粒子位置和对应的适应度值并将其分别作为支持向量机回归的训练集和训练标签,利用pso-svm计算出对应的支持向量机惩罚系数c和gamma值,其中支持向量机回归类型为e-svr,核函数类型为rbf核函数,e-svr中损失函数p=0.1。

步骤3:在对应群体最优适应度值的粒子位置旁随机取若干位置;

步骤4:将所取若干位置参数作为验证集输入支持向量机回归的输入参数中,得到对应的回归适应度值;

步骤5:取步骤4对应的最优回归适应度值及对应位置选出;

步骤6:计算步骤5所选取的对应最优回归适应度值的位置的适应度值;

步骤7:用步骤6计算出的粒子位置替代之前粒子群中随机一个非对应最优适应度粒子的位置;

步骤8:计算新粒子的适应度值,修改个体最优适应度值和群体最优适应度值;

步骤9:更新所有粒子的速度与位置;

步骤10:判断改进粒子群算法是否收敛或达到最大迭代次数,若是,则输出全局最优解的位置作为优化问题的解;否则回转执行步骤2。

作为优选,步骤2中,每一次粒子位置变化和其对应的适应度值数量会随着迭代次数的增加而增加,例如第一代已知三十一个粒子位置对应三十一个适应度,第二代会已知六十二个粒子位置对应六十二个适应度随后通过原粒子群算法计算出支持向量机惩罚系数c和gamma值。通过支持向量机回归,使得改进算法的全局性加强,局部收敛速度更快且更加精确。

作为优选:步骤3的具体实现过程为,最优位置为xn,旁边的随机位置xn’=xn+xn*zt。增加了改进算法的全局性,有效的避免局部最优值。

具体的实施方式为:

假设粒子群算法中粒子数为n,搜索空间为d维,第i个粒子的位置和速度分别为xi和vi,则:

xi=(xi1,...,xid,...,xid)(1),

vi=(vi1,...,vid,...,vid)(2);

群体中具有最优适应度粒子的位置记为:

pg=(pg1,pg2,...,pgd)(3);

第i个粒子所经历解空间的最好位置为:

pi=(pi1,pi2,...,pid)(4);

则粒子群算法位置和速度更新的方程为:

vk+1id=wvkid+c1r1(pid-xid)+c2r2(pgd-xid)(5);

xk+1id=xkid+vid(6);

其中,w为惯性权值,k为迭代次数,c1和c2都为学习因子,r1和r2都为均匀分布在区间[-1,1]内的随机数。第d个粒子位置和速度的变化范围分别为[xmin,xmax]和[vmin,vmax]。若由式(5)和(6)计算出的值超过了这个范围,则设置其为边界值。

在第一次迭代后,我们能够得到已知的pg,随后我们在pg旁随机取t个点,z为[-1,1]间的随机数,方程为

pg’=pg+pg*zt(7);

在鸟群中增添一位可以根据以往所有位置预测目前最优的智者,即在每次算完最优之后在最优值旁边随机取值,用支持向量机回归预测一下哪一点是最优的。随后将回归预测的最优点代替任意一个非最优粒子位置,并计算相应的适应度值与对应的前适应度值位置替换。

进行下一次迭代。

为了对此改进算法的性能进行评估,利用该算法对7个标准的测试函数进行优化,测试函数如表1所示,实验的开发环境如下:matlabr2016a,cpu为i7-10700k3.8ghz。

表一:测试函数

表一中spheremodel函数为单模态函数,schwefel'sproblem22,alpine,generallizedrastrigin’s,generallizedgriewank为多模态函数。在这些函数中,n是函数的维数,这些函数的最小值都为0,最优解为0(对于任意的n);eggholder函数为二维多模态测试函数,在x=(512,404.2319)时取到极小值f(x)=-959.640669;michalewicz为可选维度多模态测试函数(可选2,5,10),本次测试选维度为5,选m=10(m为陡度系数,越大寻优难度越大),极小值应当为-4.687658。本文改进pso,pso和ga被用于优化上述函数,在这三种算法中,维数为15(n=15)对于后两种函数则选择其适应维度,种群个数为40,最大迭代次数为500。在pso中,c1=c2=1.49445,惯性因子w随着迭代次数从0.9到0.4线性递减。本文改进pso其他参数的设置和pso中一样。ga的参数设置如下:交叉概率为0.7,采用轮盘赌机制,变异的概率为0.01。每个函数的优化实验运行30次,30次解的最优值、平均值、方差如表二所示。

表二:测试数据(若数据值小于10-1010-10则记为0)

由表二可知,对所有函数改进pso的最优解都比ga和pso的好,所以改进pso的全局搜索能力优于其他两种算法。对所有函数改进pso的平均值与方差除了对generallizedgriewank函数都优于pso与ga。所以,改进pso的整体搜索性能优于其他两种算法。

收敛曲线用于评价三种算法的性能,为了不失一般性,随机选择单模态函数spheremodel和多模态函数generallizedrastrigin’s进行分析。三种算法的收敛曲线如图1和图2所示。由收敛曲线可知,相比较于其他两种算法,改进pso有更好的全局搜索能力和收敛性。改进pso找到全局最优值的迭代次数少于ga,收敛速度虽然小于pso但是精度更高。所以,在优化函数方面改进pso表现出明显的改进效果,整体的性能也很好。

本发明提出了一种基于支持向量机回归的改进粒子群算法,首先扩大了随机数的范围至[-1,1],这样算法的全局搜索能力增强了。利用支持向量机回归选取最优点旁边的可能最优点位置并替换一个随机非最优位置,这样增加了局部搜索能力,两者相辅相成。通过优化标准的测试函数证明了该算法对于求解连续和离散优化问题都有更高的效率。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1