第27卷第1期
2009年1月
西安航空技术高等专科学校学报
Journal of Xi’a11 Aerotechnical College
Vd.27No.1
Jan.2 0 0 9
BP网络的算法及在MATLAB上的程序仿真
李 洁
(西安航空技术高等专科学校动力工程系,陕西西安710077)
摘要:在介绍了BP网络基本原理的基础上,阐述了现有的有关BP网络的3种算法,并对这些算法进行了比较。指
出在实际应用中BP网络的缺陷。另外利用Matlab神经网络工具箱,采用自适应学习率BP算法对模式识别问题进
行了程序设计、训练和仿真。
关键词:BP网络;BP算法;Matlab;仿真
中图分类号:TP393.01文献标识码:A文章编号:1008—9233(2009)0l一0041—03
1 引言
三种BP算法进行综述,并在Matlab上对模式识别
应用方面进行仿真。
在人工神经网络ANN(Artificial Neural Net—
works,NN)系统中,基于误差的反向传播(Back
2 BP网络概述
Propagation)的算法的多层前馈网络,即BP网络因
其可以任意精度逼近任意连续函数,故而在非线性
典型的BP网络结构包括输入层、隐含层、输出
层,如图1所示的三层网络模型。在BP网络中神
建模、函数逼近和模式分类等方面有着广泛的应用。
经元的传输函数为非线性函数,最常用的输出函数
在人工神经网络实际应用中,80%~90%的人工神
是logsig和tansig函数,有的输出层也采用purelin
经网络模型是采用BP网络或它的变化形式,它是
前馈网络的核心部分,体现了人工神经网络的最精
华部分。本文针对BP网络的现有算法的研究,对
的函数。BP网络是一种多层前馈神经网络,其信息
是从输入层流向隐含层至输出层。
a'--/(92p+b1)
口2可(吻1+62)
a'--/(啼2+6’)
口’可(w'y(wy(w4p+b1)+62)+63)
图1三层BP神经网络模型
BP网络的学习是一种监督式学习。在确定了
网络训练,用网络的实际输出与目标输出之间的误
BP网络结构后,便可通过对输入和输出样本集进行
差来修改网络的权值和偏置值,使实际输出尽可能
收稿日期:2008—09.26
作者简介:李洁(1977一),女,陕西省扶风县人,西北工业大学工学硕士研究生毕业,现任西安航专动力系讲师,研究方向为控
制理论及控制工程.
万方数据
42
西安航空技术高等专科学校学报
第27卷
接近目标输出。BP网络的学习过程分为两个阶段。
不会造成学习过程的发散,因为当修正过量时,该算
一是信息的正向传递;二是误差的反向传播。
法总是可以使修正量减小,以保证修正方向向着收
3
BP网络的学习算法
敛的方向进行;另一方面,动量BP算法总是加速同
一梯度方向的修正量。因此在保证算法稳定的同
最速下降BP算法(steepest descent backpropa—
时,动量BP算法的收敛速率较快,学习时间较短。
gation,SDI弭)
学习率可变的BP算法(variable learning rate
如图1所示的BP神经网络,设忌为迭代次数,
backpropagation,VLBP)
则每一层权值和偏置值的修正按下式进行:
在最速下降BP算法和动量BP算法中,其学习
z(忌+1)=z(愚)一ag(k)
(1)
率是一个常数,在整个训练过程中保持不变,学习算
式中x(k)为第k次迭代各层之间的连接权向量或
偏置值向量;g(忌)=粼为第忌次迭代的神经
网络输出误差对各权值或偏置值的梯度向量;负号
表示梯度的反方向,即梯度的最速下降方向;口为学
习速率,在训练时是一常数;E(k)为第k次迭代的
网络输出的总误差性能函数默认值,在MATLAB神
经网络工具箱中,BP网络误差性能函数的默认值是
均方误差MSE(mean spuare error)。
E(惫)=E[e2(忌)]≈去∑∑(z}一口;(∞)2
(2)
,£o j=1 l_1
.
。
s2
根据式(2)和各层的传输函数,可以求得五次
迭代的总误差曲面的梯度g(忌)=黜,分别代
入式(1),便可以逐次修正其权值或偏置值,并使总
的误差向减小的方向变化,直至达到所要求的误差
性能为止。
动量BP算法(momentum backpropagation,
MOBP)
动量BP算法是在梯度下降算法的基础上引入
动力因子’7(0<呀<1):
缸(愚+1)=啦㈤十口(1—7)黜(3)
z(忌+1)=z(k)+△z(k+1)
(4)
该算法是以前一次的修正结果来影响本次修正
量,当前一次的修正量过大时,(3)式第二项的符号
将与前一次修正量的符号相反,从而使本次的修正
量减小j起到减小振荡的作用;当前一次的修正量过
小时,(3)式第二项的符号将与前一次修正量的符号
相同,从而使本次的修正量增大,起到加速修正的作
用。所以,动量BP算法总是力图使同一梯度方向
上的修正量增加。动量因子17越大,同一梯度方向
上的“动量”也越大。
法的性能对于学习率的选择非常敏感,学习率过大,
算法可能振荡而不稳定;学习率过小,则收敛速度
慢,训练时间长。但在训练之前要选择最佳的学习
率又不现实,然而却可以在训练过程中,使学习率随
之变化,从而使算法沿着误差性能曲面进行修正。
自适应调整学习率的梯度下降算法。在训练过
程中,力图使算法稳定,而同时又使学习的步长尽量
地大,学习率则是根据局部误差曲面作出相应的调
整。当误差以减小的方式趋于目标时,说明修正方向
正确,可使步长增加,因此学习率乘以增量因子
惫f。,使学习率增加;当误差增加超过事先设定值时,
说明修正过头,应减小步长,因此学习率乘以减量因
子忌如,使学习率减小,同时舍去使误差增加的前一
步修正过程,即
..
,
f忌i,lc口(k),E(k+1)E(忌)(5)
.
在上述BP算法中SDBP算法是最基本的反向
传播算法,动量MoBP算法与可变学习速度的
VLBP算法属于对SDBP算法的启发式改进,可提
高BP网络的学习速度,加速收敛。在实际应用中,
对于给定的问题,究竟采用哪种训练方法,其训练速
度最快是很难预测的,因为受给定的问题的复杂性、
训练样本集的数量、网络权值和偏置值的数量、误差
目标、网络的用途等的约束。通过实验,可以得知学
习率可变的BP算法比较适合收敛速度慢一些的网
络;
BP网络学习算法虽然各有所长,但是它们依然
有一定的局限性,使得BP网络在实际应用中有以
下几个方面的缺陷:(1)学习速度慢;(2)学习率的选
择没有有效的方法;(3)训练过程可能限于局部最
小;(5)网络的结构选择不一。
4在MATL蛆上的程序仿真
在动量BP算法中,可以采用较大的学习率而
BP网络在Matlab上的仿真程序设计主要包括
万方数据
第1期
李洁:BP网络的算法及在MATLAB上的程序仿真
43
输入层、隐含层、输出层及各层之间的传输函数几个
表1网络仿真结论
方面。假设3个事件的样本分别为(1 1 0),(0 1
1),(1 0 1),3个故障分别编码为(1 0),(0 1),(1
1)。利用Matlab在模式识别方面采用采用自适应
学习率BP算法计算机进行仿真,仿真程序如下,仿
真结果如图2所示。由仿真结论可知,BP网络能够
进行模式识别。
%p为输入矢量:P=[1 1 O;0 1 1;l 0 1]’;
%t为目标矢量:t=[1 0 0 1 1 1]’;
%创建一个新的前向神经网络
[w1,b1,w2,b2]=initff(p,6,7logsig",2,7purdin,)-
%设置训练参数
disp—fqre=10;
nlfx—epoch=18000;
err—god=0.001;
lr=0.01;
tp=[disp—fqreInax—epoch err—goalr];
%训练网络
[wl,bl,w2,b2,te,扛】=trainbpx(wl,bl,’logsig’,w2,
b2,’logsig’,pt,tp);
%定义验证样本
x=[0.9967 0.9971 0.0013 0.9912 0.0023 0.9875 0.
0008 0.9974 0.9886]’;
%对BP网络进行仿真
C=simuff(x,wl,bl,7logsig’,w2,102,’logsi97)’;
102
100
10。2
10。
。\\
图2网络训练误差曲线
5结束语
总之,在人工神经网络系统中,BP网络有着广
泛的应用,但各种算法在实际问题中都存在着一些
具体的问题,使得BP网络的应用受到一定的限制,
因此对这些算法还应进一步改进。利用Matlab神
经网络工具箱可实现BP网络的程序设计、训练和
仿真。
参考文献
[1]周开利,康耀红.神经网络模型及其MATLAB仿真
[M].北京:清华大学出版社。2003:30—76.
[2]刘浩,白振兴.BP网络的Matlab实现及应用研究[J].
现代电子技术,2006(2):49—51。
[3]陈孝趋,鲁聪达等.13P算法的改进及其在Matlab上的
实现[J].控制工程,2005(v.12.sO):96—98.
[4】李晓峰,刘光中.人工神经网络BP算法的改进及其应
用[J].四川大学学报(工程科学版),2000(3):105—
109.
[5]姚文俊.BP算法的改进在Matlab实现研究[J].现代
电子技术,2003,(21):95.98.
[6](美)Mrtin T.惭Howard B.Demuth Mark H.Beale
著.戴葵等译.神经网络设计IN].北京:机械工业出
版社。2005:227.257.
[责任编辑、校对:刘建强】
Computation of BP Network and MATLAB’S Programming Emulation
(Department of Dynamic Engineering,Xi’art Aeronautical College,710077,Xi’an,Shaanxi,China)
LIJie
Abstract:With the introduction to the basic principles of BP network,the essay described three computation ap—
proaches as to BP,and made the comparison by pointing out BP network’s deficiency in the practical applica—
tim.Matlab neural network toolbox was utilized to execute program designing,training and emulating by
adopting momentum—adaptive—learning—rate BP algorithm.
Key Words:BP Network;BP Algorithm;Matlab;Emulation
万方数据
BP网络的算法及在MATLAB上的程序仿真
作者:
李洁, LI Jie
作者单位:
刊名:
西安航空技术高等专科学校,动力工程系,陕西,西安,710077
西安航空技术高等专科学校学报
英文刊名:
JOURNAL OF XI'AN AEROTECHNICAL COLLEGE
年,卷(期):
2009,""(1)
1次
被引用次数:
参考文献(6条)
1.周开利.康耀红 神经网络模型及其MATLAB仿真 2003
2.刘浩.白振兴 BP网络的Matlab实现及应用研究[期刊论文]-现代电子技术 2006(02)
3.陈孝趋.鲁聪达 13P算法的改进及其在Matlab上的实现 2005(12)
4.李晓峰.刘光中 人工神经网络BP算法的改进及其应用[期刊论文]-四川大学学报(工程科学版) 2000(03)
5.姚文俊 BP算法的改进在Matlab实现研究[期刊论文]-现代电子技术 2003(21)
6.Mrtin T.Hagan.Howard B.Deward.Mark H.geale.戴葵 神经网络设计 2005
相似文献(10条)
1.期刊论文 卢绪余.王凤光 基于多层BP网络算法的新研究 -科技信息(学术版)2008,""(14)
本文对多层BP网络进行了分析并对BP算法进行了教学描述,以两层神经网络为例来叙述了BP网络的训练步骤,探讨了BP算法的缺陷,由于BP算法本身固
有的缺陷,所以要改进BP算法需要避免局部极小点的产生.
2.学位论文 胡韶峰 基于BP网络的学习系统研究 2003
为了获取高效的BP网络学习系统,我们对于BP网络的结构以及影响网络学习性能的其它相关因素进行了探讨.特别的是,我们对于BP网络训练技术作出
了进一步的分析与设计.BP算法引入,使得神经网络拥有了对噪声数据的高承受能力,以及对未经训练的数据建立分类模型的能力.但是,BP算法存在的收敛
速度慢、稳定性较差的问题也使得BP网络学习系统解决复杂问题的能力大为减弱.针对这一问题,我们采用了一种新的解决方案:综合变步长法与加惯性项
法的思想,通过采集学习过程中前后几次学习的权值增量,进行综合对比与判别从而确定新一轮迭代权值的调整值,当前后几次的权值增量变化过大或者过
小时,分别作缩小与放大处理.通过引入这种调节机制,减小了振荡发生的概率,增强了BP网络的稳定性,同时保证了收敛速度.为了验证研究结论的准确性
,我们根据研究所确定的方案设计了一个神经网络学习系统.在该系统中,给出了传统BP算法、变步长法以及改进算法三种网络训练的机制,选用函数逼近
与XOR问题求解两个试验加以了验证.理论分析与实际验证的结果表明,我们所采用的网络训练方案明显优于标准BP算法与常规的变步长法,BP网络学习系
统具备了高效的学习能力.
3.期刊论文 赵启林.卓家寿 BP网络的最大误差学习算法 -河海大学学报(自然科学版)2000,28(1)
综合了标准BP算法与"批处理"BP算法的各自特点,提出了一种新的BP网络的学习算法.该算法既具有"批处理"BP算法收敛时迭代次数少的优点,又能克
服"批处理"算法对大样本集进行学习时每次计算量较大且收敛时间长的缺点.该算法具有"批处理"算法同阶的迭代次数,但每次迭代所需计算工作量大约
是"批处理"算法的样本几分之一.
4.学位论文 陈桂芳 基于BP算法的人工神经网络软件实现的Java技术 2002
该文系统地阐述了运用Java技术仿真BP网络系统.BP网络的结构简单,具有很强的模式分类能力,应用很广泛.利用Java来用于实现BP网络的仿真正是
运用了Java的面向对象技术和可移植性等特点,使得仿真系统工作状态稳定、界面更友好,理解和运用起来更灵活、实用.文章首先对运用Java来仿真BP网
络的可行性进行了分析,对在实现过程中可能会出现的问题进行预测和说明,同时对可能出现的问题提出了相应的解决方案.随后介绍了关于人工神经网络
的工作原理、人工神经网络模型、特点及研究人工神经网络的意义.BP网络具有学习的能力,只要输入一系列例子(样本),网络就能从这些例子中获得训练
数据库中所具有的控制关系.根据BP算法,绘出BP算法的流程图,解释BP网络的特点.该文详细阐述了Java技术仿真BP网络的过程,阐明了仿真系统中BP网络
模型的基本结构以及Java作为描述神经网络工具所提供的描述功能,尤其描述了仿真系统的面向对象层次结构及使用Java的面向对象技术,并对BP网络的
各个类进行面向对象分析,介绍了仿真系统的使用流程图.通过测试,得出仿真系统的效果图.由此可知Java仿真系统具有容易使用、功能强、有效性、可
扩充性、高效性和安全性等特点.
5.期刊论文 李忠慧.LI Zhong-hui 基于VB的BP算法描述 -科技情报开发与经济2008,18(21)
BP网络具有结构简单、技术成熟的优点,在很多领域都有广泛的应用.介绍了BP算法的数学表达,并用VB对BP算法进行了具体描述,包括BP算法的初始
化、隐含层与输出层之间权系数的更新、主程序等.
6.学位论文 李守丽 改善BP网络性能的策略研究 1999
BP算法是目前应用最广泛的神经网络学习算法之一,也是至今影响最大的一种网络学习算法.但是,人们普遍认为传统的BP算法学习收敛速度太慢.该
论文针对传统BP算法所存在的局限性采取了多种改进策略,大力使改进后的BP算法快捷、高效、实用.所采用的主要改进策略有:(1)累积误差校正算法
;(2)改进的动量项校正算法;(3)累积误差校正算法与改进的动量项校正算法相结合的改进算法;(4)自适应学习率;(5)扩充输入法;(6)两步到达终点的分
段改进策略;(7)控制权值的振荡.实验结果表明:基于上述改进策略的BP网络的学习速度较传统的BP算法的学习速度要快得多,且有很高的学习效率.如学
习次数可以从传统算法的一万多次(12860次)下降到30次;学习时间可以从传统算法的31秒缩短为1秒以下.
7.会议论文 李守丽.李望超 改善BP网络性能的策略研究-快速的BP算法 1999
该文针对神经网络中广为应用的BP网络学习收敛速度慢的缺点,采用了四种策略对其进行改进。实验结果表明:改进后的BP网络的学习收剑速
度较传统的算法有明显提高,学习次数可降低近400倍,达到了快速学习的预期目标。
8.学位论文 王恒文 汽轮发电机组故障预测方法研究 1999
该文主要研究了四个问题:(1)分析了BP网络的两种训练算法;(2)BP网络结构的改进研究,并将其应于汽轮机故障这类有确定性递增(或减)趋势的时间
序列的预测中取得了下列主要成果:(1)研究了BP网络的两种典型训练算法---单样本算法和批处理算法的差异并提出了一些法,并对二者的训练收敛速度
进行了比较.(2)通过对两种数据归一化方法的分析, 明确了用BP网络预测时应采用的数据归一化方法.同时,指出BP网络在用于对具有确定性递增(或递减
)趋势的时间序列预测中存在的问题.提出一种在网络的输入层与输出层间带有直接连接权等BP网络---递推合成BP网络及相应的训练算法,并将其怀常规
的BP网络及其它若 干种改进BP网络的预测性能进行了比较.利用对几咱汽轮机典型故障趋势的模拟数据及某两台200MW汽轮机运行的实际测量数据,对该
文所提出的递推合成BP网络的预测性能进行了检 验.
9.期刊论文 张锐.高辉.李恺昕 遗传BP算法在阻值-温度变换中的应用 -哈尔滨商业大学学报(自然科学版)
2003,19(4)
利用BP网络具有任意逼近非线性函数和内插值特性,提出一种实现常用热电阻阻值-温度变换的新方法.由于BP算法的局限性,采用遗传BP算法对网络
权值进行优化.仿真结果表明此方法准确、有效,具有一定的实际意义.
10.学位论文 周永进 BP网络的改进及其应用 2007
神经网络以其并行处理、自适应组织、联想记忆及容错和鲁棒性等特点,受到了广泛关注,研究结果已经表明,用神经网络处理直觉和形象思维信
息具有比传统处理方式好得多的效果,神经网络的应用有着非常广阔的空间。BP网络包含了神经网络理论中最精华的部分,由于其结构简单、可塑性强
,得到了广泛的应用,特别它的数学意义明确、步骤分明的学习算法更使其具有更广泛的应用背景,其在分类、函数逼近、预测等方面都有非常好的优
势,适合于解决复杂的非线性问题。
本文首先介绍了人工神经网络的基本理论,包括神经网络的定义、学习方法、特点以及神经网络各种模型的优缺点,然后介绍了BP网络及其建模过
程,同时就BP网络算法的缺点,介绍了BP算法的一些改进方法,最后针对BP网络收敛速度慢的缺点,本文对S函数作了限制和新的定义,并对“九五”和
“十五”期间中国城镇家庭人均可支配收入进行实证研究,通过和传统方法应用结果的比较,体现了改进后的BP网络无论在速度还是在精度方面都有所
提高:另外根据误差补偿思想,本文提出了一种新的组合模型---离散灰色和BP网络的组合模型,并对“九五”和“十五”期间中国城镇家庭人均可支配
收入进行实证研究,结果表明组合模型比单一模型具有更好的预测精度。
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xahkjsgdzkxxxb200901011.aspx
授权使用:电子科技大学(cddzkjdx),授权号:3827f70e-7e11-4a0f-9e4d-9e5800ec8077
下载时间:2010年12月26日