基于LSTM和GPR的水文时间序列预测方法研究
2022-10-25万定生聂青青
王 瑞,万定生,聂青青
(河海大学计算机与信息学院,江苏南京 211100)
1 引言
水文时间序列是水文信息中水位、降雨量等因素随着时间变化的序列。对水位时间序列的预测分析,不仅可以实时精确地对水资源进行调度管理,更能实时预报洪涝灾害,对于中小流域防灾减灾有着突出贡献。
水位预测主要分为水文模型驱动法和数据驱动法两大类。水文模型驱动法需要收集水文数据,包括降雨、蒸发,流量、土壤含水量和下垫面信息等,如赵人俊提出的新安江模型。通过建立水文物理模型来解释水位流量变化的原因,并模拟产汇流的物理机制来预测水位流量,这些方法虽然预测精度高,可解释性强,但是都具有一定的局限性和适用条件。数据驱动方法从历史水位数据中使用统计相关的方法来预测水位,如时间序列模型、人工神经网络模型和组合学习模型。时间序列模型主要包括自回归模型和移动平均模型。时间序列模型需要数据平稳性假设,因此其预测精度有限。为了进一步提高精度,人工神经网络模型逐渐应用于水文序列预报。殷兆凯提出的基于长短时记忆神经网络(LSTM)的降雨径流模拟及预报而对预报流域产汇流进行预报,LSTM表现出更好的预报性能,而单一模型对水文序列进行预报精度受限。因此提出了一些模型集成的方法。包括冯钧的一种LSTM_BP多模型组合水文预报方法,对子午河流域进行洪水预报,精确度和稳定性得到了提高。但是随着数据量的增大,对于预测残差等其它因素的处理。许国艳提出的基于GRU和LightGBM特征选择的水位时间序列预测模型,将水位预测序列分为汛期预测序列和非汛期预测序列进行分析,并分别作最终序列预测,预测精度更进一步。
水文时间序列具有复杂的特性,为了获得可靠的、高质量的水位预测接结果。本文提出一种基于LSTM和GPR的水文时间序列预测方法,以屯溪流域水位数据进行试验分析。
2 相关研究
2.1 LSTM
LSTM(Long Short-Term Memory)是一种特殊的递归神经网络(RecurrentNeuralNetwork,RNN),LSTM是为了解决RNN中误差梯度随着时间消失导致RNN存在长时依赖问题而提出的。与RNN网络不同,LSTM的链式结构由记忆区块构成。LSTM记忆区块结构如图1所示。
图1 LSTM记忆区块结构图
为遗忘门,用来控制“记忆细胞”历史状态的保留;为输入门,用来控制信息到细胞单元中的输入状态;为输出门,用来控制信息从细胞单元中的输出状态。
在时刻,首先计算遗忘门,通过查看和-1信息输出一个0~1之间的向量,该向量的0~1的值表示细胞状态中的哪些信息被丢弃多少。0表示不保留,1表示保留。的计算公式如下:
=(+-1+)
(1)
下一步,决定给细胞状态添加哪些新的信息。首先利用和-1计算输入门决定更新哪些信息。的计算公式如下:
=(+-1+)
(2)
(3)
(3)
计算输出门。决定有多少信息输出到LSTM的当前隐藏层状态变量,其计算公式如下
=(+-1+)
(4)
=*tanh()
(5)
最终,传入输出层,再经过计算后得到LSTM在时刻的预测值。其计算公式如下
=+
(6)
2.2 GPR
GPR(Gaussian Process Regression)是一种基于贝叶斯理论和统计学习理论的机器学习方法。适用于解决高维复杂问题和非线性问题。假设一个有噪声的回归模型。其计算公式如下
=()+
(7)
(8)
(9)
其中(,)=()是对称正定协方差矩阵,其中元素通过核函数度量和之间的相关性。(,)=(,)是测试集和训练集之间的协方差矩阵。(,)是测试集本身的协方差矩阵。是维单位矩阵。平方指数核,线性核和多项式核都是常见的核函数。平方指数核的计算公式如下
(10)
是可调参数。预测值的后验分布为
(11)
(12)
(13)
(14)
3 基于LSTM和GPR的水文时间序列预测
3.1 预测模型架构
基于LSTM和GPR的水文时间序列预测模型架构总体分为三个模块:
模块一:收集水文数据并将序列化分成训练集和测试集,筛选水位特征,并将特征进行组合,分别用高斯过程回归和支持向量机回归(SVR,SupportVectorRegression)计算均方根误差,将二者误差之和作为适应度,用遗传算法(GA,Genetic Algorithm)进行演化,找到一组最优特征组合。
模块二:将特征组合与训练集作为输入,先对LSTM网络进行完整的训练,并进行第一次水位预测,输出LSTM序列预测结果。
模块三:LSTM序列预测值和真实值构建GPR模型,并进行最终序列预测。
组合模型的建模整体架构图如图2所示。
图2 组合模型的建模整体架构图
3.2 预测模型原理
LSTM序列建模能力强,GPR的概率预测结果可靠,将LSTM和GPR组合将获得高准确,高可信度的预测结果。本文提出的LSTM与GPR组合,不是传统意义上的结果按比例相加,而是完整的训练LSTM神经网络,输出预测结果,然后构建GPR模型,将LSTM预测结果作为输入,计算最终预测结果。两种模型的组合,既保留了LSTM的序列预测精度高的优点,也保证了GPR在最终预测时的高可靠性。
在水位特征选取时,遗传算法被用于筛选一组最优的水位特征组合。首先,列出一些水位替代特征,这些替代特征拥有两种状态,被淘汰或者被保留,特征筛选等价于0-1背包问题。然后,不同的特征组合将通过计算GPR和SVR的均方根误差之和作为适应度,用遗传算法进行演化,直到误差和最小停止演化,以此选取最优特征组合。其中,特征筛选和神经网络参数训练属于迭代优化问题。而神经网络训练相对耗时,如果再把神经网络的训练方法用于计算均方根误差,这种两层优化方法将会非常耗时。为了提高时间效率,采用GPR和SVR计算均方根误差。
3.3 实验准备工作
3.3.1 模型数据准备
本文选取屯溪流域2016年01月02日00:00至2016年01月22日00:00的481条水位数据,时间间隔1小时。数据集被分为两部分,前385条为训练集,后96条为测试集,实验采用对比的方法,将LSTM和GPR的水文预测模型的预测效果分别同LSTM和GPR单个模型相比较。
3.3.2 模型参数设定
模型参数的设定同样是模型成功的关键,在进行首次预测时确定LSTM神经网络输入层节点为特征输入数量,隐藏层节点为8个,输出层节点为1个。学习系数为0.01,最大训练次数为2000次。模型优化算法采用自适应矩估计(adaptive moment estimation,ADAM)算法。
3.3.3 评价指标
1)均方根误差(RMSE)
均方根误差(RMSE)是预测值与真实值方差的算术平方根。其中是预测值,是真实值,是测试集的大小。RMSE越小,测试准确度越高。其计算公式如下:
(15)
2)决定系数(R)
(16)
3.4 实验过程
本实验主要由三个模块组成。首先对水文时间序列数据进行特征替代,利用0-1规划问题求解特征组合,并采用和计算均方根误差,利用遗传算法进行演化求解一组最优特征组合;将筛选出的特征组合F与水位数据序列X进行相空间重构,利用模型计算屯溪流域水位预测序列Y,并计算预测的残差序列R;然后把水位预测序列Y,以及残差R作为模型预测的输入,输出最终预测结果2。
基于LSTM和GPR的水文预测模型算法步骤如下:
1)对数据源数据进行提取、分析,并对数据进行归一化处理。
2)筛选特征组合采用本研究3.3.1节中的数据。本研究假设特征数为10,染色体i的0或1标志此特征被淘汰或被选取,GPR和SVR计算均方根误差作为适应度值,遗传算法进行演化直至筛选出一组最优的特征组合。遗传算法采用默认参数,染色体的DNA交叉率为0.5,变异概率为0.5,迭代次数为100次。
3)将本实验中筛选出的最优水位特征组合与一维数据利用相空间重构的方法构造高维度的矩阵,输入LSTM模型对其神经网络进行训练,并计算屯溪流域水位预测序列1,并计算预测的残差序列。输入层节点为8个,隐藏层节点为8个,输出层节点为1个。
4)将水位预测序列1和预测的残差序列相结合形成GPR模型的输入矩阵,计算并输出最终预测序列2。
5)将所得预测序列2逆归一化得到最终输出结果。具体实现过程如算法1所示。
算法1:
输入:水位时间序列训练数据集_以及特征;
输出:水位预测序列
为距离当前预报时刻的前个小时
为输入数据长度
∥筛选一组最优水位特征组合
1)水位时间序列数据进行数据标准化
*本实验采用0-1标准归一化*
2)输入训练数据和初始特征-
3)0-1规划求解特征组合
4)SVR和GPR计算的均方根误差同时最小作为最佳适应度
5)GA演化求解一组最优特征组合
*最优特征组合(,,,,,,,)*
6)划分训练数据集和测试集
7)重构LSTM模型输入的训练数据集
*本实验输入为8×385高维矩阵,其中8为特征(,,,,,,,),385为训练数据集*
8)fori=1 to 1
9)LSTM建模
10)i++;
11)end for
12)输出水位预测序列1,预测残差序列
13)重构GPR模型的输入
/*此次输入为水位预测序列1和预测残差序列*
14)forj=1 to 1
15)GPR建模
16)j++;
17)endfor
18)输出水位预测序列Y
19)Y反归一化后输出最终预测结果
3.5 实验结果与分析
LSTM模型、GPR模型以及基于LSTM和GPR的水文预测模型预测结果和真实值的对比情况见表1.
为了实验对比结果更简单清晰,对2016年01月19日00:00至2016年01月22日00:00进行水位预测,并将预测结果和原始真实值的对比情况见表1。
表1 LSTM模型、GPR模型、基于LSTM和GPR的水文预测模型预测结果对比
采用LSTM模型预测结果如图3。
图3 LSTM模型预测结果
采用GPR模型预测结果如图4。
图4 GPR模型预测结果
采用基于LSTM和GPR模型水文预测模型结果如图5所示。
图5 基于LSTM和GPR模型预测结果
为了使实验结果对比更明显,将LSTM单模型、GPR单模型以及基于LSTM和GPR模型的预测结果进行对比。各模型对比结果如图6所示。
图6 各模型对比结果
通过图6可以看出LSTM和GPR模型相对于单一LSTM模型、GPR模型有具有优秀的预测效果。
不同模型的评价指标的对比如表2。
表2 预测水位序列评价指标结果表
对比实验结果和评价指标,随着时间推移,基于LSTM和GPR水文预测模型相对于单一的
LSTM或GPR水文预测模型在拟合程度上表现出更高的精确性,预测值更接近真实值。实验证明了基于LSTM和GPR水文预测模型相对于其它算法在预测精度上有了提高。
4 结语
本文提出基于LSTM和GPR的水文时间序列预测方法,对屯溪流域水位小时数据进行应用分析。实验结果说明,与单一的LSTM或GPR预报模型相比,基于LSTM和GPR水文时间预测模型得出的实验结果更加准确。