侯 翔,汤元斌 (四川文理学院计算机科学系,四川 达州635000)
洪水预报是一种非常重要的非工程防洪措施,直接影响着防汛、水资源的合理利用和水利工程的管理等。目前,洪水预报模型 (如统计模型、确定性预报模型等)都是以实测数据为基础建立起来的,由于许多条件的限制,上述洪水预报模型难以处理洪水预报中各要素之间的内在关系。为此,笔者基于BP神经网络进行了洪水预测的研究。
Rumelhart等[1]为了解决多层前向神经网络的权系数优化,提出了前馈神经网络的核心算法——BP算法 (Error Back Propagation,BP),通常将使用BP算法的神经网络简称为BP神经网络。BP神经网络解决了权系数优化的问题,被广泛应用于函数逼近、模式识别等方面。
BP神经网络通常为3层结构,也可以是多层结构,由输入层、输出层和1个隐含层或者多个隐含层组成。BP神经网络的学习步骤如图1所示,过程分为以下2个阶段[2]:①信号正向传播阶段,即输入信号从输入层输入,经隐含层,最后进入输出层被转化成输出信号。当输出层不能够得到理想输出时,就会转入误差信号反向传播。②误差信号反向传播阶段,即将误差信号沿输入信号传播的途径,从输出层开始逐层的向前传播。在返回过程中,误差信号不断调整各层神经元联接的权值。经过多次调整后,使网络的输出信号无限逼近于理想输出。
图1 BP神经网络学习步骤图
多层BP神经网络模型图如图2所示。其中,P为输入量;f(m)为第m层传递函数;bm为第m层的偏置值;nm为第m层经过累加后的净输入值;wm为第m层权值;om为第m层的输出值。每一层网络的输出变成了下一层网络的输入,即:
其中首层神经元从外部接收的输入为o0=p;末层(输出层)的输出为:o=om。
图2 多层BP神经网络模型图
LM (Levenberg Marquardt)算法既具有Gauss-Newton法的局部收敛能力,又具备了最速下降法的全局特性[4]。通过自适应调整阻尼因子来进行收敛,提高了收敛速度,因而训练速度比其他算法快。LM算法公式如下:
式中,wb为联接权值和阈值的向量;j(k)为一阶雅可比矩阵;I为单位矩阵;mu为阻尼因子。
州河是嘉陵江流域渠江的一条支流,始于宣汉县江口,蜿蜒流向西南,经宣汉城南门、西北、东林、洋烈至千丘旁入达县境。由东北向西南,经达县罗江乡红梁村曹家湾进入达县境内,穿过达州市和达县的罗江、河市、渡市3个区的7个乡,于木头乡的大河咀出境,流入渠县的农乐、汇东、汇南等乡,在三汇镇与巴河相汇,以下始称渠江干流。州河流域面积8849km2,河长108km。多年平均流量190m3/s,最大流量13700m3/s (1902年),多年平均径流总量60.1×108m3。河宽一般为200~300m。
在州河流域范围内,根据文献 [3]对资料的要求,按照易获取、资料连续、代表性强等原则[3],筛选出土黄、毛坝、黄金和东林共计4个水文站作为该流域的代表,采用2001~2006年间4个水文站的部分洪水的流量作为训练样本,选择2007年的流量作为测试样本。利用相应洪水流量建立BP神经网络模型:
式中,Q、Q1、Q2、Q3分别为东林站、土黄站、毛坝站、黄金站的洪水流量m3/s。
建立州河洪水流量预报模型时,选择一个输入层、一个隐含层和一个输出层的模型结构。输入层为3个节点,即土黄站、毛坝站、黄金站的洪水流量 Q1(t)、Q2(t)、Q3(t);中间层为隐含层,需要通过实验来确定隐层的结点数;输出层为一个节点,即东林站洪水流量Q(t+Δt),模型结构如图3所示。
BP神经网络的传递函数分为线性和非线性2种类型。由于研究对象为洪水,其具有非线性关系的特征,因而在建立BP神经网络时,传递函数采用Sigmoid函数。为了加快BP神经网络的收敛性,有必要对所有的输入值加以归一化[4]:
图3 州河洪水流量预报模型结构图
式中,p为当前学习样本;pmax为学习样本中的最大值;pmin为学习样本中的最小值;y为训练归一化后的数据。
要选择出符合实际情况的BP神经网络模型,其中最关键的一步是利用预测样本来不断测试已经训练好的模型,直到选出适合的模型。而判断一个BP神经网络是否符合实际情况,主要观察其预测能力的高低,为此必须利用测试数据对已训练好的模型进行检验。优选网络训练参数为:预测精度goal=0.0001,学习速率lr=0.001,训练次数epochs=20000,网络所用训练函数为trainlm,其余参数取默认值。将已训练好的 (稳定性与收敛性都符合要求)BP神经网络模型对2007年汛期 (5~10月)中33次洪水流量进行预报,并以文献 [3]的规定为标准,对预报模型效果进行评定。
图4 基于BP神经网络模型的洪水预报流量与实测流量对比图
基于BP神经网络模型的洪水预报流量与实测流量对比图如图4所示。由图4可知,基于BP神经网络模型的洪水预报流量与实测流量十分吻合,说明采用LM算法的预报精度高,能够应用于洪水预报。
洪水具有不确定性即非线性的特点,而人工神经网络能够处理大规模复杂非线性动力学问题。探讨了利用BP神经网络进行洪水预报的可行性。以州河上游段土黄站、东林站及区间支流的洪水为研究对象,基于BP神经网络建立考虑区间支流的洪水预测模型,利用该模型对东林站2007年的洪水进行了预测,预测结果与实测值十分符合,说明基于BP神经网络的洪水预测模型具有可行性。
[1]闵祥宇 .基于人工神经网络的渭河上游洪水预报研究 [D].兰州:兰州大学,2011.
[2]范睿 .基于遗传算法的神经网络洪水预报研究与应用 [D].哈尔滨:哈尔滨工程大学,2005.
[3]SL250-2000,水文情报预报规范 [S].
[4]阎平凡,张长水 .人工神经网络与模拟进化计算 [M].北京:清华大学出版社,2000:26-27.