一种基于PSO的BP神镜沫网络训练方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于PSO的BP神镜沫网络训练方法

一种基于PSO的BP神经网络训练方法 摘 要 基于粒子群优化的算法具有全局随机搜索最优解的特点。本文尝试把PSO算法和神经网络权值训练的常用算法BP算法结合起来进行数据的训练,实现对一组数据的训练,并对结果与BP算法的训练结果进行了对比,得到了较好的效果。 关键词 神经网络;反向传播算法;PSO算法;适应度函数 人工神经网络是由人工神经元互连而成的网络,它从微观结构和功能上实现对人脑的抽象和简化,具有许多优点。对神经网络的权值系数的确定,传统上采用反向传播算法(BP算法)。BP网络是一种多层前向反馈神经网络,BP算法是由两部分组成:信息的正向传递与误差的反向传播。在反向传播算法中,对权值的训练采用的是爬山法(即:δ算法)。这种方法在诸多领域取得了巨大的成功,但是它有可能陷入局部最小值,不能保证收敛到全局极小点。另外,反向传播算法训练次数多,收敛速度慢,使学习结果不能令人满意。 粒子群优化算法(Particle Swarm Optimizer,PSO)是一种进化计算技术(evolutionary computation)。源于对鸟群捕食的行为研究,PSO中,每个优化问题的解都是搜索空间中的一只鸟,我们称之为粒子。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。如果用粒子群算法对神经网络的权值进行训练,会得到较快的收敛速度,而且可以避免局部最值得出现。研究表明PSO 是一种很有潜力的神经网络算法。 本文提出了一种基于PSO算法的BP网络学习算法,并通过MATLAB7.0实现对一组简单的向量进行训练对PSO—BP算法和BP算法进行了对比,试验结果说明PSO—BP算法适合训练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算法搜索最优位置,使如下均方误差指标(适应值)达到最小 (4) 其中,N是训练集的样本数; 是第i个样本的第j个网络输出节点的理想输出值; 是第i个样本的第j个网络输出节点的实际输出值;C是网络输出神经远的个数。基于PSO算法的BP网络学习算法流程如下: 1) 选定粒子数m;适应值阈值ε;最大允许迭代步数 ; 、 和 ;初始化X和V为(0,1)间的随机数。 8) end for 9) for i=1:1:m 10) 按式(1)计算 ;按式(2)计算 ; 11) end for 12) 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)的变化过程,

文档评论(0)

ayangjiayu3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档