摘要:应用visual basic 6.0编程技术,实现了人工神经网络bp算法的程序化,并建立了岳城水库洪水过程预报的反向传播神经网络模型,经检验,洪水预测精度较好,结果令人满意,为岳城水库的入库洪水预报及调度工作提供新的思路和依据。
关键词:人工神经网络 BP算法 VB程序 洪水预报
1.前言
人工神经网络(ANN)又称连接机制模型(Connection Model)或并行分布处理模型(Parallal Distributed Model)。作为人工智能的研究方法,目前已广泛应用于自然科学的各个领域,应用计算机程序来模拟这种特殊的数学模型并应用于实际流域的洪水预报研究中,无疑是一种新的尝试和有益探索。岳城水库是海河流域南运河水系漳河上的一座大型控制性工程,入库洪水突发性强,水猛多沙,为确保下游河北、河南、山东、天津广大平原地区和京广铁路的安全,对水库入库洪水进行精确预报,及时采取预泄和分洪措施显得极其重要,因此,用人工神经网络模型模拟预报水库的入库洪水过程,有重要参考和借鉴意义。
2.BP网络的构建
人工神经网络是一个高度复杂的非线性动力学系统,它有大量的简单处理单元(神经元)广泛连接而成,他对人脑的功能作了某种简化、抽象和模拟,具有很强的非线性映射能力,其中对多层前向神经网络bp模型的研究相对成熟,应用最为广泛,其模型结果如图:
中,输入层、隐层和输出层神经元的个数根据具体情况设定,其中隐层层数不一,不失一般性对输出层中只含有一个神经元的三层前向神经网络分析如下:假设输入层中有个神经元,隐层中有个神经元,输出层神经元的输出,即整个网络的输出为Y,网络中输入层的输入分别为,,…,则隐层神经元的输入分别是:
(i=1,2,…m) (2.1)
在上式中,为隐层神经元i与输入层神经元j的连接权,为隐层神经元的阈值,选择函数作为隐层神经元的激发函数,则隐层神经元的输出为:
(i=1,2,…m) (2.2)
输出神经元的激发函数取为线性函数,输出层神经元的输出及整个网络的输出为:
(2.3)
其中,Vi为输出层神经元与隐层神经元i的连接权。定义由、、组成的向量为网络的连接权向量(ij, i,i)。设有学习(,,…;)( =1,2…,p;p为数)。对某(,,…;)在给出网络向量后,可以通过公式(1.1)~(1.3)计算出网络的输出值,对于
定义网络的输出误差为: (2.4)
定义误差函数为: (2.5)
(ij, i,i)随机给出,计算式(2.5)定义的误差值较大,网络计算精度不高,在确定网络后,通过调整(ij, i,i)的值,以逐步降低误差,以提高网络的计算精度,下面给出根据误差信息调整(ij, i,i)的具体计算过程。
在反向传播算法中,是沿着误差函数随(ij, i,i)变化的负梯度方向对进行休整。设的修正值为: (2.6)
式中:为第n次迭代计算时连接权的修正值;为前一次迭代计算时计算所得的连接权修正值;为学习率,取0~1间的数;为动量因子,一般取接近1的数。将式(1.4)和(1.5)代入式(1.6)中,有 (2.7)
定义=(,,),则:
(2.8)
(2.9)
(2.10)
采用迭代式对修正计算,得到新的连接权向量。对于所有的学习均按照排列顺序进行上述计算过程,然后固定的值,对于p个分别进行正向计算,从而求出学习的能量函数值:
(2.11)
这样结束了一个轮次的迭代过程,当满足某一精度要求时,就停止迭代计算,所得(ij, i,i)即为最终模型参数,否则就要进行新一轮的计算。
3.BP算法的VB程序实现
因程序代码太多,不再给出。网络学习程序界面如下图2:
4.洪水预报网络模型构建
4.1资料收集
岳城水库的入库水文站为观台水文站,该站上游有清漳河匡门口水文站和浊漳河天桥段水文站,距观台分别为66km和64km。上游匡门口、天桥段与下游观台的区间流域面积为1488km2,见流域水系图3。资料采用年鉴1962、1976、1977、1988年四次洪水和相应年份的区间时段降雨量共118组调查数据作为模型的学习训练,另取1971年和1982年两次大洪水作为模型的检验数据。
4.2预报模型构建
网络模型采用输出层中有一个神经元的三层前向人工神经网络,洪水预报模型的输出节点为岳城水库的入库站观台水文站的时刻的流量,即网络。考虑河道洪水演进时间和区间流域的产汇流时间,分别取清漳河匡门口站和天桥断以及流域平均降雨量、作为模型的输入节点值;隐层神经元节点数和输入层节点数相同取为4。
模型参数优化:计算中,学习率越大,学习速度会越快,但是过大时会引起振荡效应;动量因子取得过大可能导致发散,过小则收敛速度太慢。据有关文献介绍,取,算法收敛速度较快。本次计算取,;网络中的初始值取(0.1~0.1)之间的随机数(由VB程序产生)。
的归一化处理:为了有效利用型函数的特性,以保证网络神经元的非线性作用,对于数值型的学习要进行归一化处理。对(p=1,2,…p)定义,,归一化处理计算就是按照公式:
(4.1)
将转化为0~1之间的数据。对于网络的输出数据还应进行还原计算恢复实际值,公式为:
(4.2)
使用VB程序对网络模型进行训练学习,经102135次学习后,网络输出能量函数值为3.2×10-3,此时得到模型最优参数如表1。
表1 模型参数表
序号 |
1 1.625608 -2.361247 -3.204714 2.846384 -2.718568 -1.185164 -1.029736 2 0.138017 -0.041076 -0.670781 0.844503 0.936162 -2.746974 1.546362 3 1.770369 -6.048657 1.134271 0.745476 0.58331 -3.063508 2.503332 0.25 0.9 4 -0.818313 1.471144 -1.484265 0.875319 -1.995911 -2.667308 2.075974 5 -1.973073 0.3014712 2.993124 -0.160362 -3.290356 -1.59743 -0.627028 |
5.模型检验
应用以上该区洪水预报的神经网络模型参数分别对1982年、1971年的两次洪水进行检验预测,相应洪水过程趋势线见图4图5。
表2 预报考评指标表
序号 序号 |
1982.1 0.03 1 1982年前20h 0.69 1982.2 0.008 1 1982年后80h 0.07 1982.3 0.04 0.5 1982年总过程 0.19 1982.4 0.04 2 1971年前11h 0.7 1971 0.06 1 1971年后50h 0.12 aver 0.036 1.1 1971年总过程 0.23 |
注: 1. 1982.1表示1982年大洪水的第一次洪峰,其它类同。
2. 1982年前20h表示1982年大洪水的涨洪段前20h,其它类同。
图4 1971年预测洪水与实测洪水过程线 图5 1982年预测洪水与实测洪水过程线
检验标准:
1)洪峰流量预报误,经计算、皆小于0.1,据《水库洪水调度考评规定SL224-98》,考评等极为良好(见表2)。
2)峰现时间预报误差,经计算考评等极为一般,其中一次良好。
3)洪水过程预报考评指标,从预报数据分析,两次洪水过程的预报考评0.23,,根据规范属一般,从洪水过程检验指标可分析主要是因为模型对涨洪期低量洪水预报精度不高造成,但峰值附近及后期预报精度较高,可作为洪水预报的一项行之有效的方案。
6.结论
岳城水库入库洪水过程的神经网络预测模型运行稳定,对峰高量大洪水预报较为准确,根据规范规定可作为水库自动测报系统的有益补充,为水库的调度提供较为可靠的依据。
参考文献:
[1]焦李成.神经网络的应用与实现.西安:西安电子科技大学出版社,1993
[2]李春好等.人工神经网络bp算法的数据处理方法及应用.系统工程理论与实践,1997,17(8)
[3]赵林明等.多层前向人工神经网络.郑州:黄河出版社,1999
[4]丁晶等.人工神经前馈(bp)网络模型用作过渡期径流预测的探讨.水电站设计,1997,13
[5]李正最.人工神经网络推算洪水流量的计算方法.四川水力发电,1997,16
[6]蒋宗礼.人工神经网络导论.北京:高等教育出版社,2001