1. 引言
山洪是最常见的自然灾害之一,具有短历时,高强度的特点,威胁着社会与国民经济的发展 [1] 。洪水预报是为了预先获得洪水发生发展过程,根据洪水形成机理与运动规律,利用气象、水文等信息,预报预测洪水发生与变化过程的技术方法,并作为一项重要的防洪非工程措施,是减少洪水损失的最重要手段和方法之一。因此,建立有效的洪水预报模型,具有强烈的紧迫性和必要性。目前洪水预报方法可分为三类:经验预报、概念模型和系统或黑箱模型 [2] 。但是,对于我国广大山区,由于水文资料缺失,且降雨的空间异质性强,传统的概念模型在山洪模拟上精度较差 [3] 。近年来,人工神经网络等黑箱被广泛应用于水文预报的相关研究,并取得一定成果 [4] [5] [6] 。然而,传统的人工神经网络对样本的噪声、网络模式等因素比较敏感,而且存在过拟合以及结点记忆快速衰弱现象,其应用也是受到很大限制 [7] 。长短期记忆网络是一种改进的神经网络模型 [8] [9] ,它通过修改神经网络结构中的隐藏层神经元,解决了上述问题。本文提出了一种基于长短期记忆网络的洪水预报模型,同时使用官山河流域的降水、径流资料,对其流域进行洪水预报,提高洪水预报精度。
2. 模型介绍
2.1. LSTM模型
神经网络是一种由处理单元相互关联,有自适应能力的,非线性系统。它可以通过神经元的有向连接,建立输入参数到输出参数的映射,这种学习能力可以省略系统建模的步骤,特别适用于规律未知的情况。而比较传统的BP神经网络也已经广泛应用于水文预报,但是容易出现梯度消失,结点记忆快速衰弱的缺点,而LSTM长短期记忆网络模型可以改善这种情况。
长短期记忆(long-short term memory, LSTM)神经网络是一种改进的时间递归神经网络 [10] [11] 。LSTM网络模型引入了多个自相关的核心信元cell和3个新增单元 [12] ,分别是:输入门(inputgate)、输出门(output gate)和遗忘门(forget gate)。核心信元即细胞状态,3个门结构则控制信息在细胞状态上的更新。这样便实现了信息在网络上的更新。LSTM神经元结构如图1所示。
由结构图可知,为了与时间建立联系,LSTM在递归循环过程中增加了一个记忆单元——细胞状态,然后通过输入门it、输出门ot和遗忘门ft这三个结构来进行数据写入、读取和过去状态的重置工作。Sigmoid激活函数使遗忘门的输出值为[0, 1],当输出为0时,表示上一状态的信息全部被遗忘门舍弃;当输出为1时,表示上一状态的信息全部被保留。该结构的前向计算过程如下:
(1)
(2)
(3)
(4)
(5)
(6)
式中:
为Sigmoid激活函数,
、
、
、
分别为对应的权重系数矩阵,
、
为上一时刻和这一时刻的隐藏层输出量,
、
、
分别为上一时刻和当前时刻细胞状态以及输入的候选状态,
为当前层输出,
、
、
、
分别为对应的偏置项。首先,利用上一时刻的隐藏层输出和当前层输出,通过(1)、(2)、(3)式计算输入门、输出门、遗忘门的系数。然后,通过(4)式得到当前神经元的候选状态
。再通过遗忘门和输入门确定
和
在当前细胞状态中的比例关系,使用(5)式对其进行更新。最后,使用(6)式计算当前时刻的隐藏层输出量。
在本文的LSTM网络训练中,采用时间反向传播算法,反向计算各神经元的输出值与真实值的误差,根据误差结果计算各权重。
同时,在LSTM模型的输入层中,输入层变量包括三个特征值:时间、降水量、径流量。输出层变量只有一个特征值:径流量。这样,模型的预报结果不仅与降雨有关,也与前期的径流量有关。
2.2. 对比模型介绍
在本文中,选取水文上广泛应用的三水源新安江模型,使用该模型的洪水模拟结果与LSTM模型的模拟结果进行对比分析。
新安江是一种适用于我国湿润半湿润地区的概念性流域水文模型 [13] [14] 。三水源新安江模型蒸散发采用三层模型计算;产流计算选择蓄满产流模型;总径流采用自由水库结构被划分为地表径流、壤中流和地下径流;汇流计算采用线性水库;河道汇流采用马斯京根演算。
模型参数主要包括以下4类:1) 蒸散发计算参数;2) 产流模型计算参数;3) 水源划分参数;4) 汇流模型计算参数。
对于新安江模型而言,其模型的输入变量包括降水,蒸发。
从两个模型的输入变量来看,LSTM模型可以同时输入降水和径流资料,而新安江模型只是降水资料。文献 [15] 表明,水文序列具有较强的自相关性,同时长记忆性分解结果表明,随着时间的延长,序列的长记忆性逐渐减弱。由此分析,当流域的降水资料与实际降水偏差较大时,同时使用降水、径流作为输入变量的LSTM的效果会更好。
3. 实例分析
3.1. 研究区概况
官山河位于汉江中上游,湖北省丹江口市西南部,丹江南岸 [16] 。其经纬度范围东经110˚48'00''~111˚34'59'',北纬32˚13'16''~32˚58'20''。该流域面积465 km2,河长66.5千米,孤山水文站以上流域面积300多km2 (孤山站集水面积322 km2)。流域平均高程690米,河道平均坡降5.7‰,多年平均流量7.78 m3/s。官山河流域地形以山地和丘陵为主,地形起伏变化较大,海拔范围240到1606 m。该流域属于局地性暴雨和连阴雨高发区,年降水量高达1100 mm。官山河流域内有水文站1个(孤山站),自动雨量站4个,分布在吕家河村、官亭村、田贩村、铁炉村。
3.2. 数据处理及模型参数分析
本文构建的LSTM洪水预报模型中,作为预报因子的输入层变量有两个,分别是径流量和降雨量。
对于官山河流域洪水模拟,径流量数据由孤山站直接测得,采用泰森多边形法对4个自动雨量站数据进行插值得到降水数据。本文选取该流域1975到1987年的相关数据资料。其中,共计9场洪水,预见期为24 h来对模型进行训练和验证。其中,前7场为训练集,后2场为检验集。
对于模型本身参数的设定,通过试错法,确定LSTM网络的中间层数为3层,优化方法采用RMSProp (root mean square prop)算法,节点数为30个,最大训练次数为1500次。
3.2.1. 数据归一化处理
由于输入的数据之间数量级有时候差别较大,使用LSTM网络预测结果会存很大的误差。数据的归一化处理会有效的减少这个误差,归一化数据的取值范围为[0,1]。本文中归一化采用的是离差标准化方法(Min-Max Normalization),转换式为:
(7)
式中:
为数据序列的最大值,
为数据序列的最小值,X为原始的实测数据,
为归一化数据。经过这种归一化方法处理的数据,不但会消除因数据之间数量级差异造成的影响,而且会保留原始数据中存在的关系,使得之后的模型运算结果符合实际的范围和意义。
3.2.2. 模型的参数设定
LSTM模型的主要参数包括:输入层step步数的选择以及LSTM层记忆神经元的个数。
对于LSTM网络模型,输入层加入了时序step的概念,这样处理单元便从常规的向量变成了张量,不同的步数选择对模型的精度有着不同的影响。在训练中,LSTM层记忆神经元的个数也会影响模型的精度。若节点个数设置较少,模型拟合效果会很差,同时会存在学习回归问题,最终模型结果精度较差。若节点个数设置过多,会增加训练过程的训练时间,还会带来过拟合问题,从而影响到模型性能。至于隐藏层节点个数的设置,本文采用经验公式确定,将此作为初值。最后,通过试错法确定隐藏层节点个数。根据前人的结果,隐藏层节点数N的经验公式为:
(8)
式中:m和n为输入层和输出层的节点数,a为常数,取值范围[0,10]。
最终,通过试错法,确定LSTM网络的中间层数为3层,输入层步数为,优化方法采用RMSProp (root mean square prop)算法,误差控制率为0.001,节点数为30个,最大训练次数为1500次。
3.2.3. 模型的评价指标
基于水文预报的规范以及从官山河的实际情况出发(见图2),本文洪峰流量相对误差和洪量相对误差对两个模型进行对比,同时采用纳什模型效率系数评价LSTM模型的精度:
1) 洪峰流量相对误差
(9)
式中:Qsim、Qobs分别为场次洪峰流量的模拟值与实测值,m3/s;Qe为场次洪峰流量相对误差,%,所有场次取其平均值即为流域洪峰流量平均相对误差。
2) 洪量相对误差
(10)
式中:Vsim、Vobs分别为场次洪水流量的模拟值与实测值,m3/s;Ve为场次洪水流量相对误差,%,所有场次取其平均值即为流域洪水流量平均相对误差。
3) 纳什效率系数
(11)
式中:n是径流序列的长度,
和
分别表示t时刻径流的预报值和实测值,m3/s;
是实测径流均值,m3/s。改系数越接近1,表示模型效果越好。
3.3. 结果与讨论
利用流域1975~1987年逐日水文资料对两个个模型参数进行率定,资料来源于《长江流域水文资料》。并选取场次洪水用已优选参数进行模拟,模拟结果以及部分场次洪水模拟结果见图3。
由图3可得,就洪峰流量看,两个模型模拟的结果均小于实测流量,但是LSTM网络模型的模拟结果更接近实际值;就峰现时间看,新安江模型模拟的洪水过程,峰现时间比实际情况晚,甚至会出现实际上不存在的洪水过程,而LSTM模型模拟的洪水峰现时间基本与实际洪水过程吻合,模拟精度较高。总体来看,LSTM网络模型的模拟效果比新安江模型的模拟效果好。
由部分场次洪水过程图来看,LSTM网络模型的洪水过程与实际洪水过程相似,而新安江模型模拟结果与实际情况有较大偏差,尤其是峰现时间。仔细分析可以发现,该流域的洪水过程与降水过程并不对应,就19760601次洪水数据来看,当降水事件发生时,并没有观测到洪水发生,而是在之后一天才观测到洪水。
本文作者认为,之所以会发生这样的事情,很重要的原因在于该流域的降雨具有极强的空间变异性,监测到的降水过程与流域整体的降水过程偏差较大。另外,官山河流域植被覆盖度高,下垫面情况复杂。综合以上原因,传统的有很强物理机制的水文模型在该流域并不适用。
而就LSTM模型而言,同时输入降水和径流资料,这样便可以解决降雨与径流过程不对应的情况。同时,LSTM模型并不具备较强的物理机制,是单纯从降雨、径流资料的统计学关系出发。这样,其模拟的洪水过程的效果反而较好,模拟的精度较高,见图4。
深入分析模型模拟结果,结果见表1。从模拟结果来看,对于洪峰误差,LSTM模型的模拟结果误差在40%左右,而新安江模型的模拟结果误差在50%左右;对于洪量误差,LSTM模型的模拟结果误差在35%左右,而
新安江模型的模拟结果误差仍在50%左右。无论是洪峰还是洪量,LSTM模型模拟结果均优于新安江模型。最后,分别计算率定期和检验期模型结果的纳什效率系数,结果分别为0.75和0.73,模拟结果精度较高。

Table 1. The results of error analysis
表1. 各模型模拟误差结果
4. 结论
本文以官山河流域1975到1986年的降水量、径流量资料为依据,采用归一化法对数据进行预处理,选用LSTM网络模型以及水文上广泛应用的三水源新安江模型作为预测模型,对该流域进行洪水模拟及预测。经过两者结果的对比分析,可以得到以下几条结论:
1) LSTM模型进行洪水预报时,同时使用降雨与径流数据,可以一定程度上提高洪水预报精度。
2) LSTM模型更适用于降雨资料缺少或者降雨的监测资料误差较大的山区小流域的洪水预报。在这些缺资料或无资料地区,传统的水文模型难以应用或应用结果较差,LSTM模型具有很强的参考价值。
3) 由于LSTM模型基于神经网络系统改进得来,在实际的洪水预报过程中有时会存在一定的过拟合现象,因此对于模拟结果应该辩证看待。
基金项目
本文由国家重点研发计划(No. 2017YFC1502503)和国家自然科学基金重大项目(No. 41790431)资助。