基于认知学粒子群算法的BP网络优化方法_第1页
基于认知学粒子群算法的BP网络优化方法_第2页
基于认知学粒子群算法的BP网络优化方法_第3页
基于认知学粒子群算法的BP网络优化方法_第4页
基于认知学粒子群算法的BP网络优化方法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2上海大学 2010 2011 学年 冬 季学期研究生课程考试小论文格式课程名称: 计算智能 课程编号: 论文题目: 基于认知学粒子群算法的BP网络优化方法 研究生姓名: 赵海红 学 号: 论文评语:成 绩: 任课教师: 刘悦 评阅日期: 年 月 日 基于认知学粒子群算法的BP网络优化方法赵海红2,3(上海大学计算机工程与技术学院,上海,)摘 要:本文依据心理学与认知学理论研究了粒子群算法的BP神经网络优化问题,我们将改进的粒子群优化算法用于BP神经网络的学习训练,并与传统的BP网络的学习能力进行了比较。结果表明,将改进粒子群优化算法应用于BP神经网络优化,不仅能更快地收敛于最优解,而且很大程

2、度地提高了结果的精度。关键词:神经网络;粒子群算法;优化;BP;认知学A Method Of BP Optimization Based on Cognitive-based Particle SwarmZhao Haihong2,3(Computer Engineering and Technology of Shanghai University,Shanghai, )【Abstract】: This theory based on cognitive psychology and the particle swarm algorithm of BP neural network opti

3、mization problems, we will improve particle swarm optimization algorithm for BP neural network learning and training, and with the traditional BP network learning ability compared . The results show that the improved PSO algorithm is applied to BP neural network optimization, not only converge to th

4、e optimal solution more quickly and greatly increase the accuracy of the results.【Key words】:Neural network; particle swarm algorithm; optimization;BP;Cognitive Science1 引 言 粒子群优化算法12 (Particle Swarm Optimi- zation,PSO)最初是由Jim Kennedy于1995年提出并成功地用于函数优化,后来又进行了有效的拓展,是计算智能领域除蚁群优化算法(Ant Colony Optimizat

5、ion,ACO)外的另外一种群体智能算法(Swarm Intelligence,SI)。由于它原理上十分简单,所需考虑的参数也较少,计算本身的快速性和算法本身的易实现性,目前已经被广泛应用于神经网络训练、目标函数优化、模糊控制系统等许多领域。人工神经网络1(简称神经网络)处理信息的方式完全不同于符号逻辑系统,具有一些独特的性质:如具有自组织、自学习能力等,它已经被广泛应用于模式识别、知识工程、智能控制等方面,在当前已知的各种人工神经网络模型中,多层前馈神经网络(Error Back Propagation Training,简称BP神经网络)是实际应用中最为广泛的一类。神经网络训练方法有很多,

6、但往往都有一定缺陷,收敛速度慢,容易陷入局部极小值,或者不易实现。 因此,BP网络的优化改进成为了研究的热点之一11。近年来,有人将PSO的思想引入到BP网络优化中,用粒子群的迭代来代替BP算法中的梯度修正。此策略可以缩短网络训练的时间;提高算法的收敛速度。但如果根据不同的系统目标,改进原有的粒子群算法,就能进一步提高BP网络的性能,使其实用性更强。为了在全局搜索和局部搜索之间取得更好的平衡,本文依据认知心理学理13论拟从PSO给定固定权值的策略出发,将原来的线性递减权值策略改造为一个非线性递减权值策略。实验表明,将改进粒子群优化算法用于BP神经网络优化,不仅能更快地收敛于最优解,而且很大程度

7、地提高了结果的精度。2认知心理学基本概念21 认知心理学认知心理学是二十世纪50年代中期在西方兴起的一种心理学思潮,二十世纪70年代开始其成为西方心理学认识心理学的一个主要研究方向。它研究人的高级心理过程,主要是认知过程,如注意、知觉、表象、记忆、思维和语言等。与行为主义心理学家相反,认知心理学家研究那些不能观察的内部机制和过程,如记忆的加工、存储、提取和记忆力的改变。以信息加工观点研究认知过程是现代认知心理学的主流,可以说认知心理学相当于信息加工心理学。它将人看作是一个信息加工的系统,认为认知就是信息加工,包括感觉输入的编码、贮存和提取的全过程。认知心理学重视心理学研究中的综合的观点,强调各

8、种心理过程之间的相互联系、相互制约认知心理学在具体问题的研究方面,在扩大心理学研究方法方面都有所贡献。认知心理学的研究成果对计算机科学的发展也有贡献。认知心理学专家关心的是作为人类行为基础的心理机制,其核心是输入和输出之间发生的内部心理过程。但是人们不能直接观察内部心理过程,只能通过观察输入和输出的东西来加以推测。所以,认知心理学家所用的方法就是从可观察到的现象来推测观察不到的心理过程。 22 本文所引入的认知思想根据认知心理学,社会中的个体通过学到的经验改变自身的结构和行为方式,在学习和积累经验的过程中都是基于一定规律的:个体认知的过程:众所周知,不同材料的遗忘进程是不一样的。熟练动作最慢,

9、有意义的直观材料也较易记住,无意义音节遗忘最快,如下图所示。虽然不同材料 的遗忘速率和进程是不一样 的,有时甚至相差颇大,但其基本规律是一致的 记忆保持量随时间递减,且开始稍快,逐渐减缓,并在相当时间后趋于稳定。本文根据个体的行为以及与个体与群体相互作用的实际情况,考虑了鸟群个体认知行为应该是一个正太分布的情况。个体认知与群体是相互影响的:个体认知是受到群体的影响,但是意味的追随群体,可能会遗忘掉自己本来的东西,增加局部搜索的复杂度;如何太忽视群体的优势,这样就会全局搜索有很大的影响。对此,本文提出了一种策略,个体认知的加速度是线性递减,群体认知的加速度是线性增加的,这样就会平衡俩者的各个确定

10、,达到算法的最有效果。3 BP神经网络与粒子群优化算法原理 31 BP神经网络原理 人工神经网络有任意精度逼近未知函数的能力及派生出来的一些功能,使神经网络变得越来越流行。神经网络的优化主要是神经网络权重和神经网络拓扑结构的优化,而最主要的是神经网络权重的优化。训练神经网络常用的算法是BP算法。它的主要思想是把学习过程分为两个阶段,网络结构如图1所示: 第一阶段(正向传播阶段),给出输入信息通过输入层经隐含层逐层处理并计算每个单元的实际输出值; 第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之差 (即误差),以便根据此误差值调节权值和偏置。 由此可以看

11、出,神经网络学习过程主要是权重和偏置的更新。对于n-layer神经网络,有n个权重矩阵,假定输入向量维度为Dimi,神经网络第i层有Numi(i=1,n)个神经元,该层的传递函数为tfi,那么Input-firstlayer间权重矩阵的维度:Dimi,Numi,第i的layer(i+1)layer(i= 2,n)间权重矩阵的维度为:Numi-1,Numi;如果每个神经元都带一个偏置,则共有个偏置。 32 粒子群优化算法原理 粒子群优化算法是对鸟群觅食过程中的迁徙和聚集的模拟,由简单个体组成的群落以及个体之间的互动行为模拟搜索全局最优解。在PSO算法中,每个优化问题的解都是搜索空间中的一只鸟,称

12、之为 “粒子”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个 “极值”来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pbest。另一个极值是整个种群目前找到的最优解。这个极值是全局极值gbest。在找到这两个最优值时,粒子根据下面的公式来更新自己的速度和新的位置: V(t+ 1)= V(t)+ c1*Rand()*(pbest(t)一 x(t)+ c2*Rand()*(gbest-x(t)

13、(1) X(t+ 1= X(t)+ V(t+ 1) (2) 其中:是粒子的飞行速度;x是当前粒子的位置;pbest和gbest如前面的定义;Rand()是介于(0,1)之 间的随机数;c1,c2是学习因子,通常c1=c2=2 式(1)、式(2)构成了基本PSO算法,试验表明,基本PSO算法早期收敛速度非常快,但却暴露出局部搜索能力差的缺点,这使得算法后期收敛速度缓慢且求解精度降低。为改善PSO算法的局部搜索能力,Shi等为式(1)的速度项引入了惯性权重 ,将式(1)变为 V(t+1)=W*V(t)+c1*1Rand()*(pbest(t)-x(t)+ c2Rand()*(gbest-x(t)

14、(3) 基本PSO算法可看作是W=1的情况,可以为选取合适的值,从而使得算法在全局和局部的搜索能力之间达到最佳平衡。 3.3 改进粒子群优化算法 在粒子群算法的可调节参数中,惯性权值是最重要的参数,较大的权值有利于提高算法的全局搜索能力,而较小的权值会增强算法的局部搜索能力。为了找到一种能在全局搜索和局部搜索之间取得最佳平衡的惯性权值选取方法,研究人员进行了大量的研究工作,先后提出了线形递减权值(IDIW)策略、模糊惯性权值(FIW)策略 和随机惯性权值(RIW)策略。其中,FIW策略需要专家知识建立模糊原则,实现难度较大;RIW策略被用于求解动态系统;LDIW策略相对简单且收敛速度快,因此被

15、广泛使用。 以前的学习因子c1,c2,通常是给定一个特定的值c1=c2=2。本文为了让粒子间的信息更好地共享,令 c1 动态减少, c2动态增加的策略. 前期c1较大而 c2较小,可以使得粒子主要是向自己的个体极值移动和向群内最佳粒子学习,即主要是扩大搜索空间;而后期 c1较小而 c2较大,使得粒子主要向全局最佳粒子学习,主要是精细搜索.实验数据证明这种策略是可行的.学习因子动态改变的策略如下:c1 = c1 - tR (4)c2 = c2 tS (5)其中t为迭代次数, R , S 为常数.整个粒子群改进的过程 LDIW策略就是在迭代过程中线性地减小的值,用公式表示为 其中:tmax为最大允

16、许迭代次数;t为当前的迭代次数;W_start和W_end分别是初始惯性权值和进化到最大允许迭代次数的取值。由式(2)、(式3)和式(4)构成了LDIWPSO算法。它简单、直观,且具有较好的寻优能力,因此被广泛利用。 受LDIW策略启发,为了在全局搜索和局部搜索之间取得更好的平衡,本文将LDIW策略改造为一个非线性递减权值策略,就是将(tmax-t)t 项平方,目的是在算法早期通过加快惯性权值的递减速度,使得算法尽快进入局部搜索,即 W =(W_start-W_end)( tmax-t)2t2 +W end 根据心理学的知识,人的遗忘规律不是完全线性变化的,对刚出现的兴趣在最近一段时间内关注度

17、很高,立即遗忘的可能性极小,即使再有新的兴趣出现,该兴趣的关注度也不会马上降低.但当用户较长时间不再使用某兴趣时,该兴趣的关注度会随时间迅速降低,当一个兴趣的关注度降低到一定程度时,即它能被用户回忆起来的可能性很小时,那么它的遗忘速度应该迅速减小.本文提出了一个基于正态分布密度函数的非线性遗忘函数,如下公式所示: 式中:、为调节因子,= 0.52,= 2, i 1, 2, , n是计数器,按照从最近选择的特征到第一次选择的特征的顺序,依次取 i = 1, i = 2, , i = n ( n为序列的长度).下图是线性遗忘函数与正态遗忘函数的对比图,容易看出正态遗忘函数对刚出现的新兴趣的遗忘速度

18、要比线性遗忘函数慢,对于出现时间较长的兴趣正态遗忘函数要比线性遗忘函数遗忘得快.线性遗忘函数与正态遗忘函数的对比图 在本文中,我们称改进权值递减策略的算法为 IPSO(Improved PSO)。我们采用三个经典函数(Rosenbrock,Griewank,Rastrigrin)来测试IPSO的寻优性能,算法中的粒子数为30,Cl=C2=2,优化的技术条件为迭代精度达到10-10 。或者迭代次数超过1000,实验进行50次,表1给出了最优解的均值和方差。 通过实验得到的最优的均值和方差中可以看到,PSO算法的早期收敛非常快,所以尽快让算法进入局部搜索才能获得更好的求解效率,改善了算法的后期收敛

19、精度。 4 改进粒子群优化算法优化BP神经网络 将IPSO用于训练BP网络的方法是:粒子群中每个粒子的位置表示BP网络中当前迭代中的权值集合,每个粒子的维数由网络中起连接作用的权值的数量和偏置个数决定。以给定训练样本集的神经网 络输出误差作为神经网络训练问题的适应函数,适应度值表示神经网络的误差,误差越小则表明粒子在搜索中具有更好的性能。粒子在权值空间内移动搜索使得网络输出层的误差最小,改变粒子的速度即更新网络的权值,以减少均方误差(MSE)。通过这种方式,IPSO优化搜索训练神经网络的权值和偏置来获得更小的MSE。每次迭代过程中产生MSE最小的粒子为目前全局最优的粒子,即算法公式 3中的gb

20、est。 IPSO算法如下: 步骤1:初始化参数,包括神经网络拓扑结构、种群大小、加速系数、迭代次数上线、误差限err_goal 等 步骤 2:如果算法收敛准则满足或达到最大迭代次数,执行步骤 6,否则执行步骤3 步骤 3:对每个粒子i在网络中正向传播,计算其在输出层的输出,得到误差Ei,如果Eipbi,则pbi =Ei,pi=xi,如果Eigb,则gb=Ei,Pgxi 步骤4:按公式(2)、(3)和(5)分别计算并更新每个粒子的速度和位置 步骤5:迭代次数加1,并转步骤2 步骤6:结束 其中:pbi表示单个粒子在以前搜索中的最优状态(即最小MSE),gb表示粒子群在以前搜索中的最优状态,其对

21、应于在以前搜索中的单个粒子的最优位置pi和全局最优位置Pg,BP网络中正向传播途径隐含层和输出层节点时,均采用Sigmoid型函数(简称 型函数)作为自适应函数(也称激励函数)。S型函数的表达式为:f(x)= 1/(1+exp(-x)。 5 实验比较 本文对粒子群优化算法进行了改进,并将改进算法用于BP网络的训练,并与原始BP网络进行了比较。结果表明,用改进粒子群优化算法用于BP神经网络优化,不仅更快地收敛于最优解,而且很大程度地提高了结果的精度。本程序是解决基于改进粒子群的BP神经网络,用粒子群算法来训练神经网络中的权重及閥值。 首先通过一组训练数据来得到最好的权重、閥值,在训练结束后,通过

22、另一组测试数据来测试训练的效果,比较期望值与实际输入的值是否相近。根据如下图所示,提供了24个样本,每个样本有9个输入,一个输出。程序所用到的原数据异或问题(XOR)是一个经典的问题,因为很多大的问题都可能包含异或问题。我们采用3层BP网络,拓扑结构为2-2-1,即2个输入层神经元节点,分别接受X1和X2的输入(X1和X2的取值为0或1);只有一个隐含层,包含2个神经元;在输出层只有 1个神经元。由于输入层采用2个神经元,因此,共有4个样本,输入向量为P=0,0,1,1;0,1,0,1,目标向量为t=0,1,1,1。本实验选择了三种不同的粒子数,分别为10,30,50,目的是为了能够对比分析本

23、算法在不同的粒子数下的运行效率。算法中的粒子的初始权值、加速系数等均通过随机数方式产生。在采用IPSOBP算法进行实验时,表现出其对神经网络良好的训练效果。同时通过IPSOBP算法与BP算法在同样XOR集下的一次运行情况进行对比,结果如下表所示。从中可以看出 PSOBP算法拥有较好的特性。 异或实验结果对比 由于初始化参数多数是通过随机方式产生的,因此每次执行均会在训练结果正确的情况下得到不同的迭代次数和MSE值,这里我们共实验50次,取平均值。显然,平均迭代次数均小于BP算法,且MSE的精度也有很大的提高。 其中50次实验中的一次实验结果如下:1、 收敛图如下:神经网络收敛效果图6 本文小结

24、粒子群优化(PSO)算法是一类随机全局优化技术,PSO算法通过粒子间的相互作用发现复杂搜索空间中的最优区域。PSO的优势在于简单容易实现而又功能强大。在实验中,要注意对惯性权重w的设置,其值不能太大,太大的话,全局寻优能力强,局部寻优能力弱,反之,则局部寻优能力强,而全局寻优能力减弱。迭代次数难确定或者精确度很难准确的表示。本文的优缺点如下: 优点:1. 本文引用了认知心理学理论对传统的粒子群算法进行研究的2. 引用了粒子群的优势进行BP神经网络的训练3. 不仅更快地收敛于最优解,而且很大程度地提高了结果的精度。 缺点:4. 迭代次数难确定5. 对认知心理学对粒子群的优化还是没有很好的基础6.

25、 对参数的设置还是依靠经验,对各个参数需进一步研究7 结论于展望 本文根据今年来比较流行的认知心理学原理对粒子群优化算法进行了改进,并将改进算法用于BP网络的训练,并与原始BP网络进行了比较。结果表明,用改进粒子群优化算法用于BP神经网络优化,不仅更快地收敛于最优解,而且很大程度地提高了结果的精度。 同时我会继续关注认知心理学在粒子群优化中的应用,本文只是应用了认知学中人的记忆的应用,对预测起作用的后俩中参数个体认知与集体协同的研究还没有引进本文,在今后的工作中会尝试着在这方面做一些工作。8 致谢 非常感谢刘悦教授,您严谨的治学态度、强烈的责任心、孜孜不倦的敬业精神令我受益匪浅,生活中的刘老师

26、平易近人、热情宽厚、胸怀坦荡,给予了身边的人很多关怀和照顾。在此谨向刘老师您表示忠心的感意和崇高的敬意!同时敏锐的洞察力、渊博的知识面、对工作的执着和热情使我受益终生。您对我们的严格要求,培养了我们严谨的求实作风,才能让大家有今天的进步与成长。您强调创新意识、提倡学术自由,引导我们追踪国际最新学术动态。此外,您待人和蔼真诚,谈吐风趣,尽力为学生提供最好的发展空间,这种难得的品质和能力使我对您充满敬佩和感激。我要向我尊敬的导师余洁教授致以深深的谢意,是他引导我走上了研究生生活之路。由于得到了余老师的悉心指导,才使得我在良好的学习和研究环境里面不断的进步。导师为人师表、对专业知识的孜孜不倦、对工作

27、的兢兢业业,对学生的淳淳教诲,一直都深深地影响着我。从她身上,我不仅学习到了如何学习,更重要的是学到了很多做人的道理,很庆幸在研究生阶段自己能有这样的良师。在此,谢谢余洁老师。参考文献: 1 周志华,陈世福神经网络集成J南京大学:计算机学报,2002 2 张丽平粒子群优化算法的理论与实践D杭州:浙江大学,2005 3 AngeineP.Evolutionary Optimizationgersu Particle Swarm Optimization Philosophyand Performance DifferencesJProc Seventh Annual Conference on

28、Evolutionary Programming,1998256-260 4 李桂芝,何万里,钱伟懿基于改进粒子群算法优化电梯群控系统J渤海大学学报:自然科学版,2007,28(1):4246 5 XinYaoEvolving Artificial Neural Networks JProceeding of the IEEE1998,87(9):142314476 Eberhart RCShiYComparison between genetical gorithmsand particle swarmoptimization c Proc7thAnnConfon Evolutionary

29、Computation,Springer-Verlag,Berlin,1998:611616 7 刘洪波王秀坤,孟 军神经网络基于粒子群优化的学习算法研究J小型微型计算机系统,2005,26(4):638640 8 Shi Y Eberhart REmpirical study of particle swarm optimization AInternational Conference on Evolutionary ComputationC Washington,USA:IEEE,19991945 1950 9 ShiYEberhartRFuzzy adaptive particle s

30、warm optimization AThe IEEE Congresson Evolutionary ComputationCSan Francisco,USA:IEEE,2001101 106 10 EberhartR Shi YTrack ingand optimizing dynamic system swith particles warms AThe IEEE Congresson Evolutionary ComputationCSan Francisco,USA:IEEE,200194一i00 11 李建勇.粒子群优化算法研究.硕士论文.2004.312 张燕等.微粒群优化算法

31、及其改进形式综述.计算机工程与应用.2005.2 1313 王明亮/view/2146.htm, 1998-08-16主要源代码:程序的主函数:int main()srand(unsigned)time(NULL);Pso pso;pso.particleSwarmOptimization();return 0;初始化测试数据void Pso:initTestData()ifstream ins;ins.open(testdata.txt);if (ins.fail()cout Output file opening failed.n;exit(1);

32、for (int i = 0; i TN; i+)TD td;for (int j = 0; j td.xj;ins td.d;testdata.push_back(td);ins.close();for (i = 0; i TN; i+)for (int j = 0; j N; j+)cout setw(8) testdatai.xj;cout setw(6) testdatai.d;cout endl;*/粒子搜索源代码:void Pso:searchGbest()int gbest_n;double gbest_fitness = 0.0;gbest_n = 0;gbest_fitnes

33、s = pbest0.fitness;for (int i = 0; i pbesti.fitness)gbest_fitness = pbesti.fitness;gbest_n = i;gbest = pbestgbest_n;cout Gbest: gbest.fitness endl;粒子更新源代码:void Pso:updatePbest()for (int i = 0; i size; i+)if (populationi.fitness pbesti.fitness)pbesti = populationi;更新策略void Pso:update_X_V() double r1,

34、 r2;double c1 = 2.0;double c2 = 2.0;double temp;set_w();for (int k = 0; k size; k+) r1 = gbest.uniform(0.0, 1.0);r2 = gbest.uniform(0.0, 1.0);/更新输入层到输出层权值VNM矩阵 for (int i = 0; i N; i+)for (int j = 0; j M; j+) temp = populationk.V.vij;populationk.V.vij=w* populationk.V.vij +r1*c1*(pbestk.X.vij - popu

35、lationk.X.vij)+r2* c2 * (gbest.X.vij - populationk.X.vij);populationk.X.vij= populationk.X.vij + THETA * populationk.V.vij;if (populationk.X.vij v_w_max)populationk.X.vij= v_w_maxif (populationk.V.vij v_w_max * VCON)populationk.V.vij= v_w_max * VCON;/更新隐层到输出层权值WML矩阵 for (i = 0; i M; i+)for (int j = 0; j L; j+)temp = populationk.V.wij;populationk.V.wij=w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论