改进遗传算子的粒子群神经网络及应用
摘 要:为解决神经网络训练中易出现的收敛速度缓慢、陷入局部极小点等问题,提出了一种新的带自适应遗传算子的粒子群神经网络训练算法。通过概率控制,在利用粒子群算法优化神经网络的同时,自适应地对备选粒子进行选择、交叉、变异等遗传操作,最后用异或法进行检验。试验结果显示,本算法继承了遗传算法全局搜索和粒子群算法收敛速度快的优点,能在较少的训练步数内,达到较高的收敛精度,且样本分类正确率较BP算法、遗传算法、粒子群算法有显著提高。 关键词:自适应;遗传算子;粒子群;神经网络
ANN Trained By PSO with Improved Genetic Operator and Its Application
Abstract: A new particle swarm optimization algorithm with adaptive genetic operator (GA-PSO) for training ANN was proposed to solve the problems appeared in the train of artificial neural network (ANN) such as the local minimum’s basin of attraction and low speed. Controlled by probability, the particles were operated by genetic operator when ANN is trained by PSO algorithm. This new algorithm was tested with XOR. The result shows that the neural network trained by GA-PSO algorithm needs least amounts of iterations and achieves the better training accuracy than BP algorithm, GA and PSO algorithm.
Key words: adaptive; genetic operator; PSO (particle swarm optimization); ANN (artificial neural network) 引言
人工神经网络具有自学习、自组织和非线性映射等特点,从诞生至今已在众多领域取得了令人鼓舞的进展。然而神经网络上述的诸多优点,很大程度上依赖于网络结构和参数的充分训练,因此训练算法的优劣决定了神经网络的性能。
粒子群优化算法(PSO)是一种基于群集智能的算法,它通过模拟鸟群或鱼群的觅食行为,通过单个粒子之间的信息共享,寻找复杂搜索空间的最优点。利用PSO训练神经网络的结构和参数具有很快的训练收敛速度,训练精度较高。但是基本粒子群算法在训练后期易陷入局部极小值点,目前研究人员已经开发了大量的改进粒子群优化算法,这些改进算法各有优缺点。
针对上述问题,本文提出了一种带自适应遗传算子的粒子群优化神经网络算法(GA-PSO),通过概率控制,自适应地使训练前期充分发挥粒子群优化算法搜索速度快的优点,训练后期以接近1的概率利用遗传算子对粒子进行遗传操作,避免陷入局部极小值点。实际应用结果显示,本算法无论是训练精度,还是收敛速度,都明显优于基于粒子群算法和遗传算法这两种独立的神经网络训练算法。
1 PSO算法及其在神经网络中的应用
1.1 PSO算法
PSO算法最初是由Kennedy和Eberhart于1995年提出的一种进化算法,在PSO系统中,每个备选解被称为一个“粒子”,每个粒子在搜索时,根据自己搜索到的历史最优位置和群体最优位置进行位置更新;多个粒子共存、合作寻优,搜索最优解。 粒子群优化算法的数学抽象和实现步骤如下:
假设在一个D维的目标搜索间,由m个粒子组成一个群体,第i个粒子的位置向量表示为
Xi?(xi1xi2?xiD),速度向量表示为Vi?(vi1vi2?viD),它经历过的最好的位置(即对应于最大的适应度)记为pi?(pi1pi2?piD),也称为个体极值pbest。整个群体所有粒子经历过的最好的位置记为
pg?(pg1pg2?pgD),也称为全局极值gbest。每一次迭代,各个粒子的速度向量和位置向量由个体极值。和全局极值gbest来实现更新:
Vik?1?wVik?c1r1(pbest?Xik)?c2r2(gbest?Xik) (1)
k?1kk?1X?X?Viii (2)
式中,i?1,2,?,D,c1、c2为常数,称为加速因子,表示粒子向pbest 和gbest变化的速度变化,数值越大,则微粒向pbest 和gbest运动的加速度越大;w为惯性因子,表示当前速度对下一代速度的影响权重,为保证PSO算法的收敛性和稳定性,加速因子c1?c2?1.49,惯性因子w=0.729;r1、r2为[0,1]区间内的随机数;微粒的速度Vi和位置Xi分别被最大速度Vmax和最大位置Xmax所限制,以免微粒跑到可行解的范围之外进行搜索。粒子群初始位置和速度随机产生,然后按迭代公式进行迭代,
直到找到满意解。
1.2 PSO算法在神经网络训练中的应用
现假设粒子规模为N,每个粒子的位置即是需要优化的神经网络的参数,各粒子的适应度评价函数为输出误差的平方和。通过粒子间的位置更新,满足预设条件的最优粒子的位置就是最优解。
基于PSO算法优化神经网络的训练步骤如下:
(1)随机生成N组粒子的初始值,即随机生成N组神经网络的结构参数和各粒子的初始速度; (2)找出N组粒子中最优粒子的位置gbest、单个粒子的最优解pbest预设为各粒子的初始位置值; (3)根据gbest、pbest更新各粒子位置和速度;
(4)计算出全局最优粒子的位置gbest以及单个粒子的最优位置pbest;
(5)计算全局最优粒子的位置gbest的适应度值是否符合预设的条件。如是,则gbest为所需结果,到(6);否则,跳转至(3)。
(6)输出结果。
基于粒子群优化神经网络的训练算法原理简单,算法实现容易,训练速度迅速,但是在训练后期却易陷入局部极小值点,尤其当解空间为非凸集时,因此需要作出改进。
2 带自适应遗传算子的粒子群优化神经网络训练算法
分析PSO算法可知,当训练后期粒子个体极值位置pbest长时间未更新时,粒子群会接近全局极值位置gbest,此时粒子的速度更新主要靠迭代式(1)的第一部分wVik决定,而惯性因子w<1时粒子速度会越来越小,粒子群表现为向一个方向“飞行”,而在优化性能上则表现为易陷入局部极小值点。
考虑到这一点,本文引进自适应遗传算子,提出了GA-PSO算法。该算法以PSO算法为基础,对训练一定步数的粒子按照一定的概率进行选择、交叉、变异等遗传操作,指导粒子向最优方向搜索,避免粒子群算法易陷入局部极小值点的缺陷。为了提高搜索效率,充分发挥粒子群算法训练速度快和遗传算法全局性搜索的优点,定义粒子进行遗传操作的控制函数Pk:
1,k?1,2,?, (3) 1?lnk通过产生一个介于0~1之间的均匀分布的随机数rand(0,1)与Pk进行比较,当rand(0,1)< Pk时,粒子进行遗传操作,否则不进行遗传操作。可以看出,在进化初期Pk远小于1。本算法以小概率进行遗传操作,在进化后期Pk愈来愈趋近于1,Pk会以更大的概率大于rand(0,1),因此粒子以接近1的概率进行遗传操作。
定义带自适应遗传算子的粒子群优化神经网络训练算法如下:
(1)随机生成N组粒子的初始值,即随机生成N组神经网络的结构参数和各粒子的初始速度; (2)对这N组粒子进行PSO迭代,计算出全局最优粒子的位置gbest以及单个粒子的最优位置pbest;
(3)k++;
(4)计算Pk,由计算机程序产生一个介于0~1的均匀分布的随机数rand(0,1)。如果rand(0,1) (5)对所有粒子进行选择、交叉、变异等遗传操作,更新遗传操作后全局最优粒子的位置gbest以及单个粒子的最优位置pbest; (6)计算全局最优粒子的位置gbest的适应度值是否符合预设的条件或是否已到最大预设训练步数。如是,则gbest为所需结果,到(7);否则,跳转至(2)。 (7)停机并输出结果。 gbest、pbest、k、GA-PSO算法优化神经网络流程图如图1所示: Pk?1? 图1 GA-PSO算法优化神经网络训练流程 3 算法性能检验 异或(XOR)问题一直是检验模式分类算法是否有效的典型问题,XOR问题如表1所示。现用一个2—5—1结构的神经网络对其进行建模,分别采用BP、GA、PSO以及本文提出的GA-PSO算法训练该网络的结构和权值。 表1 XOR问题 GA、PSO以及GA-PSO的群体规模都取为50,且随机产生。网络训练误差均设为10-3,最大训练步数为5000步,当超过最大步数仍未收敛者,可以认为是陷入局部极小值点。对每种算法重复试验100次,分别统计其训练成功率及平均收敛步数,如表2所示,表中n表示收敛次数,a表示训练成功率,s表示平均收敛步数。 表2 不同算法训练结果 试验结果表明,与BP、GA以及PSO训练算法比较,本文提出的GA-PSO算法具有较高的优化效率,不易陷入局部极值点,能够在最少的步数内收敛,缩短了神经网络的训练时间,且该算法的稳定性比其他三种算法都得以改善。 4 结 论 粒子群算法收敛速度快,但是在训练后期易受局部极小值点的束缚,而遗传算法是一种全局搜索算法,不易陷入局部极小值点,但是操作复杂,训练速度较慢。本文提出的GA-PSO神经网络训练算法在利用基本粒子群算法优化神经网络的基础上,通过概率控制,自适应地引入遗传算子,对粒子进行选择、交叉、变异等遗传操作。实际应用结果显示,GA-PSO算法既保留了PSO算法收敛速度快的优点,又吸收了GA算法全局搜索能力强的优点。 参考文献 [1]Zhao X M,Li H Y,Zhang J.GA in Optimized Control of Central Air-conditioning System Based on ANN Simulation[C].Eighth ACIS International Conference on Software Engineering,Artificial Intelligence,Networking,and Parallel/Distributed Computing,2008,3:617—622. [2]李伟超,宋大猛,陈斌.基于遗传算法的人工神经网络[J].计算机工程与设计,2008,27(2):316—318. [3]Grzesiak L M,Meganck V,Sobolewski J,et.Genetic Algorithm for Parameters Optimization of ANN based Speed Controller[C].The International Conference on“Computer as a Tool”.2008:1700—1705. [4]Tsoy Y R,Spitsyn V G.Using Genetic Algorithm With Adaptive Mutation Mechanism for Neural Networks Design and Training[C].The 9th Russian-Korean International Symposium,2008:709—714. [5]CLERC M,KENNEDY J.The panicle swarm-explosion, stability and convergence in a multidimensional complex space[J]. IEEE Transactions on Evolutionary Computer,2008,6(1):58—73. [6] 冯汉生,肖云魁,张玲玲等.改进的遗传神经网络在汽车故障诊断中的应用[J].天津:军事交