BP神经网络算法步骤.docVIP

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

传统的BP算法简述   BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:   (1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。   (2)由给定的输入输出模式对计算隐层、输出层各单元输出   (3)计算新的连接权及阀值,计算公式如下:   (4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。 第三步,计算隐含层各神经元的输入和输出 第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数 第五步,利用隐含层到输出层的连接权值、输出层的和隐含层的输出计算误差函数对隐含层各神经元的偏导数 第六步,利用输出层各神经元的和隐含层各神经元的输出来修正连接权值 第七步,利用隐含层各神经元的和输入层各神经元的输入修正连接权。 第八步,计算全局误差 第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。 第二种方法: BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。 一个神经网络的结构示意图如下所示。 BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。输入层神经元的个数由样本属性的维度决定,输出层神经元的个数由样本分类个数决定。隐藏层的层数和每层的神经元个数由用户指定。每一层包含若干个神经元,每个神经元包含一个而阈值,用来改变神经元的活性。网络中的弧线表示前一层神经元和后一层神经元之间的权值。每个神经元都有输入和输出。输入层的输入和输出都是训练样本的属性值。 对于隐藏层和输出层的输入 其中,是由上一层的单元i到单元j的连接的权;是上一层的单元i的输出;而是单元j的阈值。 神经网络中神经元的输出是经由赋活函数计算得到的。该函数用符号表现单元代表的神经元活性。赋活函数一般使用simoid函数(或者logistic函数)。神经元的输出为: 除此之外,神经网络中有一个学习率(l)的概念,通常取0和1之间的值,并有助于找到全局最小。如果学习率太小,学习将进行得很慢。如果学习率太大,可能出现在不适当的解之间摆动。 交代清楚了神经网络中基本要素,我们来看一下BP算法的学习过程: BPTrain(){ ????? 初始化network的权和阈值。 ????? while 终止条件不满足 { ??????????? for samples中的每个训练样本X { ??????????? // 向前传播输入 ??????????? for 隐藏或输出层每个单元j { ????????????????? ;// 相对于前一层i,计算单元j的净输入 ;// 计算单元j的输出 ??????????? } ??????????? // 后向传播误差 ??????????? for 输出层每个单元j { ????????????????? ;// 计算误差 ??????????? } ??????????? for 由最后一个到第一个隐藏层,对于隐藏层每个单元j { ?????????????????? ;// k是j的下一层中的神经元 ??????????? } ??????????? for network中每个权 { ??????????????????? ; // 权增值 ??????????????????? ; // 权更新 ???????????? } ???????????? for network中每个偏差 { ????????????????????? ; // 偏差增值 ????????????????????? ;// 偏差更新 ???????????? } ????? } } 算法基本流程就是: 1、初始化网络权值和神经元的阈值(最简单的办法就是随机初始化) 2、前向传播:按照公式一层一层的计算隐层神经元和输出层神经元的输入和输出。 3、后向传播:根据公式修正权值和阈值 直到满足终止条件。 算法中还有几点是需要说明的: 1、关于,是神经元的误差。 对于输出层神经元,其中,是单元j的实际输 出,而是j基于给定训练样本的已知类标号的真正输出。 对于隐藏层神经元,其中,是由下一较高

文档评论(0)

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

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

1亿VIP精品文档

相关文档