- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
研究表明,两层网络在其隐层中使用S型激励函数,在输出层中使用线性传递函数,就几乎可以以任意精度逼近任意感兴趣的函数. 基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。利用输出后的误差来估计输出层的直接前一层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 BP神经网络原理 网络结构 输入层n个神经元,隐含层p个神经元,输出层q个神经元 变量定义 输入向量; 隐含层输入向量; 隐含层输出向量; 输出层输入向量; 输出层输出向量; 期望输出向量; BP标准算法步骤 输入层与隐含层的连接权值: 隐含层与输出层的连接权值: 隐含层各神经元的阈值: 输出层各神经元的阈值: 样本数据个数: 激活函数: 误差函数: BP标准算法步骤 BP标准算法步骤 1. 网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。 2. 随机选取一个输入样本及对应期望输出 BP标准算法步骤 3.计算隐含层和输出层各神经元的输入和输出 BP标准算法步骤 4.利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数。 BP标准算法步骤 5. 利用隐含层到输出层的连接权值、输出层的输出和隐含层的输出,计算误差函数对隐含层各神经元的偏导数。 BP标准算法步骤 BP标准算法步骤 6. 利用输出层各神经元的输出和隐含层各神经元的输出来修正连接权值。 BP标准算法步骤 7. 利用隐含层各神经元的输入和输入层各神经元的输入修正连接权值。 BP标准算法步骤 8. 计算全局误差 9. 判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。 梯度下降法 BP神经网络工作流程图 情况一、直观表达 当误差对权值的偏 导数大于零时,权值 调整量为负,实际输 出大于期望输出, 权值向减少方向调整, 使得实际输出与期望 输出的差减少。 who e 0,此时Δwho0 BP标准算法直观解释 情况二、直观表达 当误差对权值的偏导数 小于零时,权值调整量 为正,实际输出少于期 望输出,权值向增大方向 调整,使得实际输出与期 望输出的差减少。 e 0, 此时Δwho0 who BP标准算法直观解释 在Matlab中的实现 数据预处理(归一化的优点) 1.创建一个前向型神经网络 net=newff(); 2.训练网络 net=train(net,P,T); 3.进行仿真 T1=sim(net,P); 在Matlab中的实现 newff 创建一个BP网络,其调用格式为: net=newff(PR,[S1 S2 …SN1],{TF1 TF2…TFN1},BTF,BLF) 其中, net=newff :用于在对话框中创建一个BP网络 PR :由每组输入(共有R组输入)元素的最大值和最小值组成的R×2维的矩阵; Si :第i层神经元的个数,共计N1层 TFi:第i层的传递函数,默认为“tansig” BTF:BP网络的训练函数,默认为“trainlm”; BLF:权值和阈值的BP学习算法,默认为“learngdm” train 用于对神经网络进行训练。调用格式为: net=train(net,P,T) 其中, NET:待训练的神经网络; P:网络的输入信号; T:网络的目标,默认值为0; net:函数返回值,训练后的神经网络; 常见参数: net.trainParam.show 显示中间结果的周期(25) net.trainParam.lr 整批学习中的学习效率(0.01) net.trainParam.epochs 整批学习迭代次数上限(100) net.trainParam.goal 最小二乘目标误差设定值(0) 神经网络仿真函数sim 调用格式为: Y=sim(net,P) 其中, Y:函数返回值,网络输出; net:待仿真的神经网络; P:网络输入; 一、基本BP算法的缺陷 二、隐含层的层数与节点数的改进 三、用遗传算法优化BP神经网络 BP神经网络的改进 BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网络训练采用最多也是最成熟的训练算法之一。其算法的实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而通常存在以下问题: 学习效率低,收敛速度慢 易陷入局部极小状态
文档评论(0)