摘要: 本文在总结 大量洪水预报实践经验的基础上,提出了一种峰值识别理论 及相应的改进BP算法(Error Back Propagation with Peak Recognizer,简称BPPR).该理论及算法在修改网络 权重时,偏重大值误差,即大值误差对权重的修改起主要作用.这种BPPR算法使人工神经网络洪水预报模型对洪峰的预报精度显著提高,从而保证了洪峰预报的可靠性.
关键词: 人工神经网络 峰值识别理论 洪水预报
洪水预报作为非工程性防洪 措施正日益受到重视,准确及时的洪水预报为防洪 决策提供了科学 的依据. 人工神经网络模拟了人类大脑的结构 及其功能,从而具有对模糊信息或复杂的非线性关系进行识别与处理的能力[1,2].
早期关于人工神经网络在水文水资源系统中的应用 与研究 的进展情况,文献 [3] 有较为详细、系统的介绍. 其中,关于洪水预报的研究成果,大多处于如何应用人工神经网络算法进行洪水预报的阶段,即如何将洪水预报的实际问题 概化成人工神经网络可以识别的算法模型. 近期的研究成果表明,研究的问题更加深入,如LINDA SEE(1999)[4] 将洪水过程分为上升段、洪峰段和下降段三部分,分别建立相应的预报模型,充分考虑了不同阶段的洪水过程其演进规律 的差异.Fi-John Chang(1999)[5] 引入洪峰预报误差和峰现误差作为洪水预报精度的评价标准,对于洪峰预报精度给予了高度的重视. 能否保证较高的洪水峰值的预报精度,是将人工神经网络的实时洪水预报技术实际应用的关键性问题.
本文在总结大量实践经验的基础上[6,7] ,提出了一种能够进行峰值识别的改进BP 算法(Error Back Propagation with Peak Recognizer, 简称BPPR). 该算法在修改网络权重时偏重大值,即大值误差对权重的修改起主要作用. 这种改进的BP 算法使人工神经网络洪水预报模型对洪峰峰值的预报精度显著提高,从而保证了洪峰预报的可靠性.
1 人工神经网络的峰值识别理论
洪水预报主要是为防汛服务的,通常对洪峰时段的水位( 或流量) 的准确预报尤为重要. 但是,对于经典的BP 算法,网络训练是根据全局误差修改网络权重的,这种权重修改方法 很难控制洪峰水位( 或流量) 的训练精度,训练后的网络权重所贮存的信息很可能更多地反映了样本 数量较大的中、低水位( 或流量) 的变化规律. 所以,经过训练的网络对中、低水位( 或流量) 的预报精度相对较高,而对洪峰的预报精度往往低一些. 如何提高人工神经网络模型对洪峰水位( 或流量) 的预报精度,是人工神经网络理论应用于洪水预报的关键问题之一.
本文是在结合实际课题广泛研究的基础上,提出了一种能够提高网络模型峰值识别精度的改进BP 算法.
1.1 峰值识别的基本思想 经典BP 算法的训练过程由信号的正向传播与误差的逆向传播两个过程组成. 其中,误差的逆向传播是基于网络全局误差并按“误差梯度下降”的原则对网络权重进行修改. 如果对原来基于“全局误差”的权重修改原则进行合理调整,使权重的修改倾向于减小输出值较大样本 的网络映射误差,这是峰值识别原理的基本思想,其实质是在误差逆向传播的网络权重修改过程中,遵循了侧重于“峰值样本 误差”的权重修改原则.
1.2 峰值识别的算法峰值识别理论的实现方法,是在引入动量项和采用学习 率自适应调整的改进BP 算法[4] 的基础上,对峰值样本 的网络误差引入合理的修正系数,使网络的权重向着使峰值训练误差减小的方向修改.
首先,从经典BP 算法开始. 设有输入为x1 (t) 、x2 (t) 、…、xn (t) 的n 维输入,输出为xL 1 (t) 、xL 2 (t) 、…、xL m (t) 、的m 维输出和若干隐层组成的多输入、多输出人工神经网络模型. 这里的t 为样本 序列号,这样的样本 共有P 对.
第l 层中第i 个神经元节点所接收到的上一层输入总和为
式中:Nl 为第l 层神经元节点总数;w(l) ij 为第l 层i 节点与第l-1 层j 节点之间的连接权重;θ(l) i 为第l 层i 节点的阈值.
第l 层中第i 个神经元节点的输出为
x(l) i (t)=f (y(l) i (t) )=1/1 exp(- σy(l) i (t)) (1 ≤l ≤L,1 ≤i ≤Nl ) (2 )
式中:f( ●) 为转移函数,这里采用的是对数型的单极性Sigmoid 函数;σ为决定Sigmoid 函数压缩程度的系数. 该系数越大,曲线越陡;反之,曲线越缓.
则,当训练次数为k 时,网络输出层及隐层的误差信号可表示为
式中:d(L) i (t) 为训练样本 的期望输出.
那么,网络权重的修改公式为
式中:η(k) 为训练次数为k 时的学习率;α为动量项系数.
以上为经典BP 算法的基本内容 . 基于峰值识别的思想,实现网络误差修正倾向于输出样本 的较大值,定义误差修正系数ξ
ξi =di (L) (t)/d(L) max (t) (7 )
式中:d(L) max (t) 为训练样本 期望输出的最大值.
为了进一步提高神经网络模型的训练速度,改善网络峰值识别的精度,可以在上述修正系数的基础上,增设误差修正放大系数μ. 那么,加入误差修正系数ξ及误差修正放大系数μ后,当训练次数为k 时,网络输出层误差信号的向量表达式如下
应用该算法进行网络训练,能够使峰值误差修正占优,从而提高网络对峰值的映射精度.
2 应用 实例
2.1 工程概况及基本模型 珠江流域西江段的水系关系比较复杂,如图1 所示. 从柳州站、迁江站、南宁站或贵港站预报梧州站洪水目前 还是一个难题. 结合现有的研究 成果,介绍洪水预报峰值识别理论 的有效性. 选取珠江流域从对亭站、柳州站、迁江站、南宁站预报江口站洪水的江口站洪水预报模型,分别以BP 算法与引入峰值识别理论的BPPR 算法进行网络 训练. 以多年实测记录数据为训练样本 ,并采用下一年的记录数据为测试样本 ,即以1988 、1992 ~1994 、1996 ~1998 各年的水位( 流量) 资料为训练样本 ,以1999 年水位( 流量) 资料作为测试样本 .
图1 珠江流域西江段主要水情站及洪水平均传播时间示意
* 传播时间单位:h
传统相应水位的洪水预报方法 是根据天然河道洪水波的运动原理,分析 洪水波在运动过程中,波的任一相位自上游水情站传播到下游水情站的相应水位及其传播时间的变化规律 ,寻找其经验关系,以此进行洪水预报[8]. 人工神经网络对信息的分布存储、并行处理以及自学习 的能力,决定了它具有对模糊信息和复杂非线性关系的识别与处理能力. 网络的训练学习过程,就是网络认知事物内在规律的过程. 构造基于人工神经网络洪水预报模型的首要问题 ,是如何将洪水过程合理地概化成人工神经网络可以映射的输入、输出关系.
以上游干流和主要支流水情站的水位( 流量) 资料作为网络模型的输入,以下游水情站所形成的相应水位( 流量) 作为网络模型的输出;同时,将下游同时水位( 流量) 作为网络模型的输入,以模拟下游初始水位的影响 . 洪水自上游水文站至下游水文站的传播时间就是网络对洪水的预见期.
本题中所建立的江口站洪水预报模型中,作为江口站的上游水文站共有对亭、柳州、迁江和南宁等站,其中的迁江站处于干流河道. 值得一提的是,对亭站方向的来水属山区洪水,特点为量小、峰高、历时短,洪水过程线陡起陡落,其结果是水位的变化非常大,而实际的流量又很小,这无疑会影响水位预报模型的识别精度. 为了减少这种小支流的干扰,在建立水位预报模型时,未将对亭站的水位作为输入项. 在建立流量预报模型时,为了保证水量的总体平衡,仍将对亭站的流量作为一项输入.
以3h 为一个间隔时段进行洪水数据采集来组织样本 ,以干流迁江站t 时刻水位( 流量) 、对亭站(t-3) 时刻流量、柳州站(t-3) 时刻水位( 流量) 、南宁站(t-8) 时刻水位( 流量) 和江口站t 时刻水位( 流量) 作为网络的输入,江口站(t T) 时刻的水位( 流量) 为网络的输出. 其中,T 为网络的预见期,即洪水自上游迁江站传播到江口站的时间,亦为峰现时间. 在组织样本 时,采用洪水在各站间的实测传播时间,但网络预报的预见期为平均预见期,即T=9 时段,约28h( 洪水在各站间的传播情况见图1). 图2 为江口站洪水预报模型的网络拓扑结构 图.
图2 江口站洪水预报模型的网络拓扑结构
在网络结构 设计中,输入与输出节点数由实际问题而定,而隐层数及隐层节点数是网络设计中的关键问题. 在实际问题中,常常无法估计问题的真实复杂程度,通常采用双隐层. 关于隐层节点数目的确定,直接关系到能否成功地解决问题. 实际上,隐层节点数决定于训练样本 的多少、样本 噪音的大小以及所面对问题的复杂程度. 若隐层节点数太少,网络映射能力不足;若隐层节点数太多,不仅增加网络的训练时间,还会引发所谓“过度吻合”问题,即虽然增加了训练精度,但是由于网络过多地获得了样本 的个性特征,而掩盖了样本 的共性特征,从而造成预报精度的下降. 目前的研究成果,还不能在理论上提供一套科学 的推导方法,试算法是可靠的常规方法. 本题经多次试算,合理的拓扑结构 为:水位预报模型(4-40-20-1), 流量预报模型(5-40-20-1).
图3 水位预报模型中BP 算法与BPPR 算法映结果比较
网络模型的初始权重在(-1 ,1) 之间随机产生,动量项系数α取0.9. 初始学习率η0 在基本BP 算法中取0.001 ,在BPPR 算法中取0.0005 ,初始学习率往往会因不同网络模型而不同.BPPR 算法的峰值误差修正放大系数μ取2.0. 水位模型的训练停止条件为平均映射误差 l ≤0.20m ,流量模型的训练停止条件为平均映射误差 q ≤500m3 /s.
2.2 计算 成果 分别采取BP 算法与BPPR 算法进行网络模型的训练,两种算法对于峰值水位( 流量) 的映射情况见图3 、图4. 以完成训练的网络模型对1999 年的洪水情况进行测试预报,预报结果见图5 、图6.
图4 流量预报模型中BP 算法与BPPR 算法映射结果比较
2.3 成果分析 图3 、图4 反映了完成训练的网络模型对训练样本 中洪峰水位与流量的映射情况,从图中可以看到,BP 算法对于洪水演进规律具有很高的映射精度,引入峰值识别理论的BPPR 算法能够进一步提高网络对洪水峰值的映射精度,这种作用对于较高洪峰识别效果更为明显.
图5 1999 年水位预报结果比较
图6 1999 年流量预报结果比较
图5 、图6 为网络模型对1999 年洪水主洪峰的预报情况. 在水位预报模型中,BP 算法对洪峰的预报误差为0.13m ( 低于实测值) ;BPPR 算法的预报误差为-0.05m ( 高于实测值). 在流量预报模型中,BP 算法对洪峰的预报误差为291m3 /s ;BPPR 算法的预报误差为-83m3 /s.
这里所采用的峰值误差修正放大系数μ实质上与样本 集中大值样本 所占的比例有关,大值样本 所占比例越小,μ的取值越大;反之,则小. 在实际操作中,ξμ是作为一个参数进行权重调节计算的,所以μ的取值又受样本 集中最大值和最小值间比例关系的限制.
如果放大系数选取过大,网络训练容易失稳,造成训练误差增大;反之,网络权重的修改难以体现洪峰样本 的贡献. 具体取值由实际问题而定,在珠江流域的洪水预报模型中,放大系数的取值范围为1.5 ~2.5.
从网络模型的训练识别和测试预报两方面的研究成果来看,人工神经网络对于洪水演进规律的识别具有较高的精度,能够模拟洪水的动态过程,其中,引入峰值识别理论的BPPR 算法有利于提高模型对峰值的映射与预报精度,效果明显. 这些改进效果对于水文水资源预报中,可能效果并不十分显著,但在防汛中,水位预报对防洪 决策至关重要,往往十几厘米的误差,直接影响到防洪 方案的决策. 因此,峰值识别理论对基于BP 算法的洪水预报模型来讲,具有重要意义.
3 结束语
基于人工神经网络的洪水预报方法作为防洪 减灾领域一种新的研究途径,将智能化思想引入到对洪水过程的计算模拟,更能反映洪水复杂非线性的动态演进规律. 研究结果表明,人工神经网络算法能够很好地映射洪水的演进规律,做到对洪水实时的监测与预报,预报精度较高.
针对洪峰预报精度在防洪 减灾工作中的重要性,本文提出了基于峰值修正理论的BPPR 算法,该算法能够很大程度上提高峰值的训练与预报精度,从而保证了洪水预报网络对洪峰水位、流量预报结果的可靠性,具有很高的实际应用价值. 这种峰值识别理论与算法还可以应用于潮汐预报、地震预报等峰值预报过程起主要作用的相关领域,具有一定的普适性.
基于人工神经网络的洪水预报作为一种新技术,有着很大的开发潜力与广泛的应用前景. 我们坚信,随着人工神经网络理论的不断发展 与成熟,结合有关领域的专业知识和经验,这种预报模型将会逐步得到完善.