一种无延迟的水文时间序列预测方法

2022-09-29 10:28马心雨梁正和朱跃龙万定生
科学技术与工程 2022年22期
关键词:水文神经网络误差

马心雨, 梁正和, 朱跃龙, 万定生

(河海大学计算机与信息学院, 南京 211100)

近年来,洪水灾害事件危及了人民的生命安全和财产安全。为了在灾难发生前给人民预留足够的时间做好撤离工作,需要对水文数据实施准确和准时的预测。

目前,用于水文预测的模型主要有概念模型、物理模型和数据驱动模型。前两种模型需要水文现象的具体物理过程和大量的水文参数作支撑,具有一定的局限性。而数据驱动模型只需要历史数据就能实现模型的建立与未来数据的预测,因此,它受到广泛的应用。常见的数据驱动模型有长短期记忆神经网络(long and short-term memory neural network,LSTM)[1]、支持向量机(support vector machine,SVM)[2]、极限学习机(extreme learning machine,ELM)[3]等,但单一的模型存在着预测的不足。为此,张洋铭等[4]利用改进粒子群算法优化LSTM,改善了传统LSTM参数选取困难的问题,提高了预测的效率及时间序列的拟合能力。Li等[5]利用布谷鸟搜索算法(cuckoo search algorithm,CS)对LSTM的参数进行寻优,并利用自我注意机制捕捉时序数据之间的相关性,进一步提高了预测的精度。徐松金等[6]利用差分进化优化最小二乘支持向量机(least square support vector machine,LSSVM)的惩罚因子和核函数参数,避免了选择参数的盲目和耗时。Zhao等[7]在学习水文数据具有的时间信息的基础上,对研究区域内的空间信息进行了捕捉,降低了预测的误差。以上方式均实现了对时间序列更加准确的预测,但对预测的准时问题思考不足,导致以上模型的预测结果存在预测峰值落后于真实峰值的现象,即预测延迟的问题,该问题可能会造成撤离工作的失败。目前,在水文中,大多数数据驱动模型都存在准确性较高,而准时性不足的问题。

针对预测延迟问题,早期,De Vos等[8]通过分析预测模型,提出了两点造成预测延迟的原因,第一,输入历史数据间高度的自相关性导致建立的模型倾向于对历史数据的回归输出,因此导致预测结果与上一时刻已知数据的近似,表现出预测延迟的现象;第二,神经网络优化时使用的目标函数过于单一,如均方根误差只考虑了预测效果的准确性。针对上述原因,众学者进行了分析和研究。对于第一个原因,通过设置不同的小波基函数对时间序列进行了多级分解,削弱输入时间序列的相关性,并对得到的子序列进行预测模型的构建和预测结果的重构,有效解决了预测延迟问题。但是,Dixit等[9]利用试错法选择小波基函数和分解级数时,耗费了大量的时间,降低了效率,并且小波分解存在模态混叠的问题,影响预测模型的建立。Samanta等[10]建立双层网络,同时捕捉时间序列的动态信息和静态信息,削弱了输入的自相关成分实现了时间序列的准时预测。对于第二个原因,Abrahart等[11]利用神经进化工具箱优化神经网络的参数,将预测结果的均方根误差和时间校正因子相结合作为优化的目标函数,同时考虑了预测结果的准确性和准时性,实现了对时间序列的精准预测。

基于以上思考,现从以上两个原因出发,首先利用变分模态分解(variational mode decomposition,VMD)作为时间序列的分解算法削弱时间序列的高自相关性,它克服了模态混叠的问题,并利用CS确定VMD参数的最优解,提高参数选择的效率。CS选用的适应度函数将预测延迟变量与确定性系数相结合,同时考虑预测结果的准确性和准时性。其次,利用CS优化VMD的结果指导其对时间序列的分解过程。最后,基于LSTM和ELM神经网络为分解的子序列建立预测模型,构成CSVMD-LSTM-ELM模型对水文中的预测延迟问题进行研究。

1 预测延迟问题

在水文时间序列的预测研究中,预测延迟现象很普遍。原因是衡量模型精度常用的评价指标,如均方根误差等,本身没有符号,无法对方向上的误差进行衡量。因此,这些评价指标分数即使再好,却没有改善预测延迟的问题。

图1为基于LSTM的水文时间序列预测局部图,仅使用历史水位作为输入,未来水位作为输出。由图1可以看出,预测的波谷点落后于真实位置,并且,当水位的真实趋势已经开始上升了,预测趋势却还是下降的。这样将会得到错误的信息,造成判断的失误,可能带来巨大的经济损失。传统降低误差,提高模型评价指标分数的方式只能改善整体的拟合效果,并不能避免这样的局部问题。因此,研究并对其进行解决,使建立的模型能够实现准确且准时的预测,是具有重要意义的。

图1 预测延迟现象Fig.1 Prediction delay phenomenon

2 无延迟预测模型

水文时间序列的预测延迟问题是由于时间序列间的高自相关性引起的,因此首先利用VMD算法对时间序列进行分解,以削弱时间序列的相关性,并结合CS来寻找VMD分解算法的最优参数,目的是得到时间序列的最优分解程度,其既可以削弱时间序列的相关性,又保留它的时间特征。基于此再对神经网络进行训练,建立无延迟预测模型,解决水文时间序列中预测延迟的问题。

2.1 基于CSVMD的时间序列分解算法

2.1.1 VMD算法

基于数据驱动方式的水文时间序列预测大大减少了水文工作者的工作量,并且提高了准确性。但时间序列本身的特点也带来一些新的问题。首先水文时间序列数据是不稳定和非线性的,并且包含着多个尺度的变化,如果直接对这样的时间序列进行预测,多尺度的信息融合在一起,必定会对模型的训练带来一定的影响。其次是时间序列的连续值之间存在高自相关性,这样得到的结果会出现预测延迟的问题。为了解决上述问题,传统的小波分解是一种很好的预处理方式,它通过设置小波基函数和分解层级,就能将时间序列分解为多个细节分量和一个近似分量;同样的,经验模态分解(empirical mode decomposition,EMD),可以将时间序列分解为处在不同频段的多个模态分量和一个残余分量,相对于小波分解,它不需要人为设置小波基函数,并且分解过程具有自适应性,但是会出现模态混叠的现象和端点效应,为了解决这些问题,又出现了集合经验模态分解 (ensemble empirical mode decomposition,EEMD)等方法,但它们都属于递归分解法,且计算效率低下。而后出现的VMD分解算法是基于完全非递归性质的时间序列分解法,它不仅消除了分解过程中的模态混叠与端点效应问题,并且具有更高的计算效率。该分解算法的具体步骤参见文献[12]。

2.1.2 CS算法

在VMD算法的两个参数中,分解个数k和惩罚因子α是需要人为设定的,它们关系着VMD分解的程度,分解程度过高会使时间序列的时间特征丢失,过低则无法使多个尺度的信息分离,这都会导致预测模型建立的失误,从而无法解决预测延迟问题。CS作为一种优化算法,可以通过设置适应度函数,寻找合适的VMD参数。它的适用性很广,只要能够公式化为函数的优化问题,都可以利用优化算法找到很好的解决方案,并且,CS需要调节的参数少,不易陷入局部最优。CS的具体步骤参见文献[13]。

2.1.3 基于CS优化的VMD分解算法

为了高效地确定VMD参数的最优解,利用CS对VMD参数进行优化,构成了CSVMD分解算法。在CS与VMD进行结合时,大多数学者利用均方根误差、平均绝对误差、确定性系数等作为CS的适应度函数,通过优化提高了预测的精度。这种方式,在误差相对大时会产生良好的效果,但是,当误差已经缩小到一定的程度,如确定性系数已经达到0.99以上,再进行这种优化是没有意义的。然而无论误差降低到多小,“预测延迟”现象都是存在的。该现象导致预测的峰值出现的时间较晚,这无疑会带来严重的后果。因此,只考虑误差是不全面的。

为了同时考虑误差和“预测延迟”带来的影响,将确定性系数R2与延迟变量TLag进行结合,作为CS优化VMD时的适应度函数,这样在保证缓解预测延迟问题的同时,使预测结果具有较低的误差。

根据Conway等[14]的研究,并经过多次实验,将适应度函数定义为

(1)

式(1)适应度函数指导CS对VMD的参数进行迭代,通过寻找该适应度函数的最小值,得到VMD的最优参数。它的意义在于,当具有预测延迟时,TLag将会放大预测结果的误差,L将会很大,从而将优化的重点放在缓解预测延迟问题上,提高预测的准时性;当延迟时间几乎为0时,优化算法将会寻找使误差更低的参数组合,从而将优化重点转移到预测的准确性方面。

基于CS的VMD优化过程如下。

(1)初始化鸟巢位置的集合。鸟巢位置即需要优化参数的随机值的组合,该随机值所属范围根据要解决的优化问题而定。

例如,对于一个二维的优化问题,第i个鸟巢的位置可以定义为

(2)

式(2)中:v1为要优化的参数1的随机值;v2为要优化的参数2的随机值。

那么,鸟巢位置的集合为

(3)

(2)根据所有参数组合建立神经网络模型,计算对应适应度函数的值,寻找当前参数组合中的最优解。

(3)更新参数组合值,再次计算新组合的适应度。更新组合值时结合了Levy飞行的搜索方式。

(4)将新一批的参数组合中的最优解与前一次迭代的最优解进行比较,选出新的最优解。

(5)按照发现概率丢弃适应度差的解。

(6)继续迭代,更新鸟巢位置,直到满足指定的停止条件。

该算法的流程如图2所示。

t为当前迭代次数,初始值为0;Max为最大迭代次数; pa为鸟巢被发现的概率图2 基于CS的VMD参数寻优过程Fig.2 VMD parameter optimization process based on CS

2.2 基于LSTM-ELM的无延迟预测模型

现将无延迟预测模型的建立分为两个阶段,具体如图3所示。首先,对于VMD参数设置阶段,利用CS初始化一系列VMD的参数组合后进行迭代,找到最优的参数组合,该组参数指导训练阶段中的VMD分解过程。其次,在预测模型训练阶段,通过对子序列进行两种神经网络的训练与模型评价等步骤,建立基于LSTM-ELM的神经网络,从而构成无延迟预测模型。

k和α为VMD分解算法的两个参数,分别是分解个数和惩罚因子图3 无延迟预测模型建立步骤Fig.3 Steps for buildingdelay-free prediction model

图4 LSTM与ELM预测对比图Fig.4 Comparison diagram of LSTM and ELM prediction

VMD将时间序列分解成不同频率的子序列,为了训练得到不同频率的最佳预测模型,采用两种神经网络进行训练,包括LSTM神经网络和ELM神经网络,并通过使用评价指标进行比较与选择,构成整体的最佳预测模型,克服单神经网络只能很好地提取某一特征的不足[15]。并且,LSTM在处理较长时间序列方面有很好的性能,但训练速度较慢,这样在对多个子序列进行训练时,时间耗时将会成倍增长;ELM在速度方面有很好的性能,然而由于 ELM 随机给定隐含层权重与偏置[16],导致ELM预测序列不如LSTM预测序列平稳,如图4所示。可以看出,将LSTM与ELM进行结合的方式相较于单一神经网络建立的模型,具有更好的预测性能。

为了对不同神经网络的预测效果进行对比,选用以下的评价指标。

(1)均方根误差(root mean square error,RMSE),它用来反映预测结果的离散程度。公式定义为

(4)

(2)平均绝对误差(mean absolute error,MAE),它是真实值和预测值的绝对误差的均值。公式定义为

(5)

(3)确定性系数(deterministic coefficient,DC),它反映了预测值与真实值之间的吻合程度,在统计学里,一般用R2表示。公式定义为

(6)

(4)预测延迟时间Lag,它表示预测序列落后于真实序列的时间,单位为h。它的值利用序列间的皮尔森相关系数进行求解,通过移动预测序列,计算其与真实序列的相关系数,记录相关系数最大时的移动距离。该距离代表延迟的时间。

皮尔森相关系数(pearson correlation coefficient,PCC),一般用r表示,计算公式为

(7)

求解r最大值的过程为

Max{r(p[i:],q)},i=1,2,…,n

(8)

式(8)中:Max为求解最大值的函数;r为两个时间序列间的皮尔森相关系数;p[i:]为预测序列从位置i到最终位置的截断子序列;q为真实序列。

3 实验分析

3.1 实验准备

3.1.1 数据准备

以秦淮流域东山站的水位为研究对象,该流域地处我国长江中下游地区,是平原地区的中小河流域。该流域包含多个雨量计和水文站,数据资源丰富。选取2016年1月1日00:00—2018年12月31日23:00共26 304条数据作为数据集,水位数据的数据间隔为1 h。选取前17 544条数据作为训练集,后8 760条数据作为测试集。输入数据为历史上前10 h的水位数据,即(rivert-10,rivert-9,…,rivert),输出数据为未来第3小时的预测水位。即rivert+3。

3.1.2 CS参数设置

利用CS对VMD参数进行优化,在CS启动前,需要对算法中的变量进行如下设置。

初始的参数组合数设置为50,由于需要优化的变量个数为2,因此,维度设为2,发现概率设为0.25。分解个数范围设为2~10,惩罚因子设为500~5 000,分解个数的步长设为1,惩罚因子的步长设为参数范围的5%,最大迭代数设为1 000。在CS的运行过程中,寻找使适应度值最小的参数组合。

3.2 基于CS的VMD参数设置

VMD主要有两个参数,包括分解个数k和惩罚因子α,为了比较不同参数的预测结果,选择了6组参数进行实验,模型的预见期选为3 h,为了关注预测的延迟问题,除了采用三种常用的评价指标外,还计算了每个模型产生的预测延迟时间,如表1所示,为不同VMD参数预测结果的比较。可以看出,不同的参数组合建立的模型的预测误差及预测延迟时间是不同的,效果最好的一组为α=500,k=6,效果最差的一组为α=1 500,k=6。下文对此进行单独的分析。

通过比较分解之后的时间序列的自相关程度,从而分析两组参数对预测的影响。如表2所示,为分解后的子序列与原序列的互相关系数,该系数绝对值越大,子序列对原序列的影响程度就越大。为了选择相关系数较大的序列,将阈值设为0.3,因此,选出前两个序列进行分析。如图5所示,为两组参数得到的分解序列的自相关性比较图。可见,组合2的自相关性小于组合1,所以,组合2的分解程度更高,但它的预测效果却很差。因此,并非分解程度越高越好,合适的分解程度才能解决预测延迟问题。为了寻找合适的分解参数,利用CS来初始化一系列参数,对VMD进行迭代寻优,优化得到的参数指导VMD对时间序列进行分解,经过实验得出,k=4、α=1 625时预测效果最好。因此,后续将统一设置为k=4、α=1 625。

表1 不同VMD参数设置下模型预测效果对比Table 1 Comparison of model prediction effects of different VMD parameter settings

表2 子序列与原序列的相关系数Table 2 Correlation coefficient between subsequences and original sequence

图5 子序列的自相关性比较Fig.5 Comparison of autocorrelation of subsequences

3.3 子序列的分解与预测

通过对时间序列进行分解,以削弱时间序列间的自相关。首先按上述得到的VMD参数对时间序列进行分解,如图6所示,为分解后的4个子序列按频率从低到高排列的结果,可见,分解能够将多个尺度的信息分离开。其次,基于LSTM和ELM神经网络为每个子序列建立了两种预测模型。它们的预测效果如表3所示。

表3 子序列的预测结果比较Table 3 Comparison of prediction results of subsequences

由表3的指标可以看出,对于序列1、序列2和序列4,基于ELM的神经网络预测结果具有更低的均方根误差、平均绝对误差和更高的确定性系数,而对于序列3,基于LSTM的神经网络预测表现较好,因此对于序列1、序列2以及序列4选择使用基于ELM的神经网络,对于序列3选择使用基于LSTM的神经网络,从而建立水文时间序列无延迟预测模型。

3.4 实验比较

图6 时间序列分解结果Fig.6 Time series decomposition results

为了验证所提出的CSVMD-LSTM-ELM无延迟模型在解决预测延迟问题的有效性,分别与VMD-LSTM-ELM和LSTM进行对比。不同模型的预测趋势对比如图7所示;不同模型的每个评价指标的结果如表4所示。可以看出,三种模型的预测趋势都与真实趋势类似,其中,LSTM模型可以实现有效的预测,但是它相对于真实趋势是落后的,且落后时间为3 h。结合VMD算法对时间序列分解之后,可以将时间序列不同尺度的信息分隔开,因此,VMD-LSTM-ELM模型降低了延迟时间,均方根误差降低了0.01,得到了更好地预测效果,但由于其模型的VMD参数不是最优的,并非完全消除了预测延迟。在其模型基础上利用CS对VMD参数进行寻优,建立的CSVMD-LSTM-ELM模型得到的预测结果在该数据集上几乎没有延迟,并将预测误差降低到0.026,其预测序列更加接近真实序列。因此,本文所提模型在解决预测延迟问题上取得了良好的效果。

图7 不同方法下的预测趋势比较Fig.7 Comparison of prediction trends of different methods

表4 不同方法下的预测评价指标比较Table 4 Comparison of prediction evaluation indexes under different methods

4 结论

针对水文时间序列预测的延迟问题,提出一种基于CSVMD-LSTM-ELM无延迟预测方法,采用秦淮河流域的数据集进行预测,得到以下结论。

(1)VMD算法对时间序列进行分解,可以去除时间序列连续值之间的高自相关性,减小预测的延迟时间。

(2)通过CS算法可以得到VMD参数的最优组合,有效解决了VMD参数选择困难的这一问题,进一步解决了“预测延迟”的现象,并具有较低的误差。

但本文仍有许多不足,单一的优化算法并不能同时兼顾寻优的准确性和效率,今后可以尝试使用多种优化算法结合进行提高。

猜你喜欢
水文神经网络误差
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
发展水文经济 增强水文活力
CBCT图像引导的放疗前后半程摆位误差分析
隧道横向贯通误差估算与应用
隧道横向贯通误差估算与应用
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
江西省水文文化建设的思考
精确与误差