BP神经网络算法的改进及其应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第26卷第2期2010年5月农业系统科学与综合研究
SYSTE M SC I E NCES AND COM PREHE NSI V E ST UD I ES I N AGR I CULT URE Vol 126,No 12
M ay 1,2010
收稿日期:2009-10-19;修回日期:2009-12-021基金项目:国家“863”专题(2006AA10A310-1).
第一作者简介:刘桂莲(1969-),女,黑龙江人,在读博士,高级讲师,研究方向为系统工程.通讯作者:王福林(1959-),男,黑龙江人,博士生导师,教授,研究方向为系统工程.
BP 神经网络算法的改进及其应用
刘桂莲,王福林,索瑞霞
(东北农业大学工程学院,黑龙江哈尔滨 150030)
摘 要:根据BP 算法的基本原理,分析指出了BP 算法存在着收敛慢、接近最优时易产生波动和振荡现象的原因。

在此基础上,通过进一步研究,提出了一种新的改进BP 算法。

改进后的BP 算法不仅运算速度有所提高,而且在一定程度上克服了易产生波动和振荡现象的问题。

由于改进BP 算法的每个权都能找到最优学习率,因此收敛精度得到了提高;并且该算法基本不受初始学习率的影响,因而避免了学习率选取的困难。

图1,表3,参4。

关键词:BP 神经网络;最优学习率;权值;算法
中图分类号:TP183 文献标识码:A 文章编号:1001-0068(2010)02-0170-04
An I m proved M ethod of BP Neura l Network and Its Appli ca ti on
L IU Gui 2lian,WANG Fu 2lin,S UO Rui 2xia
(School of Engineering,N ortheast A gricultural U niversity,Harbin 150030,China )
Abstract:The paper analyzed the cause of s ome deficiencies that existed in the standard Back Pr opagati on Neural Net w ork (BP NN )based on the p rinci p le of BP NN.The deficiencies including l ong convergence ti m e and the large learning rate will make the BP NN os 2cillating .This paper p resented the i m p r oved BP NN that not only can shorten convergence ti m e but als o can overcome the oscillating t o s ome extent .The convergence accuracy could be i m p r oved vari ously as each weight f ound its op ti m al learning rate .It was not difficult t o select initial learning rate value when the i m p r oved BP NN was used .Key words:BP NN;learning rate;weight;algorith m
图1 BP 网络结构
BP 神经网络是人工神经网络的重要模型之一,已在模式识别、智能控制、预测、图象识别等领域得到广泛应用。

但是,BP 神经网络存在收敛速度慢、容易陷入局部最小、接近最优时易出现波动和振荡现象等
缺点[1-4]。

基于BP 算法中存在的问题,通过对其基本原理的深入分析与研究,找出了存在这些问题的原因。

在此基础上,提出了一种改进BP 算法,新的算法克服了标准BP 算法中的某些不足。

1 标准BP 算法的基本原理
BP 神经网络仅通过许多具有简单处理能力的神经
元的复合作用使网络具有复杂的非线性映射能力[1]
,BP 算法描述如下:
为简单起见,以一个隐层BP 网络为例说明,其结
构如图1所示。

输入层有m 个神经元,输出层有n 个神经元,隐层有q 个神经元。

现假定隐层阈值θi 和其他权同样可调,则ωi 0=b i ,固定输入x 0=-1。

隐层第i 个神经元的总输入net i 为
net i =Σm
j =0ωij x j
(1)第i 个神经元的输出O i 为
O i =f (net i )
(2)
 第2期刘桂莲等:BP 神经网络算法的改进及其应用式中:ωij ———输入神经元j 到隐层神经元i 的连接权重;f (・)———隐层的激活函数。

对输出层阈值同样处理,则v k 0=θk ,固定输入O 0=-1。

输出层第k 个神经元的总输入为net k =Σq
i =0v k i O i
(3)第k 个神经元的输出为
y k =φ(net k )
(4)
式中:v k i ———隐层神经元i 到输出层神经元k 的连接权重;φ(・)———输出层的激活函数。

误差函数为
e =d k -y k
(5)
式中:d k ———第k 个神经元的期望输出。

总误差为
E =12Σn k =1
e
2
(6)
权调整公式为
ωij =ωij -μ9E
9
ωij (7)v k i =v k i -μ
9E 9v k i
(8)
式中:μ———学习率,是一个给定的常数。

2 改进算法
从上述BP 神经网络的基本原理可以看出,该算法是从误差的负梯度方向调节权重,从而使误差达到最小。

不同点沿负梯度方向至最优点(在此点误差的减小值为最大)的距离是不断变化的。

而标准BP 中的学习率是定值,当其取值较小时,远没有达到该方向上的最佳效果,结果是计算效率低、收敛速度慢;当其取值较大时,有时就会越过最优点,也会出现计算效率低。

当迭代接近最优时,会出现向前一步便越过了最优点,而退后一步便回到原点,因而产生振荡现象。

根据上述分析,通过进一步研究,提出了一种新的改进BP 算法。

算法描述如下。

定义:μij 为输入层神经元j 到隐层神经元i 的学习率,lr k i 为隐层神经元i 到输出层神经元k 的学习率。

①给定最小梯度值ε>0,随机给出初始权ωij 0,v k i 0和初始学习率lr k i 0,μij 0。

②计算网络输出及误差E 0。

③计算梯度。

若每个节点梯度的绝对值均小于ε,则停止迭代;若不满足,则按负梯度方向计算得到
新的权值ωij 1,v k i 1。

ωij 1=ωij 0-μij 09E
9
ωij (9)
v k i 1
=v k i 0
-lr k i
9E
9v k i
(10)
④下面以输入层到隐层的某一个权ωij 所对应的学习率μij 为例说明学习率的调整过程。

首先计算输出误差E 1
,然后判断此权对应梯度的绝对值。

若对应梯度的绝对值大于ε,则分以下两种情况。

情形Ⅰ:若误差E 1
≤E 0
,则令:
μij 0α2μij 0 E 0αE 1 ωij 0αωij 1
(11)
由μij 0出发,按式(9)求得一个新的权值ω1ij ,计算输出误差E 1。

若误差E 1≤E 0
,则按式(11)继
续加大这个学习率,直到求得的权值ω1
ij 不如ω0
ij ,则保留μ0
ij 和ω0
ij 。

μ0
ij 为这个权的最优学习率。

情形Ⅱ:若误差E 1
>E 0
,则令:
μ0ij αμ0
ij /2
(12)
1
71
农业系统科学与综合研究第26卷 
由μ0ij 出发,按式(9)求得一个新的权值ω1ij ,计算输出误差E 1,若误差E 1>E 0
,则按式(12)继续
减小这个学习率,直到求得的权值ω1ij 优于ω0
ij 。

若对应梯度的绝对值小于ε,则令:
μij 0αμij 0 ωij 0αωij 1
(13)
调整下一个权的学习率,直到每一个权都能找到其对应的最优学习率。

转③,进行下一轮调节。

经过分析研究,这种改进算法具有以下优点:①负梯度方向的信息得到了更充分的利用,同时后一步的计算继承了前一步计算求得的优化学习率,因此可以提高运算速度。

②可以克服接近最优点时产生波动和振荡现象。

③学习率实现了按需要变化,每一个连接权都能找到其对应的最优学习率,因此可以明显提高收敛精度。

④该算法基本不受初始学习率的影响,因而避免了学习率选取的困难。

3 改进算法的应用
为了验证BP 神经网络改进算法的可行性,用以下两个算例来说明。

例1:异或问题。

异或问题的输入为X =0
011011,输出T =
 1
-1
-1 1
BP 神经网络结构为2∶4∶1,隐层激活函数为Sig moid 函数,输出层激活函数为直线型函数。

标准BP 的学习率为0105,改进BP 的初始学习率为0105rand (・)。

若误差小于等于0101,则停止迭代。

标准BP 和改进BP 的10次运行时间如表1所示。

表1 异或问题的运行时间比较
次数12345678910标准BP 11125015460134401468114370148401610014690154711656改进BP
01234
01235
01266
11485
01344
01266
01265
01250
01219
01297
标准BP 的平均运行时间为0176s,改进BP 的平均运行时间为0138s,仿真结果表明,改进算法的运行时间比标准BP 减少了50%。

例2:大豆播种施肥试验。

采用2007年大西江试验区大豆播种施肥试验数据,部分数据如表2所示。

BP 神经网络结构为4∶8∶1,隐层激活函数为Sig moid 函数,输出层激活函数为直线型函数。

表2 大西江试验区大豆播种施肥试验
密度万株・hm -2
氮肥
kg ・hm -2
磷肥
kg ・hm -2
钾肥
kg ・hm -2
产量
kg ・hm -225
63590
22816629740179825294601886254256919306663460184240477401798254546242193666374518426629462417114063461318864029612417982563742419302529741117546636742417546663522417985665751817115665756188656
65
25
18
2193
密度万株・hm -2
氮肥
kg ・hm -2
磷肥
kg ・hm -2
钾肥
kg ・hm -2
产量
kg ・hm -256
65256197456357518162356357561798563525181974563525620183565751818863565756197435652518193035652561842353575181886353575617113535251817983535256179866505012175425505012197446805012197446205012166746
50
100
12
1754
271
 第2期刘桂莲等:BP神经网络算法的改进及其应用
仿真1:要求各节点的梯度的绝对值均小于01001则停止迭代。

标准BP的学习率通过试验确定为01001。

训练后的误差值为10次运行的平均值。

结果如表3所示。

仿真结果表明,改进算法的训练精度比标准BP 提高了89111%。

时间减少了61154%。

与标准BP 相比,运行时间明显减少,训练精度得到了显著提高,并且学习率不需试验确定。

改进效果明显。

表3 大豆播种施肥试验数据的训练误差比较算法学习率训练误差训练时间(s)标准BP算法01001012770611615936改进BP算法
011rand(・)
(初始学习率)
01030174418364
仿真2:用改进BP算法训练试验数据,要求各局部梯度的绝对值均小于0100001停止迭代。

训练后的误差值为10次结果的平均值,为010001138。

运行时间为579159s。

从以上两个仿真结果对比可以看出,改进算法停止迭代条件的ε的取值越小,则运行精度越高,但运行时间也越长。

4 结论
在研究了标准BP算法的基本原理后,分析指出了学习率是影响收敛速度和训练精度的重要因素,提出了不同的神经元采用不同的学习率,然后根据误差的方向逐个修改学习率。

从仿真结果看,这种方法能够明显地提高训练精度,减少了波动和振荡的现象,而且运算速度同时得到了提高,并且该算法基本不受初始学习率的影响,避免了学习率选取的困难。

参考文献:
[1] 袁曾任1人工神经元网络及其应用[M]1北京:清华大学出版社,2003.
[2] Dutta R K,S Paul,Chatt opadhyay.App licability of modified back p r opagati on algorithm in t ool conditi on monit oring for faster convergence
[J]1Mater Pr ocess Technol,2000,98(3):299–309.
[3] Goely A K,S Saxenax,S Bhanotz.A fast learning algorithm for training feedfor ward neural net w orks[J]1I nternati onal Journal of Syste m s Sci2
ence,2006,37:709–722.
[4] Lambr osa S,I Panosc,L Sp iridona.Coding potential p redicti on in Wolbachia using A rtificial Neural Net w orks[J]1Silico B i ol ogy,2007,7:
105–113.
371。

相关文档
最新文档