第30卷总第76期          西北民族大学学报(自然科学版)
Vol.30,No.4
2009年12月    Journal of N or thw est U n iv er sity f o r N a tiona lities(Nat ural Science )Dec ,2009
一种新的优化神经网络权值算法及其应用
杜世强
(西北民族大学计算机科学与信息工程学院,甘肃兰州730030)
[摘 要]为克服和改进B P 算法的不足,文章在分析遗传算法(G A)和粒子优化(PSO)算法优越性与不足的基础上,提出了一种基于G A 和PSO 结合的算法———G A -PSO 算法,用于训练神经网络权值1算法产生下一代个体时,不仅采用交叉和变异算子,而且在重新定义局部最优粒子的基础上,引入粒子优化算法,有效地结合了遗传算法的全局收敛性能和粒子优化算法的局部搜索能力1通过对异或问题和IR IS 模式分类问题的学习,仿真结果明显好于单纯地用G A 或PSO 进行前向神经网络训练,能有效避免早熟收敛的同时,提高搜索精度1
[关键词]BP 算法;遗传算法;粒子优化;神经网络
[中图分类号]TP301.6   [文献标识码]A    [文章编号]1009-2102(2009)04-0027-05
0 引言
神经网络是由大量非线性处理单元通过密集连接而构成的并行信息处理系统1它具有强大的学习和信息表达能力,因而被广泛地应用到模式识别、自动控制和系统决策等领域中1神经网络按其结构可分为两大类,即前向神经网络和反馈神经网络1目前,在前向神经网络学习中普遍采用的是反向传播学习算法(即B P 算法)及其变种1这类算法从本质上讲均属于梯度下降算法,不可避免地存在易陷入局部极小、收敛速度慢、误差函数必须可导、受网络结构限制等1
基于梯度的BP 算法适用于局部搜索,它只能在起始点附近的区域到最优解,要获得全局最优只能依靠幸运选择起始点,而全局搜索方法如:遗传算法(G A),粒子优化(PSO),模拟退火(S A),禁忌搜索(TS )等总能更好地逼近全局最优解1D.Whitley [1]成功地将G A 应用于神经网络的学习中;C.Zhang [2]将PSO 与神经网络结合并用于网络的权值训练1
G A 是基于体的并行搜索策略,与BP 算法相比,遗传算法训练的神经网络[1,3]在提高分类正确率的同时,可以加快训练的收敛速度1但是,由于缺乏有效的局部搜索机制,算法在接近最优解时收敛缓慢甚至会出现收敛停滞现象1粒子优化算法[2,4,5]通过种中粒子间的合作与竞争产生的体智能指导优化搜索,与进化算法相比,PSO 保留了基于种的全局搜索策略,它可以记忆,所有粒子都共享迄今为止
问题最好的解1而在G A 中,一旦种改变,原来的信息将被破坏1由于粒子记录了种最优个体并向其移动,故PSO 收敛速度快,同时,若最优个体为局部最优时,易陷入局部极小1
C.F.J uang [6]在引入提升算子(enhance operator )的基础上,将G A 和PSO 结合,并成功用于递归网络的设计问题1算法在产生下一代种时,遗弃了性能“差”的一半个体,有利于加快收敛速度,可不利于跳出局部极小1这是由于算法一旦早熟收敛,往往要依靠性能相对“差”的个体通过变异产生优良个体,以便跳出局部极小,从而达到全局最优1本文在综合G A 和PSO 各自优缺点的基础上,提出G A -PSO 算法,并将其应用于神经网络的权值训练中,仿真结果和比较说明了G A -PSO 算法在避免早熟收
[收稿日期][作者简介]杜世强(—),男,甘肃平凉人,助教,硕士,主要研究方向神经网络、智能计算、模式识别1
2009-10-28
1981:
敛和提高搜索精度方面的优越性1
1 算法原理
111 B P 算法
目前常用的神经网络结构主要有三种:前向多层神经网络(包含递归神经网络)、自组织神经网络和反馈神经网络1其中研究最广泛、最深入且应用面最广的是前向多层神经网络(Mul tilayer Feed -for 2ward Neural Net wor k ,ML FNN )1ML FNN 采用一种单向多层结构,每一层包含若干个神经元,同一层的神经元之间没有互相联系,层间信息的传递只沿一个方向传播1
ML FNN 学习算法中应用最广泛的当属BP 算法,算法采用Delt a 学习规则[7]的权值修正策略.Delt a 学习规则是将学习数据从一个方向通过并遍历网络,而从另一个方向修正权值,如图1所示1第k 次循环中的权值和阈值修正值可表示为
           Δw l ji (k +1)=η3δl j (k)3y l -1i (k)(1
)
图1 神经网络结构其中l =2,…,L ,L 是网络的层数,i =1,…I ,I 是第l
-1层神经元的个数,j =1,…,J ,J 是第l 层神经元的个
数,η为学习率,δj (k )表示当前性能函数对权值的梯度,
y i (k )为神经元j 的输入信号1网络学习就是通过式(1)
来修正权值和阈值,以减小整体误差1
112 遗传算法(G A)
遗传算法(G enetic algorit hm )是模拟生物在环境中
的遗传和进化过程而形成的一种自适应全局优化算法1
由于其简单、通用,鲁棒性强和便于并行等特点,已被广
泛应用于各个领域1其基本步骤为:
首先,对可行域中的点进行编码,然后随机产生初始种Pop ,并计算每个个体的适应度值,根据各个个体的适应度值和交叉概率在Pop 中随机选择进行交叉的个体,并随机配对进行交叉,得种Pop ′,对Pop ′中的个体依变异概率进行变异,产生出新的种Pop ″,然后用适应度函数计算出每个个体的适应度,再按“适者生存”的原则,通过一定的选择算子挑选出优胜的个体组成下一代种,算法不断重复,直到满足终止条件为止1
113 粒子优化(PSO )
粒子优化(Particle swarm optimization )算法是一种基于智能方法的演化计算技术1PSO 算法与一般的G A 算法所不同的是:将个体的更新转换为“粒子”在解空间上的位置移动,而移动的方向是由全局最优粒子的位置与个体所到的最优位置所决定的,对解的更新加入全局与局部最优的信息,位置的移动更有目的性,算法具有较高的收敛速度1
关于PSO 算法对粒子位置的更新,是按下面的式(3)进行:
           V i =αV i +c 1r 1(P i -X i )+c 2r 2(P g -X i ),
(2)                 X i =X i +βV i ,(3)其中i =1,…Popsize ,Popsize 是种规模;V i 表示当前粒子i 的速度;X i 表示当前粒子的位置;P i 表示粒子i 迄今为止所搜索到的最优位置;P g 表示整个粒子迄今为止所搜索到的最优位置;学习因子c 1、c 2为非负常数;r 1、r 2为介于[0,1]间的随机数;α为惯性因子;β为速度控制约束因子1
2 基于G A -PSO 算法的人工神经网络
N F L 定理说明,没有一种方法能够解决所有的问题,这也正是目前混合算法受到重视的一个重要原因[]1
o ree unch 8
G A -PSO 算法首先对种Pop 按式(2)、式(3)进行操作产生种Pop 1,再对种Pop 1进行GA 算子的操作产生种Pop 2,然后在种Pop 1和Pop 2中依给定的选择算子产生下一代种Pop 1
随着进化代数的增加,该算法能在遗传算法克服局部最优的情况下,同时利用粒子优化算法快速达到
问题要求的精度,有效地结合了遗传算法的全局搜索性能和粒子优化算法的局部搜索性能,丰富了搜索行为和增强了搜索能力,进而避免早熟收敛,提高搜索精度1
将所要构建的神经网络的所有权值和阈值作为一个染体1依据数目,用相应维数的实数表示1这里直接采用实数编码1实数编码不存在编码和解码的过程,可以提高运算的精度和计算速度,避免了编码中带来的负面影响1这样,在网络与种的个体之间就形成了一个一一映射,而包含有多个个体的种就对应着多个网络1
为了评价种中各个个体的质量,必须建立一个适应度函数1本文训练的前向神经网络中,使用网络实际输出与期望值之间的均方误差(the Mean Squared Error ,MSE )来构造适应度函数1
            E (w )=1
∑N
i =1(d i -o i )2N
(4)其中o i 为输入第i 个训练样本时网络的输出值,d i 为相应的期望值,N 为训练集合的大小1
211 G A -PSO 算法的主要步骤
综合以上思想,我们给出G A -PSO 算法的实现步骤:
Step 0: 参数初始化,给出种规模Popsize ,变异概率p m ,交叉概率p c ,惯性因子α,约束因子β及学习因子c 1、c 2和迭代次数epoch 1
Step 1: 种初始化,随机产生规模为P opsize 的种,Pop ={w 1,w 2,…,w Popsi ze },任一w i ∈Pop 对应一神经网络1它是一个D 维向量,D 为所有连接权值和阈值的个数1
Step 2: 计算Pop 中所有个体的适应度,得到P i 和P g ,并按式(2)进行速度更新和式(3)进行权值更新,产生种Pop 11
Step 3: 依适应度函数对种Pop 1中每一个体进行评估,采用赌轮选择算子挑选出染体对,以概率P c 两两进行算术交叉操作,得到种Pop ′1
Step 4: 对Pop ′以概率P m 进行方向变异操作,产生新的种Po p 21
Step 5: 从种Pop 1和种Pop 2中采用精英选择(eliti st selection )算子选择Popsize 个个体组成下一代种Pop ;同时,更新全局最优粒子P g 1
Step 6: 若迭代次数超过限制或解中最优个体所对应的网络输出误差满足精度要求,则算法结束;否则,转到St ep 21
由上述G A -PSO 算法的步骤可以看出,该算法主要以遗传算法为主,辅之以粒子优化算法1算法的核心是寻恰当的结合点,以便能充分发挥遗传算法的全局搜索性能和粒子算法的局部搜索能力1212 G A -PSO 算法的主要操作
从G A -PSO 算法的步骤可以看到,在此算法实现中,主要用到下面一些基本操作:
1)G A 算子:交叉算子采用两点交叉;变异算子采用方向变异,即若是要变异的染体,变异后的为X ′,则
               X ′=X +m 3d m (5)其中d m 为变异方向,是随机生成的一个与染体的权值同维数的非零向量,m 为一个常数,此处m =21
2)惯性因子α∶Shi[4]研究了惯性因子α对优化性能的影响,较大α的值有利于跳出局部极小值,而较小的α值有利于算法收敛1故采用自适应调整α值,即
            α=αx (αmax -αmin )(6)αx ,
α分别表示最大和最小惯性因子,表示当前迭代次数1ma -run epoch
ma min r un
3)局部最优粒子P i:在St ep5产生的下一代种P中,对任一w i∈Pop,若w i∈Pop2,则
              V i=0,P i=X i,(7)否则,P i保持不变,这时P i表示粒子i迄今为止所搜索到的最优权值1
4)速度和权值限定:在算法的整个过程中,对个体每一维的最大速度都作以限制:
   若V id>V max,取V id=V ma x或V i d<-V max时,取V id=-V max(8)即超出速度界限时,保持高速移动1同时,对个体的权值也作以限制:
   若w id>w max,取w id=w max-rand;或w i d<-w max时,取w i d=w max+rand,(9)即超出权值界限时,作小的随机扰动,这样有利于个体在保持当前良好性能的基础上寻更好的解1基于G A-PSO的人工神经网络学习算法在产生下一代种时,增加了种数目,扩大了搜索范围,同时,由于遗传算法的变异算子,所以不易陷入局部极小值1而且每代所有个体“信息”的共享性和各个个体适应度的提高,使得每代种中的个体具有“自我”学习提高和向“他人”学习的双重优点,所以具有较高的收敛速度、更好的并行性和全局寻优的能力1在算法的后期,由于惯性因子的自适应性,更提高了收敛速度1
3 实验结果和分析
在G A-PSO算法的性能测试中,采用模式分类中常用的异或问题和IR IS模式分类问题[9][10]作为测试集1神经网络隐层节点的激活函数都为t ansig函数,
               f(x)=(1-e x)/(1+e x),(10)输出层节点的激活函数为logsi g函数
              f(x)=1/(1+e-x)(11)异或问题选xo r(x1,x2,x3,x4),x i=0或1,i=1,2,3,41神经网络采用4个输入,1个输出,考虑所有4元组合16个模式1对该问题采用全连接的单隐层前向网络,输入层4个接点,隐层6个接点,输出层1个接点;而IRIS模式分类问题用的是全连接双隐层前向网络,输入层4个接点,第一隐层8个接点,第二隐层4个接点,输出层3个接点1
两个问题的实验参数均设置如下:三种算法的体大小都为Popsize=40,变异概率P m=0.1,交叉概率P c=0.6,惯性因子如式(6)所示,αmax,αm i n分别取0.9和0.1,约束因子β=0.9,学习因子c1=c2 =21而B P网络中参数经试验选用最优参数,学习率η=0.15,网络权值初始化区间选择[-10,10]1为了更清楚地说明G A-PSO算法,把G A-PSO算法与G A和PSO算法进行了比较1图2是对异或问题运行10次后得到的均方误差(MSE)曲线图,相应的测试结果及B P算法所得结果如表1所示1图3是对IRIS模式分类问题运行10次后得到的均方误差(MSE)曲线图,相应的测试结果及B P算法所得结果如表2所示1其中BP算法训练的迭代次数是1000,因为实验中发现迭代1000次以后权值更新是相当有限的1
从表1和表2可以看出,本文算法的优化结果明显好于其他三种算法1虽然G A算法最好的结果接近G A-PSO算法,由10次运算的平均值可以看出,在多次训练中,亦然存在陷入局部极小的可能1
表1 学习算法的比较(X OR)
算法
MSE
最优值最差值平均值
G APSO  1.6179e-90.0052  5.1674e-4
G A  1.8326e-90.30610.0807
PSO  1.8179e-90.35360.1741 BP(1000)0.03010.61750.3896
神经网络中正则化是为了干什么表2 学习算法的比较(IRIS )算法MSE 最优值最差值平均值G APSO
0.06600.312860.1440G A
0.06660.37060.1995PSO
0.16320.36520.2752BP (1000)0.17690.81270.5524
图2 10次均方误差曲线图(XOR)       图3 10次均方误差曲线图(IRIS)
由图2和图3可以看出,PSO 算法在开始阶段,曲线下降比较快,明显优于G A 算法,体现了其局部寻优的良好性能1但随着进化代数的增加,其训练误差减少相当缓慢,已陷入局部极小,这是由其算法本身结构所决定的,且很难跳出局部极小1G A 算法在训练初期收敛缓慢,由于其交叉和变异算子的作用,其误差可以不断减小,但是达到一定的精度之后,随着进化代数的增加,均方误差也可以减小,但难以到更好的解,进而影响解的精度1G A -PSO 算法在训练初期不仅能快速收敛,随着进化代数的增加,均方误差更可以不断减少,达到理想结果,这主要是由于该算法兼顾了全局和局部搜索1实验表明,在G A -PSO 算法中,若变异和交叉采用自适应算子,结果会更好1
4 结论
本文针对神经网络训练中易陷入局部极小问题,提出了一种基于G A 和PSO 算法混合的G A -PSO 算法,用于异或问题和IR IS 模式分类问题的仿真,并与G A 和PSO 训练的神经网络及BP 算法进行了比较1结果表明,新算法不仅具有很强的全局搜索能力,而且能有效地避免粒子算法和遗传算法的早熟收敛问题1
参考文献:
[1]D.Whitley 1“G e netic Alg orit hm and Neural Networks ”G enetic Algorithm E ngineering and Computer Scie nce ,G.Winter ,
J.Periaux ,M.G alan ,and P.Cuesta ,Eds.New Y or k:W iley ,1995,191-201.
[2]C.Zhang ,H.Shao ,Y.Li ,“Particle Swarm O ptimizati on for E volving Artifical Network ”.IEEE.Int ,chnf ,Man ,cyber ,
2000,(4):2487-2490.
[3]王磊,戚飞虎.进化计算在神经网络学习中的应用[J ].计算机工程,1999,25(11):41-43.
[4]Y .Shi ,R.C.Eberhart 1A Mod ified Particle Swarm O ptimizer ”,Proc.Int ’l Con f on Evolutiona ry Compution ,N J ,1998,69
-73.
[5]李爱国,覃征,鲍复民.粒子优化算法[J ].计算机工程与应用,2002,21:1-3.
[6]C.F.J uang ,“A Hybird of G enetic Algorithm and Particle Swar m Optimization for Recurrent Network Design ”,IEEE ,
Transactions on Systems ,Ma n.,and Cybernetics.B :Cyber netics ,2004,April ,34(2):997-10061
[]S y ,N L M T ,B j M ,(下转第6页)
7.H a kin eural netw orks and earning achines.hird Edition ei ing :China achine Press 2009.
4

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。