资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
1一种基于 PSO 的 BP 神经网络训练方法摘 要 基于粒子群优化的算法具有全局随机搜索最优解的特点。本文尝试把PSO 算法和神经网络权值训练的常用算法 BP 算法结合起来进行数据的训练,实现对一组数据的训练,并对结果与 BP 算法的训练结果进行了对比,得到了较好的效果。 关键词 神经网络;反向传播算法;PSO 算法;适应度函数人工神经网络是由人工神经元互连而成的网络,它从微观结构和功能上实现对人脑的抽象和简化,具有许多优点。对神经网络的权值系数的确定,传统上采用反向传播算法(BP 算法)。BP 网络是一种多层前向反馈神经网络,BP 算法是由两部分组成:信息的正向传递与误差的反向传播。在反向传播算法中,对权值的训练采用的是爬山法(即: 算法)。这种方法在诸多领域取得了巨大的成功,但是它有可能陷入局部最小值,不能保证收敛到全局极小点。另外,反向传播算法训练次数多,收敛速度慢,使学习结果不能令人满意。粒子群优化算法(Particle Swarm Optimizer,PSO)是一种进化计算技术(evolutionary computation)。源于对鸟群捕食的行为研究,PSO 中,每个优化问题的解都是搜索空间中的一只鸟,我们称之为粒子。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。如果用粒子群算法对神经网络的权值进行训练,会得到较快的收敛速度,而且可以避免局部最值得出现。研究表明 PSO 是一种很有潜力的神经网络算法。本文提出了一种基于 PSO 算法的 BP 网络学习算法,并通过 MATLAB7.0 实现对一组简单的向量进行训练对 PSOBP 算法和 BP 算法进行了对比,试验结果说2明 PSOBP 算法适合训练 BP 网络,并且也有希望应用于其他种类的前向网络的训练。1 PSO 算法PSO 中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。D 维搜索空间中,有 m 个粒子,其中第 i 个粒子的位置是 ,m,其速度为 。将 带入目标函数可计算出适应值。记第 i 个粒子搜索到的最优位置为 ,整个粒子群搜索到的最优位置为 。离子状态更新操作为:其中,i=1,2,m, d=1,2,D; 是非负常数,称为惯性因子。 也可以随着迭代线性减小;学习因子 , 是非负常数;r1 ,r2 是介于0,1之间的随机数;是常数。迭代中止条件一般选为最大迭代次数和粒子群迄今为止搜索到的最有位置满足适应阈值。2 基于 PSO 的 BP 网络学习算法BP 网络是一种多层结构的前向网络,其隐层神经元的激活函数为 S 型函数,而输出神经元的激活函数可以是 S 型函数,也可以实线性函数,典型的 S 型函数为:(3)其中:s 为神经元的加权输入函数。用 PSO 算法训练 BP 网络时,定义粒子群的位置向量 的元素是 BP 网络的全体连接权和阈值。首先初始化位置向量 ,然后用 PSO 算法搜索最优位置,使如下均方误差指标(适应值)达到最小3(4)其中,N 是训练集的样本数; 是第 i 个样本的第 j 个网络输出节点的理想输出值;是第 i 个样本的第 j 个网络输出节点的实际输出值;C 是网络输出神经远的个数。基于 PSO 算法的 BP 网络学习算法流程如下:1) 选定粒子数 m;适应值阈值 ;最大允许迭代步数 ; 、 和 ;初始化 X 和 V 为(0,1)间的随机数。8) end for9) for i=1:1:m10) 按式(1)计算 ;按式(2)计算 ;11) end for12) end while 13) 以所得权值阈值为初始值用 BP 算法对网络进行训练上述流程中,1)到 12)用标准 PSO 算法对权值和阈值进行训练,13)对 PSO 输出的权值和阈值作为初始值用 BP 算法训练网络(MATLAB 中有集成的训练函数)。另外, ,其中 是第 I 个粒子的位置;V= ,其中 是第 I 个粒子的速度; 是 m 个粒子迄今搜索到的最优适应值,其对应的粒子位置矩阵是 p= ; 是粒子群迄今搜索到的最优适应值,对应的最优粒子位置是 ,粒子数 m 选定为 30 个。3 结果分析本实例中随机选取机输入和输出矩阵,如:p=0 0 0 0 0;1 0 0 0 1;0 1 0 0 1; 0 0 1 0 0; 0 0 0 1 0;t=0 0 0 0; 1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1。由于 P 是五行的矩阵,所以网络输入层的神经元个数为:5 个,T 为五行矩阵,故输出层神经元个数为:5 个 ,隐含层神经元个数为:6 个。首先观察一下 PSO 算法中的适应值(fitness)的变化过程,图 1 中,实线表示适应值的平均值,虚线表示是最优适应值。从图中可以看出适应值迅速的选择过程。4图 1 fitness 的变化过程曲线图 2 为用 PSOBP 算法和 BP 算法在训练误差精度为 0.002 的情况下的误差演化曲线:(a)为 PSOBP 算法训练误差演化曲线,所用时间是 20.422000s。 (b)为常用 BP 算法训练误差演化曲线,对权值的训练采用的是梯度下降法,所用时间是27.172000s。从图中可以看到:PSOBP 算法的迭代次数远远小于 BP 算法,并且训练时间也缩短了。(a)(b)图 2 为了充分说明实验结果,笔者做了多次反复实验,实验结果如下表:在训练误差精度为 0.002 的情况下,十次试验中 PSOBP 算法的平均迭代次数远小于BP 算法,收敛时间较接近。算法 次数BP 算法PSOBP 算法迭代次数收敛时间5迭代次数收敛时间1158735.79700071719.5470002105123.17200079433.390000391718.28100068327.8130004809616.28200087933.2650005132333.125000109730.2180006214643.76600093126.0460007116123.64100056817.3910008530714.68700073625.7820009141526.75000086927.62500010122724.17200095329.422000平均值1216.625.967300822.727.049904 结论本次试验中对 BP 算法和 PSOBP 算法进行了对比试验,试验结果证明:PSO8BP 算法优于 BP 算法。具体表现在:学习算法的收敛速度有所提高;BP 算法中的局部极小问题常令学习结果不满意,PSO 的全局优化能力使问题得到解决。参考文献1Martin T.Hagan , Howard B.Demuth, Mark H.Beale,著,戴葵,等译.神经网络设计.机械工业出版社,2002 年 9 月2徐丽娜 编著.神经网络控制.电子工业出版社,2003 年 2 月3高隽 编著.人工神经网络原理及仿真实例.机械工业出版社,2003 年 8 月4Zbigniew Michalewicz ,David B.Fogel 著,曹宏庆,李艳,董红斌,吴志健,译.如何求解问题现代启发式方法.中国水利水电出版社,2003 年 2 月5阳明盛,熊西文,林建华,编著.MATLAB 基础及数学软件.大连理工大学出版社,2003 年 8 月6Tom M.Mitchell,著,曾华军,张银奎 等译.机器学习.机械工业出版社,2003年 1 月
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号