bp神经网络算法的改进及在matlab中的实现

bp神经网络算法的改进及在matlab中的实现

ID:15799493

大小:139.15 KB

页数:3页

时间:2018-08-05

bp神经网络算法的改进及在matlab中的实现_第1页
bp神经网络算法的改进及在matlab中的实现_第2页
bp神经网络算法的改进及在matlab中的实现_第3页
资源描述:

《bp神经网络算法的改进及在matlab中的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、№.2陕西科技大学学报Apr.2004Vol.22JOURNALOFSHAANXIUNIVERSITYOFSCIENCE&TECHNOLOGY·45·X文章编号:1000-5811(2004)02-0045-03BP神经网络算法的改进及在Matlab中的实现陈桦,程云艳(陕西科技大学计算机与信息工程学院,陕西咸阳712081)摘要:分析了BP神经网络算法收敛速度慢的原因,研究了一种提高其收敛速度的方法,即将动量法和批处理方法结合起来对BP算法进行改进,提高学习速度,并给出了算法思想,用Matlab神经网

2、络工具箱对神经网络进行了初始化和训练,仿真测试结果证明该方法是可行,具有实用性。关键词:BP神经网络;Matlab神经网络工具箱;动量法;批处理方法中图分类号:TP183文献标识码:A0引言BP算法(Back2propagationalgorithm)是目前比较流行的神经网络学习算法,是能实现映射变换的前馈型网络中最常用的一类网络,是一种典型的误差修正方法。但标准BP算法存在一些缺陷:易形成局部极小而得不到整体最优,迭代次数多,收敛速度慢。前人已提出了不少改进方法,本文基于Vogl提出的“批处理”思想,

3、以及加入动量项提高训练速度的方法,给出了带动量的批处理梯度下降算法,并用Matlab神经网络工具箱进行了设计分析及仿真。1BP算法的改进1.1BP算法收敛速度慢的原因(1)BP算法中网络参数每次调节的幅度均以一个与网络误差函数或其对权值导数大小成正比的固定因子η进行。这样,在误差曲面较平坦处,由于这一偏导数值较小,因而权值参数的调节幅度也较小,以致于需要经过多次调整才能将误差函数曲面降低;而在误差曲面较高曲率处,偏导数较大,权值参数调节的幅度也较大,以致在误差函数最小点附近发生过冲现象,使权值调节路径变

4、为锯齿形,难以收敛到最小点,导致BP算法收敛速度慢。(2)BP算法中权值参数的调节是沿误差函数梯度下降方向进行的,但由于网络误差函数矩阵的严重病态性,使这一梯度最速下降方向偏离面向误差曲面的最小点方向,从而急剧加长了权值参数到最小点的〔2〕搜索路径,自然大大增加了BP算法的学习时间,这也造成了BP算法收敛速度慢。1.2带动量的批处理梯度下降算法针对BP算法收敛速度慢的缺点,作者提出了带动量的批处理梯度下降的思想,即每一个输入样本对网络并不立即产生作用,而是等到全部输入样本到齐,将全部误差求和累加,再集中

5、修改权值一次,即根据k总误差E=∑Ek修正权值,以提高收敛速度。在调整权值时加入动量项,降低网络对于误差曲面局部细5E节的敏感性,有效抑制网络限于局部极小,此时,ΔWij(t+1)=η+αΔWij(t),α为动量系数,加入5Wij的动量项相当于阻尼项,以减小学习过程的振荡趋势,从而改善收敛性。下面介绍其算法:(1)初始化权值和阀值;(2)给定输入x和目标输出y;(3)计算实际输出y:X收稿日期:2003-11-03作者简介:陈桦(1962-),男,上海市人,教授,研究方向:CAD/CAM,CSCW©19

6、94-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net·46·陕西科技大学学报第22卷n〔2〕yj=f∑Wijxjj=1,2,⋯,nj=0(4)修正权值,比传统的算法增加了动量项,加权调节公式为:wij(t+1)=Wij(t)+ηΔWij(t+1)+αΔWij(t)5EΔWij(t+1)=η+αΔWij(t)=ηδiyi+αΔWij(t)5Wij12E=∑Ek=∑∑2(yik-…

7、yik)kki若j为输出节点,则δj=(y-yj)yj(1-yj)若j为隐节点,则δj=yj(1-yj)∑δkWijk(5)若达到误差精度或循环次数要求,则输出结果,否则回到(2)。2用Matlab神经网络工具箱进行设计与分析2.1网络构建和初始化在Matlab中对改进的BP算法进行测试、仿真,第一步是建立网络对象。函数newff建立一个可训练的前馈网络,这需要4个输入参数:第1个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值;第2个参数是一个表示每层神经元个数的数组;第3个参数是包含每层用到

8、的转移函数名称的细胞数组;最后1个参数是用到的训练函数的名称。创建一个二层网络,其网络模型如图1所示。图1二层网络模型示意图命令为:net=newff([-12;05],[3,1],{′tansig′,′purelin′},’traingd′);这个命令建立了网络对象并且初始化了网络权重和偏置,它的输入是两个元素的向量,第1层有3个神经元,第2层有1个神经元。第1层的转移函数是tan2sigmoid,输出层的转移函数是linear。输入向量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。