吕海峰 冀肖榆 丁勇
摘要:
准确的水位和水量等水文时间序列预测是水资源管理的重要依据。受上游支流流量、水位等因素影响,传统的单因素水位预测模型不能有效考虑众多因素,水位预测精度面临严峻挑战。以典型西江干线梧州站水位精准预测为研究对象,建立了基于splice-LSTM的多因素水位预测模型,采用拼接的长短期记忆网络(LSTM)和全连接线性模型(Linear),对2020~2021年西江干线多站点的流量数据进行分析,预测梧州站点的水位。研究结果表明:① 由于splice-LSTM中引入了非线性层,提高了近期历史输入数据的权重,使得模型预测值更加接近历史真实值,降低了预测误差,Linear部分可以提高模型对于线性成分的敏感性,使得模型在水位峰值处的预测更加准确;② splice-LSTM模型与传统单因素的ARIMA模型、LSTM模型相比,在水位预测方面准确度分别提升14.4%,10.1%。研究成果可为西江船闸运行调度中心精准预调度船舶提供参考。
关 键 词:
水位预测; 船闸调度; splice-LSTM模型; 西江流域
中图法分类号: TV698.1
文献标志码: A
DOI:10.16232/j.cnki.1001-4179.2023.07.012
0 引 言
精准的水位预测对于江河流域安全及水资源的合理调度具有重要意义。考虑到江河水位存在波动性、季节性等众多特点,且影响水位的因素较多,如各个上游支流的流量、潮汐和降雨量等,多因素作用使得水位规律难以预判,水位精准预测的难度大大提升。随着大数据、人工智能等技术的快速发展,对于水位长时段预测问题,国内外众多水文学者利用机器学习、数据挖掘以及深度学习方法[1-2],研究改进现有水位预测方法和模型,提出了一系列可行的预测模型。对于该领域,学者们主要从两方面进行研究:一方面是水位预测模型构建的时间序列、机器学习、深度学习算法;另一方面是用于提升模型泛化能力的特征抽取算法及模型,且在水位预测方面,学者们的研究方法主要侧重于传统的单因素时间序列处理,即只考虑将水位作为输入变量。目前,国内外主要基于以下几种时间序列学习算法进行水位预测领域的模型研究。
一种是应用十分广泛的时间序列预测模型——基于差分自回归移动平均模型(Autoregressive Integrated Moving Average model,ARIMA)[3]時间序列的水位预测。其核心为非平稳时间序列向平稳时间序列转变,接着以因变量对其误差随机项和滞后值建立回归模型。King等[4]在2017年提出改进的ARIMA模型,以预测美国新墨西哥州海洛因水库月流量,Pearson系数高达0.968。余珍[5]在2018年采用ARIMA模型对汉口、监利、安庆站历史水位时间序列进行预测分析,逐日平均水位的预测与观测值拟合程度较高,但是汛期水位频繁剧烈的波动在一定程度上会降低预测精度。
另一种是基于神经网络模型的水位预测。常用的神经网络水位预测模型包括:递归神经网络(Recurrent Neural Networks,RNN)、卷积神经网络(Convolutional Neural Networks,CNN)和人工神经网络(Artificial Neural Networks,ANN)。其中ANN也被称为前馈神经网络,一般由输入层、隐藏层和输出层构成,是一个多数神经元互相连接构成且具有适应性的运算模型。每一层由多个激活函数组成的神经元构成,神经元间的连接包括对当前信号输出的权重。ANN可以学习非线性函数,但容易丢失空间特征。Deo等[6]在2017年利用ANN构建了澳大利亚新南威尔士州达令河月平均水位预测模型,预测效果较好,均方根误差(RMSE)约为0.49 m。许国艳等[7]将CNN应用于水位时间序列模型的预测,取得了RMSE为0.028、预报准确率为91%的理想预测结果。刘青松等[8]在2020年提出基于AR-RNN多变量模型,对四川省清溪河流域的水位进行预测,实现了较低相对误差的预测效果。LSTM[9]是RNN的一个变种,它通过增加门控机制来缓解RNN梯度消失或爆炸的问题,门控的值可以决定信息的丢失或保留,使得LSTM可以真正有效地学习长距离的时序信息。目前基于LSTM 模型的时间序列预测已经得到广泛应用,如冯锐[10]在2019年基于LSTM模型构建九龙江流域单站点水位预测模型及三水位站联动预测模型,对长江沿线水位进行预测,取得较好的效果。LSTM遗忘门结构能够保留或丢失过去的顺序信息,用来预测时间序列数据较为合适。因此,本文采用Kulisz等[11]提出的扩展多个隐藏层的LSTM结构,根据历史数据来进行水位预测研究。
尽管基于数据驱动的神经网络,尤其是RNN模型的水位预测模型取得了较好效果。然而水位预测并不是与所有输入数据呈现正相关,不相关的数据容易成为影响水位预测的干扰因素。由此可见,基于纯数据驱动的水位预测存在下列局限:① 水位受上游支流、周边雨量、潮汐等因素的影响,这些长期的历史数据驱动模型难以保存,导致预测达不到预期效果;② 数据驱动模型预测效果随着预测步长增加而急剧降低。
鉴于上述模型存在的不足,本文在传统的单因素水位预测基础之上,以西江流域梧州站水位预测为例,引入上游支流的流量、水位等多因素进行水位预测,提出了一种基于splice-LSTM的多因素水位预测模型,并根据实验确定较优预测时间间隔,利用均方根误差(RMSE)、Pearson相关系数平方(R2)和Nash-Sutcliffe 效率系数(NSE)等评价指标确定较优模型参数。
1 研究区域与方法
1.1 研究区概况
西江,古称郁水、浪水和牂牁江,是珠江干流,东连粤港澳,西接云贵,贯穿广西[12]。发源地为云南省曲靖市乌蒙山余脉马雄山东麓,贯穿粤、桂、黔、滇等4个省(区),至广东省三水思贤滘与北江、东江汇集,融汇珠江三角洲多条河,经过磨刀门流入南海。珠江-西江流域径流量和水运量处在全国第2位,仅次于长江。2014年珠江-西江经济带发展规划的批复标志着西江黄金水道上升为国家战略。西江干流在广西境内的内河航道以梧州为总汇,梧州是西江黄金水道的龙头城市,也是西江水情、航运数据的主要测量点和汇聚点。
西江全流域有600多个水文站监测实时数据(流量、水位),部分水文站位置如图1所示。本次研究以缓解西江船舶[13]滞航的问题为目的,预测船舶在枯水期及汛期适合通航的水位点。对西江流域梧州站点水位数据进行采集后,构建基于splice-LSTM的水位预测模型进行梧州站单站点的水位预测。为更好地保障船舶正常安全通航,应设计更为精准的水位预测方法。
1.2 评价指标与原始数据
1.2.1 评价指标
为了检验模型有效性,本文利用西江干线梧州站点2020~2021年的流量和水位数据进行实验。模型评价指标选取Pearson相关系数平方R2、均方根误差RMSE和Nash-Sutcliffe效率系数NSE[14]进行衡量。
1.3 数据预处理
考虑到有些传感器不能正常工作,原始数据里可能存在异常值和缺失值。假如把带有异常或缺失值的原始数据作为模型输入,可能会降低模型的拟合效果。实验中对异常值和缺失值的处理均采用插补法进行填充,具体做法是对缺失值或者异常值所处的时刻t最近n个时刻数据(xt-n,xt-n+1,…,xt-1)求均值填充。考虑到处理后的数据不同因素的单位不一样(比如单位为m3 /s的流量,单位为m的水位),数据的大小也不一致,需要将各个因素的值进行归一化处理[15]。归一化后的数据有助于模型更好发现每个因素之间的联系,提高模型训练的收敛速度,减少模型的训练时间。归一化数据的表达式如下。
x*=x-xminxmax-xmin(4)
式中:xmax表示输入数据的最大值;xmin表示输入数据的最小值。归一化后每个样本数据的范围在[0,1]之间,每个因素的趋势如图3所示。
1.4 研究方法
一个有效的对多因素进行建模的水位预测模型,对提升水位预测效果至关重要[16]。考虑到水位的长短期模式,图4展示了基于splice-LSTM的多因素水位预测模型的框架。
1.4.1 模型原理
由模型框架图可知,splice-LSTM模型由输入层、LSTM层、全连接层和输出层构成,除了全连接层数为2之外,其余层数均为1。预测的输入由当前预测时间节点t+i往前推t时刻的历史输入数据x1,x2,…,xt在基于LSTM层的非线性单元和全连接层的线性单元共同决定。该架构不仅能有效解决水文序列间复杂非线性依赖的问题,而且能够大大降低非线性层带来的线性元素敏感性。其具体步骤为:
① 首先,将由当前预测时间节点t+i往前推t时刻的历史输入数据x1,x2,…,xt作为输入层。其中t表示神经单元步长,即当前预测值依赖前t个时刻的输入,i表示预测间隔,即预测未来第i个时刻的水位值。
② 然后,为了提高近期历史输入数据的权重,降低预测误差,LSTM层对不同时刻的输入分别编码t次,并对每一次最后时刻的状态进行拼接,分别得到t个维度为[(batch_size,t,1),(batch_size,t-1,1),…,(batch_size,1,1)]的隐藏状态,对这t个隐藏状态按dim=1进行拼接,以图4所示中的表示。
③ 接着将LSTM层的输出结果(batch_size,1+2+…+t,1)经过降维后输入至由两个线性函数FFN1和FFN2组成的全连接层,得到预测当前时刻水位预测值,输出维度为(batch_size,1)。
下面简单阐述非线性层的LSTM网络结构。
LSTM在RNN结构上有遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate)3个门控机制,互相连接的具体结构如图5所示。经过设置神经网络的记忆单元和别的连接末尾处的系数控制信息流的细胞单元(Memory cell)、输出和输入状态。
在当前时刻t,由多个神经元组成输入数据xt;在前一时刻t-1,隐状态ht-1包含多个神经元;xt先后经过遗忘门、输入门和输出门。
遗忘门:控制上一时刻记忆单元的信息是否保留到当前时刻记忆单元,记为ft,公式如下。
ft=σWfxt+Ufht-1+bf(5)
式中:Wf和Uf分别为当前t时刻输入数据xt和前一时刻t-1隐状态ht-1相关权重系数;bf为偏置项;σ为sigmoid激活函数。
输入门:决定当前時刻输入信息能否进入记忆单元的过程称为输入门,记为it。输入数据与输入门两类特征源的混合的来源公式如下。
it=σWixt+Uiht-1+bi(6)
Ct~=tanhWcxt+Ucht-1+bc(7)
式中:Wi,Ui,Wc和Uc分别表示其对应门控的循环连接权值;tanh为双曲正切激活函数;Ct~为t时刻临时的cell,它来源于当前的输入xt及上一时刻的隐状态ht-1;bc为偏置项。xt和ht-1都有对应的权重,通过一个非线性tanh函数,得到一个[-1,1]之间的数值向量。
神经元细胞状态即cell单元,具有重置、读取、保存及更新LSTM单元长距离依赖关系的功能,以ct表示。通过变量ft,it,Ct~组合成公式(8),ct是通过遗忘门和输入门来进行控制的。遗忘门ft控制之前需遗忘多少,则输入门cell控制当前临时cell有多少要存储到这条主线上。
ct=ftct-1itCt~(8)
式中:表示矩阵点积运算,表示矩阵点和运算。
输出门:决定当前时刻内存细胞单元能否进入当前隐藏状态ht,用ot表示,公式为
ot=σWoxt+Uoht-1+bo(9)
式中:Wo,Uo分别为当前t时刻输入数据xt和前一时刻t-1隐状态ht-1相关权重系数;bo为偏置项。最后当前cell信息经过一个非线性tanh函数得到[-1,1]的向量,将该向量与输出门相乘,就得到了最终当前t时刻的隐状态输出ht,公式为
ht=ottanh(ct)(10)
隐藏层cell结构如图6所示。
神经网络LSTM模型训练流程包括:把时刻t的嵌入特征送至输入层,通过sigmoid激活函数获取输出;再把时刻t-1细胞单元保存的数据、t-1时刻的隐藏层输出和激活函数输出输入LSTM神经元,经过上述3个门控机制及细胞单元的计算,输出结果到输出层或下一个隐藏层,将LSTM神经元结果传递到输出层神经元,接着通过输入数据真实值与输出层的预测值计算反向传播误差,以此来更新每一个权重参数。有了这种门控机制,模型不用记忆过去所有的信息,只用记住它认为有用的信息,同时有用的信息可以直接传递到后续记忆单元,缓解了模型训练过程中的梯度消失与梯度爆炸问题。
splice-LSTM与传统LSTM模型相比,对输入层不同时刻的历史输入数据进行多次编码,并对编码结果进行拼接作为下一全连接层的输入。一方面提高了近期历史输入数据对计算下一时刻水位值的贡献度;另一方面编码多次进行拼接,增加了模型LSTM层的权重参数,使得模型能够捕获更多的特征,从而使得模型具有更好的学习能力和预测效果。
1.4.2 模型的输入与输出
splice-LSTM模型可接收多因素(多个上游支流流量及待预测站点的流量及水位)的输入,输出单因素的水位预测结果。本文以西江流域梧州站点水位预测为对象,以上游支流对应站点长洲、京南、大藤峡、桂平等站点的流量和梧州站点水位历史值为输入,梧州站点未来第i个时刻水位的预测值为输出。此外多因素输入还包括长短期记忆网络LSTM的神经单元步长t和预测间隔i。本文采用西江流域京南、长洲、大藤峡、桂平站点的小时出库流量以及梧州站点小时水位数据进行预测。现阶段的模型暂时没有考虑降雨影响因子,主要原因是未能有效采集降雨量数据,下一步将研究如何获取降雨量数据优化模型。尽管没有降雨的数据,但在遇到降雨天气时模型表现尚可,因为发生区间降雨时,当地站点的实时流量会如实反映,对目标站点的水位预测也会随之产生变化。本文提出的splice-LSTM预测模型中使用单元步长大小为30,预测时间间隔为12 h,即用过去30 h的各站点流量、梧州站点水位值来预测未来第12个小时梧州站点的水位值。这两个数值并非一成不变,而是可调整的超参数。一般情况下,预见期越短,预测精度越高,但不能一味追求过高的预测精度选择最小的预见期,这样的预测对于航运的指导意义不大,但也不能把预见期一味调高,否则将会导致预测精度急剧下降,预测的指导意义也不大。此外,尽管梧州站点时间距离较远的京南站点有10 h,但对预测模型而言,只需要接收相同时刻的输入数据,时间的延迟和数据平滑可通过模型在训练过程中学习,不需要人为干预。因此本文通过实验采用较合理的12 h预见期,同时根据西江开发投资集团有限公司船闸管理部相关专家的建议,在枯水期12 h预见期能够满足一般的航运需求。
1.4.3 模型训练
由于本文的预测模型是基于深度神经网络进行构建,故可运用Keras、Pytorch和Tensorflow等主流的深度学习框架进行构建。本次实验使用Linux操作系统Ubuntu20.04,Python版本为3.6.5,keras 2.2.4 以及Tensorflow 1.4.1版本深度学习框架构建和训练所提出的基于splice-LSTM多因素水位预测模型。开发者只需将定义好的网络结构进行组合,调用Keras框架提供的损失函数、激活函数及優化器,输入训练数据,调用其训练接口完成训练。为了进一步提升模型最终预测效果,模型的超参数设置也是至关重要的,比如LSTM隐藏层数、网络神经元大小、学习率learning rate、损失函数loss等参数设置。splice-LSTM模型的超参数设置如表3所列。
模型的隐藏层是由30个单向单层且神经元数量等于1的 LSTM网络组成,以提高模型预测效果,降低预测误差。
2 结果分析
2.1 预测值与实际值对比
为了验证模型的预测效果,本文对2021年12月1日24 h水位进行样本预测(见表4),这里的预测间隔设置为12 h,即分别预测两次12 h的水位值进行汇总。从表4预测结果可知,预测值与实际值不管是绝对误差,还是相对误差,均比较小,平均相对误差仅为2.06%,最大相对误差为4.00%,最大绝对误差仅为0.113 2 m,预测效果对西江船闸运行调度中心精准预调度船舶具有重要指导价值。目前,梧州站水位预测实际预报精度基本保持在90%左右,基本达到实用精度,个别时刻预测误差超过10%,一般是由于站点根据发电计划进行发电放水导致的预测误差较大。
2.2 splice-LSTM与其他模型比较
为了提高所提出模型性能说服力,实验将80%原始数据集作为训练集,20%作为测试集,对比单因素ARIMA 模型、传统单因素LSTM模型、传统多因素LSTM模型与多因素splice-LSTM模型实验结果。单因素模型是只考虑因变量数据的时间序列预测模型,是根据历史一段时间内的因变量数据预测未来n个时刻的趋势,无须考虑其他相关影响因子,尽管在较长预见期下预测效果不理想,但仍然可以作为时间序列预测问题的基线,具有典型的参考意义。对比模型在测试集上的表现如表5所列,其中预测间隔为12 h。从表5可知,多因素splice-LSTM 模型分别比ARIMA、传统单因素LSTM、多因素LSTM模型的NSE提升0.147,0.113和0.050。在评价指标R2中,splice-LSTM 分别比ARIMA、传统单因素LSTM、多因素LSTM模型提升0.144,0.1010和0.049。在评价指标RMSE中,splice-LSTM 模型分别比ARIMA、传统单因素LSTM、多因素LSTM降低了41.3%,24.5%,14.3%。
实验结果表明,多因素splice-LSTM 水位预测模型的记忆遗忘能力能够较好预测非线性时间序列数据,对西江干线水位的预测效果较好。每个模型在测试集数据的拟合情况如图7所示。
2.3 splice-LSTM模型在不同预测间隔测试集上的表现
理论上预测间隔越小,预测水位值就越精准,但不能为了追求高精准率选择最小预测间隔,而忽略实际指导意义。为了确定所提出模型的较优预测间隔,本文对多个不同预测间隔在测试集上进行验证,测试结果如表6所列。
从表6可知,尽管预测间隔为6 h的表现最优,但预测间隔为12 h的精度与6 h的差异不大,考虑到水位预测的实际指导价值,在效果下降不明显的情况下,越长预测间隔,越具备竞争力和指导价值,因此,最终选择较优预测间隔为12 h。
3 结 论
本文在传统的单因素水位预测模型的基础上,提出了一种基于splice-LSTM的多因素水位预测模型,并将其运用在西江干线梧州站的水位预测中,通过对比其他模型的水位预测效果,验证了基于splice-LSTM的模型具有更高的预测精度。
(1) 传统的单因素预测模型,如ARIMA模型和传统LSTM只考虑历史水位的因素,仅仅能够预测水位值的一般趋势。splice-LSTM模型则考虑了影响水位的因素,例如上游支流的流量和历史的水位,在细微处的预测效果明显比上述的单因素模型好,且模型的泛化能力更强。
(2) 相对于传统多因素LSTM模型,splice-LSTM模型通过堆叠多个LSTM模型,增加近期历史输入数据的权重,使得模型预测更加接近历史真实值,降低了预测误差。准确预测西江河流水位水量,对西江船闸运行调度中心精准预调度船舶具有重要意义。
参考文献:
[1] 武连洲,白涛,哈燕萍,等.水文序列变异对水库调度运行的影响研究[J].水资源与水工程学报,2016,27(4):88-92.
[2] 刘晓阳,姚华明,张海荣,等.基于机器学习的三峡水库小时尺度坝前水位预测[J].人民长江,2023,54(2):147-151.
[3] 次必聪,张品一.基于ARIMA-LSTM模型的金融时间序列预测[J].统计与决策,2022,38(11):145-149.
[4] SABZI H Z,KING J P,ABUDU S.Developing an intelligent expert system for streamflow prediction,integrated in a dynamic decision support system for managing multiple reservoirs:a case study[J].Expert Systems with Applications,2017,83:145-163.
[5] 余珍.基于时间序列分析的航道水位预测研宄[J].中国水运(月),2018,18(10):148-150.
[6] DEO R C,KISI O,SINGH V P.Drought forecasting in eastern Australia using multivariate adaptive regression spline,least square support vector machine and M5Tree model[J].Atmospheric Research,2017,184:149-175.
[7] 许国艳,朱进,司存友,等.基于CNN和MC的水文时间序列预测组合模型[J].计算机与现代化,2019(11):23-28,33.
[8] 刘青松,严华,卢文龙.基于AR-RNN的多变量水位预测模型研究[J].人民长江,2020,51(10):94-99.
[9] 徐杨,刘亚新,汪涛,等.基于LSTM的三峽水库短期上游水位预测方法研究[J].水利水电快报,2022,43(10):13-18.
[10] 冯锐.基于LSTM模型的九龙江流域径流序列预测研究[D].西安:长安大学,2019.
[11] KULISZ M,KUJAWSKA J,PRZYSUCHA B,et al.Forecasting water quality index in groundwater using Artificial Neural Network[J].Energies,2021,14(18):1-16.
[12] 刘兴坡,陈翔,胡小婷,等.基于正交极差分析的青龙河流域 HSPF模型参数寻优模式[J].哈尔滨工业大学学报,2018,50(2):131-138.
[13] 张冬梅,李金平,李江,等.基于门控权重单元的多变量时间序列预测[J].湖南大学学报(自然科学版),2021,48(10):105-112.
[14] 李冠城,侯敏驰,李梓君,等.珠江流域“十三五”水污染防治成效与经验[J].环境保护,2021,49(19):9-13.
[15] 国家市场监督管理总局,中国国家标准化管理委员会.内河过闸运输船舶标准船型主尺度系列第3部分:西江航运干线GB 38030.3-2019[S].北京:中国标准出版社,2019.
[16] 王萍,程冰,孙金领.基于ARIMA的新城疫风险预测模型[J].青岛农业大学学报(自然科学版),2016,33(1):68-71.
(编辑:谢玲娴)
Research on Xijiang River water level prediction model of multi-factor based on splice-LSTM
LYU Haifeng1,2,JI Xiaoyu1,2,DING Yong3
(1.Guangxi Key Laboratory of Machine Vision and Intelligent Control,Wuzhou University,Wuzhou 543002,China; 2.Guangxi Colleges and Universities Key Laboratory of Industry Software Technology,Wuzhou University,Wuzhou 543002,China; 3.School of Computer Science and Information Security,Guilin University of Electronic Technology,Guilin 541004 China)
Abstract:
Accurate hydrologic time series prediction of water level and water volume is an important basis for water resources management and plays an important role in water transfer detection.Affected by factors such as the flow and water level of upstream tributaries,traditional single-factor water level prediction models cannot effectively consider these factors and water level prediction of Xijiang River faces severe challenges.Taking the typical Wuzhou Station on Xijiang River mainstream as the research object,a multi-factor water level prediction model based on splice-LSTM is established.The spliced Long Short-term Memory network(LSTM) and the fully connected linear model(Linear) were used to analyze and predict the flow and water level of the Xijiang River mainstream like Wuzhou station and other stations from 2020 to 2021.Research results show that:①The splice-LSTM can link to a non-linear layer and thus increase the weight of recent historical input data,making the model prediction closer to the historical value and reducing the prediction error.The linear part can improve the sensitivity of the model to linear components and the model to linear components,making the model′s prediction at the water level peak more accurate.②Compared with the traditional single factor ARIMA model and LSTM model,the accuracy of the split-LSTM model in water level prediction has increased by 14.4% and 10.1% respectively.The research results can provide a scientific reference for the precise pre-scheduling of ships by the Xijiang Shiplock Operation and Dispatching Center.
Key words:
water level prediction;shiplock dispatching;splice-LSTM model;Xijiang River basin