摘要
长短期记忆网络(LSTM)模型要求输入资料时序连续,选择合适的输入因子及其输入方式对于提高LSTM在洪水预报中的应用效果具有重要意义。本文针对洪水场次时序上不连续的特点,构建了洪水场次拼接的固定时间步长的输入方式1、洪水场次分开考虑的动态时间步长的输入方式2、洪水场次分开考虑的结合固定时间步长和动态时间步长的输入方式3,分别以降雨、径流、降雨和径流为输入因子结合3种输入方式设置了7种输入方案,比较了不同输入方案下LSTM模型在福建建阳流域的应用效果。结果表明:(1)选取降雨及径流作为输入因子的LSTM模型(方案3、6和7)洪水计算结果优于仅以降雨(方案2和5)或仅以径流(方案1和4)作为输入因子的设置。(2)当预见期为1~2 h时,方案3、6、7的预测结果无显著差距;预见期为3~5 h时,结合固定步长和动态步长设置的方案7洪水预报结果最优。(3)对方案7分别采用预见期1~3 h的多个模型和1 h的单个模型进行滚动预报,多模型的方式在3 h预见期内对洪峰的预测精度更高。研究成果可为LSTM洪水预报模型的输入因子选择和时间步长设置提供参考,结合固定步长和动态步长的设置可提高较长预见期下的洪水预报精度。
Abstract
The long short-term memory (LSTM) model requires continuous input data in time series. Choosing appropriate input factors and input methods is of great significance for improving the performance of LSTM in flood forecasting. In this study, three input methods were set to consider the discontinuous temporal characteristics of flood events including a fixed time step. Input method 1 concatenates flood events was a dynamic time step. Input method 2 considers floods separately, and input method 3 combines fixed and dynamic time steps by separating treatment of flood events. Seven input schemes were designed by considering the above input methods with rainfall, streamflow, and both rainfall and streamflow as input factors respectively. The performance of LSTM model with different input schemes was compared in the Jianyang River Basin, Fujian. Results show that: (1) The LSTM model with rainfall and streamflow as input factors (schemes 3, 6, 7) yields better flood calculation results than those with only rainfall (schemes 2, 5) or only streamflow (schemes 1, 4) as input factors. (2) When the lead times are 1-2 hours, there is no significant difference in the prediction results of schemes 3, 6, 7. When the lead times are 3-5 hours, the scheme 7 that combines fixed step size and dynamic step size settings has the best performance. (3) The scheme 7 uses multiple models with the lead times of 1-3 hours and a single model with the lead time of 1 hour for rolling forecasting. The multi model approach has higher accuracy in predicting flood peaks within the lead time of 3 hours. This research provides reference for the selection of input factors and time step setting of LSTM flood forecasting model, combining the setting of fixed time step and dynamic time step, can improve the accuracy of flood forecasting under longer lead times.
Keywords
洪水预报是重要的防洪非工程措施。洪水过程受诸多因素影响,洪水预报一直是研究的难点。随着计算技术的发展,深度学习模型在模拟和预测方面具有巨大的潜力[1-4]。基于多门结构的长短时记忆神经网络(long short-term memory,LSTM)在隐藏层中增加了记忆细胞单元,具有较好的时间序列捕获能力和长期记忆能力,解决了长序列训练和梯度消失问题上的限制[5]。近年来,LSTM广泛应用于洪水预报研究中[6-9],计算精度优于人工神经网络(artificial neural network,ANN)、循环神经网络(recurrent neural network,RNN)、BP神经网络等模型[10-12]。
LSTM洪水预报模型从数据中挖掘潜在水文规律,输入因子、资料拼接和时间步长设置对模型计算结果的影响很大。降雨与径流数据常被优先选为输入因子[13-15],已有研究表明同时输入降雨及前期径流信息的LSTM模型日径流预测结果较好[14],随着预见期的延长,前期径流对径流预测效果的影响逐渐减小[15]。不同场次洪水之间往往是不连续的,当前对于多场洪水资料常采用直接拼接的方式输入模型,这样的处理虽然在一些情况下取得了较好的模拟结果[16-19],但拼接处本身在降雨量和流量数据的突变下存在一定的波动,常导致部分异常计算结果[20]。时间步长作为LSTM模型的关键超参数,对模型的预测精度以及学习能力存在着一定的影响[21],已有研究针对不同的时间步长进行了分析,预测精度随着时间步长的增加而提高,并最终趋于稳定[22],也有对日径流的研究结果表明,随着时间步长的增加,预测精度先上升后下降,最终逐渐趋于稳定[14],以及利用LSTM的扩展模型BiLSTM-Seq2Seq进行洪水预报时,预测精度随着时间步长的增加逐渐下降[23]。
考虑到不同输入因子、资料拼接和时间步长设置对LSTM洪水预报模型计算结果的影响,本文分别采用降雨、径流、降雨和径流为输入因子,利用不同资料拼接方式设置了固定步长、动态步长、固定步长和动态步长相结合的3种LSTM输入方式,通过组合的7种输入方案,比较分析了LSTM模型在不同输入方案不同预见期下的洪水预报结果,并将预报结果较好的方案通过滚动预报的方式进行实时洪水预报的分析。
1 LSTM洪水预报模型
1.1 LSTM模型
LSTM是一种特殊的循环神经网络,内部包括3个门(输入门、遗忘门和输出门)以及一个存储单元(细胞状态),这些门控制着信息在时间步之间的流动,使得LSTM能够更有效地处理长期依赖关系。LSTM神经元结构如图1所示。

图1LSTM神经元结构
Fig.1LSTM neuron structure
采用LSTM模型进行洪水预报的步骤主要包括:(1)数据收集与预处理:收集历史洪水流量与降雨,对数据进行预处理,包括缺失值填充、异常值处理等,挑选出适宜的洪水场次数据集。将数据集的所有特征因子按“最大值-最小值”归一化方法缩放到[0,1]范围。(2)数据划分:将处理后的数据划分为训练集、验证集和测试集。其中训练集用于训练LSTM神经元的权重和偏置,验证集用于调整LSTM模型学习率、网络架构和最佳迭代次数,测试集用于评估模型的预测精度。(3)模型训练:选择Adam算法作为优化器,均方误差(mean squared error,MSE)为损失函数。使用训练集对构建好的LSTM模型进行训练,验证集的损失函数确定最佳的模型迭代次数。在LSTM层中引入dropout机制以减少过拟合的风险,并通过全连接层将输出映射至目标数据的样式。(4)模型验证与评估:训练完成后,得到训练集、验证集和测试集的预报结果,对预报结果进行分析。
1.2 输入方式设置
LSTM模型的输入结构为批次大小、时间步长、特征数,其中批次大小决定了每次训练中使用多少个样本,时间步长是网络在单个训练样本中考虑过去时间段的长度,特征数表示输入数据中特征因子的数量。针对洪水场次不连续的特点,设置了洪水场次拼接的固定时间步长的输入方式1、洪水场次分开考虑的动态时间步长的输入方式2、洪水场次分开考虑的结合固定步长和动态步长的输入方式3。
1)输入方式1。将多场洪水资料进行拼接,为减少径流数据在拼接处的变化对模型训练的影响,训练期以相邻洪水拼接处径流差值的绝对值之和最小为依据进行排序拼接,验证期和测试期按时间顺序直接拼接。模型的输入输出关系如附图Ⅰa所示。
LSTM模型输入结构中的批次大小为n,时间步长为固定值t。LSTM模型在每个批次内,利用t个连续时间步的输入资料来计算出该批次对应预见期f时刻后的流量。
2)输入方式2。将洪水场次分开考虑,每一场洪水利用从洪水开始至预报时刻的输入资料计算出对应预见期时刻的流量。模型的输入输出对应关系如附图Ⅰb所示。
LSTM模型输入结构中的批次大小为洪水场次数u,时间步长从洪水开始逐时增加。LSTM模型在第一个批次中利用第一场洪水计算,利用和计算,依次计算直到利用计算,即得到第1场洪水流量过程,以此完成所有洪水的计算。为保证模型的正常运行,以最大洪水历时减去预见期的时长(b-f)作为最大时间步长,超过洪水场次历时的模型输出不参与损失函数的计算。
3)输入方式3。输入输出关系如附图Ⅰc所示。将每一场洪水划分为两个批次,即第u场洪水划分为和,通过输入方式2输入LSTM模型分别得到过程变量和;利用输入方式1的LSTM模型在固定时间步长中对输入输出关系进行针对性的拟合,取第一个批次中、通过固定时间步长的设置得到对应径流值,以此完成全部批次的计算可得到径流。
考虑到一场洪水划分为2个批次时对动态时间步长的最大时间步长造成的影响,在模型设置中仍以输入方式2的b-f作为最大时间步长;在模型训练以及损失函数计算时将无实测结果对应的预测值去除,确保模型的正常运行。
1.3 输入组合方案
采用各子流域的降雨P和流域出口断面流量Q作为输入资料,各子流域的降雨数据分别作为一组输入模型的特征因子。基于输入方式1和2设置了方案1~6。通过对6种方案的结果分析,选取了预测结果较好方案的输入因子(P和Q)并结合输入方式3设计了方案7。各输入方案如表1所示。
表1数据输入组合的方案设计
Tab.1 Scheme design of data input combination

2 实例分析
2.1 建阳流域概况
建阳流域(图2)位于福建省北部,属亚热带季风湿润气候,降雨年内、年际变化较大,多年平均降水量为1702 mm。流域内植被较好,地下水埋深较浅。建阳站以上流域控制面积为4848 km2,流域内有14个雨量站和1个水文站(建阳水文站)。采用泰森多边形法进行子单元划分。
采用建阳流域1988—2020年95场洪水资料,其中66场洪水作为训练期,2010—2014年15场洪水作为验证期,2015—2020年14场洪水作为测试期。采用径流深相对误差(RE)、洪峰相对误差(RPE)、峰现时差(PTE)、均方根误差(RMSE)和确定性系数(NSE)评估计算结果。

图2建阳流域
Fig.2Jianyang Basin
2.2 LSTM模型设置
采用TPESampler(tree-structured parzen estimator sampler)采样方法[24-25]对LSTM层数、学习率、隐藏层神经单元数量进行优化,该方法由Optuna超参数优化框架提供,基于贝叶斯优化原理,能够高效、自适应地探索参数空间,从而找到更优的超参数组合。参数优化结果见表2,通过对不同方案的最佳迭代次数进行分析,LSTM模型的最大迭代次数设置为2000,各方案在训练过程中分别得到最佳的迭代次数。所有方案使用了相同的随机种子数,确保LSTM模型中有关随机性的设置均可产生同样的结果。
采用相关系数法计算出95场洪水降雨与实测流量最大相关系数的平均滞后时间[26],设置输入方式1中的固定时间步长为15 h。95场洪水的最大洪水历时为361 h,以最大历时减去预见期的值(361-f)作为输入方式2和3中动态时间步长的最大时间步长。输入方式3中固定时间步长为2。设置1~5 h的预见期分析LSTM模型在不同方案下对降雨径流关系的学习能力。
表2LSTM模型参数率定结果*
Tab.2 LSTM model parameter calibration results

* “/”为对应方案中未使用该输入方式。
2.3 结果分析
2.3.1 模拟结果分析
图3列出了方案1~6在预见期为1 h时的模型计算结果。对不同的输入因子进行分析,以降雨为输入数据的方案2和5计算结果较差,以流量为输入的方案1、4和以降雨流量为输入的方案3、6计算结果较好;对不同的输入方式进行分析,方案1与方案4进行比较,方案3与方案6进行比较,方案1和3洪峰相对误差RPE的离散程度更低,方案4和6径流深相对误差RE的离散程度更低且确定性系数NSE较高。
表现较好的方案1、3、4、6在不同时期不同预见期下的计算结果如图4所示。预见期为1 h时4种方案结果差异较小。随着预见期增加,各方案预测结果变差,其中方案3和6计算结果总体优于方案1和4。在预见期1~4 h时,比较方案3和方案6的结果,方案3的RPE在各个时期均最小,方案6的RE在各个时期均小于方案3。
针对预见期越大,LSTM模型越难以学习到数据之间关系的特点,选取预见期为1、3、5 h时方案3和6测试期的计算结果(图5,R代表预测流量与实测流量的相关系数)。由图5可知,随着预见期增大,相关系数变小,计算效果变差。图5中低水部分出现了一些小于0的异常值(发生在20170531和20180619这两场洪水计算过程的起涨阶段),可能是由于LSTM模型对输出值未设约束引起的。

图3预见期为1 h时各方案的模型预测结果
Fig.3Model prediction results for each scheme with lead time of 1 hour
方案3、6与结合固定时间步长和动态时间步长设置的方案7在验证期和测试期的结果如表3所示,在预见期为4 h时部分洪水的预测结果见图6。由表3可知,预见期为1 h和2 h时方案3、6、7在各时期的NSE均大于0.900,预见期3~5 h时方案7在测试期的结果优于方案3和6。由图6可见,在较长预见期下,方案7的计算洪水过程更接近实测洪水过程,洪峰模拟效果较好,有效地提高了较长预见期下LSTM模型的计算效果。
2.3.2 洪水滚动预报分析
实时洪水预报随着实测资料的获取,通常采用滚动预报的方式。将方案7与新安江模型(记为XAJ)在实时洪水预报中的结果进行分析,LSTM模型分别采用预见期为1 h的单个模型(记为LSTM_1 h)和预见期为1、2、3 h的多个模型组合(记为LSTM_1~3 h),预报时刻之前以预见期为1 h的模型输入实测值进行模拟,预报时刻之后LSTM_1 h以预见期1 h时刻的预报流量作为输入预报下一个时段,LSTM_1~3 h通过多个模型分别得到预见期1、2、3 h时刻的预报流量,并将3个时段的预报流量作为输入预报下一个3 h长的时段。

图4不同预见期下方案1、3、4、6的预测结果
Fig.4Prediction results of schemes 1, 3, 4, and 6 under different lead times
以洪水20190612为例,不同预报时刻的洪水过程线如图7所示,计算结果如表4所示。在2019-06-13 12:00:00预报时刻,LSTM模型的预测流量高于新安江模型。在2019-06-13 17:00:00预报时刻,降雨在1 h内大于1 mm的主降雨过程已经结束,新安江模型的预报结果较好。在2019-06-13 20:00:00预报时刻,当前预报时刻与实测洪峰出现时刻相差3 h,LSTM_1~3 h的洪峰预报结果优于LSTM_1 h,NSE为0.931。在2019-06-14 02:00:00预报时刻实测洪峰已经发生,3种预报模型的结果均较好。实时洪水预报中,随着实测信息的增加,LSTM模型的预报结果逐渐变好。

图5预见期为1、3、5 h时方案3、6在测试期的预测结果
Fig.5Prediction results of schemes 3 and 6 during the testing period with lead times of 1 h, 3 h and 5 h
表3预见期1~5 h时方案3、6、7在验证期和测试期的预测结果
Tab.3 Prediction results of schemes 3, 6, and 7 during the validation and testing periods with lead times of 1-5 h

2.3.3 讨论
由上述结果分析可知,当预见期为1~2 h时,方案3、6、7的预测结果无显著差距。预见期为3~5 h时,结合固定步长和动态步长设置的方案7能够有效提高较长预见期下的洪水预测精度,在滚动预报中通过预见期1~3 h的多个组合模型可以获得3 h预见期内更好的洪峰预报结果。
图8展示了3种方案在预见期为4 h时不同洪水场次拼接处的预测结果,方案6和7在洪水开始时段无模型输出的部分采用了实测值作为替代。方案6在拼接处的计算值与实测值误差较小,方案7在拼接处的预测精度有待进一步提高。
为分析方案7采用单个模型和组合模型进行滚动预报的差异性,洪水20190612在预见期1、2、3 h的过程变量m如下图9a所示,预报时刻为2019-06-13 20:00:00时单个模型和组合模型的m如图9b所示,预报时刻之前均采用LSTM_1 h的方式输入实测值得到m,预报时刻之后分别采用单个模型和组合模型获得滚动预报方式下的过程变量m。由图9a可见,不同预见期下的m表现出较大的差异,也由此导致图9b中多模型组合的过程变量m在滚动预报中出现显著波动,这种波动使得LSTM模型的预报结果受多个模型的影响,有望获得洪水中的更多潜在信息,从而得到更好的预测结果。

图6方案3、6、7在预见期为4 h时洪水20150609和20200708的预测结果
Fig.6Prediction results of floods 20150609 and 20200708 using schemes 3, 6 and 7 with lead time of 4 hours
表4洪水20190603在不同预报时刻的计算结果
Tab.4 Calculated results of flood event 20190603 at different forecast times

LSTM在洪水预报中仍有很多问题需要进一步考虑。输入数据划分和超参数对LSTM模型计算效果影响大,本文将洪水按发生时间顺序进行分期,同一方案在不同预见期时采用同样的超参数。此外,LSTM模型缺乏物理基础,采用LSTM模型进行实时滚动预报时所造成的误差累积影响难以度量,这些问题有待深入研究。
3 结论
本文针对时序上不连续的多场洪水,分析不同输入条件下LSTM模型洪水预报效果,并将输入方式3通过滚动预报的方式进行不同预报时刻的预报。通过建阳流域的实例分析,主要结论如下:
1)将降雨及径流作为输入因子的LSTM模型(方案3、6和7)计算结果优于仅以降雨(方案2和5)或仅以径流(方案1和4)作为输入因子的设置。方案3、6、7在不同预见期下的预测结果均较好,方案1和4随着预见期的增加预测结果下降较快,方案2和5则在不同预见期下的预测结果均较差。
2)当预见期较小时(1~2 h),方案3、6、7在预测结果上无显著差距,各时期的平均确定性系数均大于0.900。在较长预见期时(3~5 h),结合固定步长和动态步长设置的方案7洪水预报效果最好,可有效提高较长预见期下的洪水预报精度。

图7洪水20190612在不同预报时刻的计算过程线
Fig.7Hydrographs of flood event 20190612 at different forecast times

图8方案3、6、7在部分场次拼接处的预测结果
Fig.8Prediction results of schemes 3, 6, 7 at some sessions between flood

图9LSTM模型在洪水预报应用中的表现
Fig.9The performance of LSTM model in flood forecasting application
3)将方案7通过滚动预报的方式进行预报时,LSTM模型在不同预报时刻的结果差异大,随着预报时间的推移,所用实测资料的增加,预测效果逐渐变好。多个预见期模型的组合使得LSTM模型在3 h预见期内对洪峰的预测精度更高。
LSTM模型中结合固定步长和动态步长的设置可提高较长预见期下的洪水预报精度,后续研究可进一步考虑方案7中动态时间步长和固定时间步长的设置及不同预见期下的超参数率定,并加强LSTM模型的可解释性研究。
4 附录
附图Ⅰ见电子版(DOI 10.18307/2025.0444)。