摘要:本文在用人工神经网络BP模型对流域年均含沙量进行多因素建模过程中,对BP算法进行了改进。在学习速率η的选取上引进了一维搜索法,解决了人工输入η时,若η值过小,收敛速度太慢,η值过大,又会使误差函数值振荡,导致算法不收敛的问题。建模实践表明,改进后的BP算法可能使网络误差函数达到局部极小点,提高了算法的拟合精度。
关键词:BP算法 学习速率 年均含沙量 一维搜索法
我国河流众多,自然资源十分丰富,但江河流域水土流失非常严重,给国家的可持续发展以及生态环境带来较大的危害。对于流域产沙的定量研究,一般采用单因子线性回归方法。这类方法虽然也能反映出某种统计特性,但不能刻画自然界复杂的非线性特性。人工神经网络BP网络模型是复杂非线性映射的新方法。在引入这一新的定量研究方法对流域年均含沙量进行建模预测时发现:算法中学习速率η值的选取对算法成败起着关键作用,若η值过小,收敛速度太慢,而η值过大,又会使误差函数值不下降,导致算法不收敛。本文正是针对这一问题进行了探讨。
1 BP网络模型及学习率η固定的弊端
人工神经网络理论是80年代中后期迅速发展起来的一门前沿科学,其应用已渗透到各个领域[1]。BP(Back Propagation)神经网络模型是人工神经网络理论的重要模型之一,应用尤为广泛。尽管BP网络模型发展逐步成熟,但仍然存在许多问题,在理论上需要完善[2]。BP算法主要包括两个过程,一是由学习、网络权值ω从输入层→隐含层→输出层逐次算出各层节点的输出;二是反过来由计算输出与实际输出偏差构出的误差函数E(ω),用梯度下降法调节网络权值,即ωk+1=ωk+η()使误差E(ωk+1)减小。 |
上式中的η为学习速率,即沿负梯度方向的步长。对于BP算法学习速率η的选取标准,一些研究者凭经验认为取0~1之间较合适,但这并无理论依据。实质上,η大小的选取对算法的成败起关键作用,步长过大,误差函数值可能发生振荡,甚至出现不收敛,而步长过小,收敛速度又太慢,并且在每一次迭代中,可选步长也不一样。总之,对于BP算法固定的学习速率η不可能使网络达到局部极值点。为此,本文引进一维搜索法,在每一次迭代过程中让计算机自动去寻找一个最优的步长,这样可使网络收敛到局部极值点。
2 BP算法及其改进
2.1 BP算法步骤
1°随机抽取初始权值ω0;
2°输入学习对(Xp,Yp),学习速率η,误差水平ε;
3°依次计算各层结点输出opi,opj,opk;
4°修正权值ωk+1=ωk+ηpk,其中pk=,ωk为第k次迭代权变量; |
5°若误差E&<ε停止,否则转3°。
2.2 最优步长ηk的确定
在上面的算法中,学习速率η实质上是一个沿负梯度方向的步长因子,在每一次迭代中如何确定一个最优步长ηk,使其误差值下降最快,则是典型的一维搜索问题,即E(ωk+ηkpk)=(ωk+ηpk)。令Φ(η)=E(ωk+ηpk),则Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk。若ηk为(η)的极小值点,则Φ′(ηk)=0,即E(ωk+ηpk)Tpk=-pTk+1pk=0。确定ηk的算法步骤如下 |
1°给定η0=0,h=0.01,ε0=0.00001;
2°计算Φ′(η0),若Φ′(η0)=0,则令ηk=η0,停止计算;
3°令h=2h, η1=η0+h;
4°计算Φ′(η1),若Φ′(η1)=0,则令ηk=η1,停止计算;
若Φ′(η1)&>0,则令a=η0,b=η1;若Φ′(η1)&<0,则令η0=η1,转3°;
5°计算Φ′(a),若Φ′(a)=0,则ηk=a,停止计算;
6°计算Φ′(b),若Φ′(b)=0,则ηk=b,停止计算;
7°计算Φ′(a+b/2),若Φ′(a+b/2)=0,则ηk=a+b/2,停止计算;
若Φ′(a+b/2)&<0,则令a=a+b/2;若Φ′(a+b/2)&>0,则令b=a+b/2
8°若|a-b|&<ε0,则令,ηk=a+b/2,停止计算,否则转7°。
2.3 改进BP算法的特点分析
在上述改进的BP算法中,对学习速率η的选取不再由用户自己确定,而是在每次迭代过程中让计算机自动寻找最优步长ηk。而确定ηk的算法中,首先给定η0=0,由定义Φ(η)=E(ωk+ηpk)知,Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk,即Φ′(η0)=-pTkpk≤0。若Φ′(η0)=0,则表明此时下降方向pk为零向量,也即已达到局部极值点,否则必有Φ′(η0)&<0,而对于一维函数Φ(η)的性质可知,Φ′(η0)&<0则在η0=0的局部范围内函数为减函数。故在每一次迭代过程中给η0赋初值0是合理的。
改进后的BP算法与原BP算法相比有两处变化,即步骤2°中不需给定学习速率η的值;另外在每一次修正权值之前,即步骤4°前已计算出最优步长ηk。
3 实例分析
通常流域含沙量与气象、水文要素和下垫面植被状况等多因素关系密切[4]。本文选取了采伐面积(X1)、采伐量(X2)、降雨量(X3)和年平均径流量(X4)这4个主要因素对流域年均含沙量(Y1)进行了建模预测[5]。由于采伐面积和采伐量对流域产沙的影响很难在一年后彻底消除,有可能影响到以后的几年甚至几十年流域产沙量。因此,本文认为采伐面积(X1)、采伐量(X2)对流域年均含沙量具有一定的滞后效应。下面对这两个因子X1和X2各取五阶延迟,即采用输入层节点数n=14,输出层节点数m=1,隐含层节点数取r=12的三层BP网络建模。
表1中,列举了网络学习过程中由一维搜索法得出的最优迭代步长ηk的系列值。由于数据量太大,因此间隔性地选取迭代过程中的部分值。从表1可看出,最后得出的ηk值为0,这说明网络收敛到局部极值点,这一点原BP算法是无法达到的。另外大部分ηk值不相等,大的为3.1,小的可为0,而且有许多ηk值大于1,而并不是人们常认为的η只能在(0,1)内取值,同时这也说明根本不存在固定的学习速率η。
表1 网络学习过程中最优步长ηk
Values of ηk in networks studying
| ||||||||||||
|
|
|
|
|
|
ηk |
|
|
|
|
|
|
| ||||||||||||
0.34 |
1.5 |
0.7 |
1.5 |
0.1 |
1.5 |
1.5 |
0.3 |
1.5 |
1.5 |
0.1 |
0.3 |
0.3 |
0.28 |
0.3 |
1.5 |
0.1 |
1.5 |
0.3 |
1.5 |
1.5 |
0.3 |
0.1 |
1.5 |
0.1 |
0.3 |
0.24 |
0.1 |
0.1 |
0.3 |
0.3 |
0.1 |
0.3 |
0.1 |
1.5 |
1.5 |
1.5 |
1.5 |
1.5 |
1.5 |
0.3 |
0.3 |
1.5 |
1.5 |
0.1 |
0.7 |
1.5 |
0.3 |
0.1 |
0.3 |
0.3 |
1.5 |
0.25 |
1.5 |
0.3 |
1.5 |
0.3 |
0.7 |
0.1 |
0.3 |
0.1 |
0.3 |
0.1 |
0.1 |
0.1 |
0.3 |
0.1 |
1.5 |
0.1 |
0.3 |
0.3 |
1.5 |
0.1 |
0.3 |
1.5 |
0.3 |
1.5 |
1.5 |
0.3 |
0.1 |
1.5 |
0.1 |
0.3 |
0.3 |
1.5 |
1.5 |
0.3 |
0.3 |
0.3 |
0.3 |
1.5 |
0.3 |
0.3 |
1.5 |
0.1 |
0.3 |
0.3 |
0.3 |
0.3 |
0.3 |
0.3 |
0.3 |
0.3 |
0.7 |
1.5 |
0.3 |
1.5 |
0.3 |
0.3 |
0.3 |
0.3 |
1.5 |
1.5 |
0.1 |
0.1 |
0.1 |
0.3 |
1.5 |
1.5 |
1.5 |
0.7 |
1.5 |
0.3 |
0.1 |
0.3 |
0.3 |
1.5 |
1.5 |
3.1 |
0.3 |
1.5 |
1.5 |
1.5 |
0.1 |
0.1 |
0.3 |
1.5 |
0.1 |
1.5 |
0.3 |
0.3 |
0.3 |
0.3 |
1.5 |
1.5 |
0.3 |
0.1 |
0.3 |
0.3 |
1.5 |
1.5 |
0.3 |
1.5 |
0.3 |
0.1 |
0.3 |
0.1 |
1.5 |
0.3 |
0.1 |
1.5 |
0.3 |
0.7 |
0.3 |
0.1 |
0.7 |
1.5 |
0.3 |
0.7 |
0.1 |
0.3 |
0.1 |
0.3 |
0.1 |
0.3 |
0.1 |
0.3 |
0.3 |
0.3 |
0.1 |
0.3 |
0.3 |
0.3 |
0.3 |
1.5 |
1.5 |
0.3 |
0.3 |
1.5 |
0.3 |
0.3 |
1.5 |
0.3 |
0.3 |
0.3 |
1.5 |
0.1 |
0.3 |
0.3 |
1.5 |
0.3 |
0.3 |
0.1 |
0.3 |
0.1 |
1.5 |
0.3 |
0.1 |
0.3 |
0.1 |
0.3 |
0.3 |
0.3 |
0.3 |
0.1 |
1.5 |
1.5 |
1.5 |
0.7 |
0.1 |
0.1 |
0.3 |
0.3 |
0.3 |
0.1 |
0.1 |
0.1 |
0.3 |
0.1 |
0.1 |
1.5 |
0.3 |
1.5 |
0.1 |
0.3 |
0.1 |
0.3 |
1.5 |
0.3 |
0.1 |
0.3 |
1.5 |
1.5 |
1.5 |
0.3 |
0.3 |
0.3 |
0.3 |
1.5 |
0.3 |
0.3 |
0.3 |
1.5 |
0.7 |
0.7 |
0.3 |
0.1 |
0.7 |
0.3 |
0 |
|
表2给出了改进BP模型模拟预测的结果。其中前10组为拟合误差,后3组为预测误差。从中可看出,改进的BP算法对流域年均含沙量进行多因素建模预测时拟合精度高,预测效果也较好,预测误差依次为0.09%、3.79%、17.78%。
表2 改进BP模型模拟预测结果
Simulation and prediction results of improved BP model
| |||||||||
序号 |
实测值 |
计算值 |
绝对误差 |
相对误差(%) |
序号 |
实测值 |
计算值 |
绝对误差 |
相对误差(%) |
| |||||||||
1 |
5.03 |
5.03 |
0 |
0.00003 |
2 |
3.55 |
3.55 |
0 |
0.000103 |
3 |
2.72 |
2.72 |
0 |
0.000018 |
4 |
4.05 |
4.05 |
0 |
0.000088 |
5 |
3.22 |
3.22 |
0 |
0.00007 |
6 |
2.65 |
2.65 |
0 |
0.000428 |
7 |
1.91 |
1.91 |
0 |
0.000667 |
8 |
3.00 |
3.00 |
0 |
0.000205 |
9 |
1.31 |
1.31 |
0 |
0.000076 |
10 |
2.33 |
2.33 |
0 |
0.000025 |
11 |
3.55 |
3.55 |
0 |
0.086938 |
12 |
3.35 |
3.22 |
0.127 |
3.789662 |
13 |
2.55 |
2.10 |
0.446 |
17.4796 |
|
|
|
|
|
|
4 结论
本文对BP算法进行了改进,即引入一维搜索法解决学习速率η的选取问题;改进后的BP算法可以使网络收敛到局部极值点,并提高算法的拟合精度。
参 考 文 献
[1] 焦李成。神经网络的应用与实现。西安电子科技大学出版社,1995.
[2] 焦李成。神经网络系统理论。西安电子科技大学出版社,1995.
[3] 张光澄。最优化计算方法。成都科技大学出版社,1990.
[4] 王汉成。原理。电力出版社,1992.
[5] 李祚泳,邓新民,侯宇光。流域年均含沙量的PP回归预测。泥沙研究,1999,(1),66-69.
转贴于