贾 岛
(河南理工大学测绘与国土信息工程学院,河南 焦作 454000)
径流量是水文研究的重要内容之一,径流预测对于水资源管理、灾害监测及对水资源合理开发利用具有重要意义[1]。
目前,径流预测的水文模型主要有概念模型、物理模型和数据驱动模型。概念模型相对简单,所需参数少,计算量小,但模型容易欠拟合,预测失真;物理模型需要相对较多的参数,预测效果更好,但实际应用中,因过程复杂和所需数据众多具有一定的难度[2]。近年来,随着大数据的发展,水文数据和观测资料日益丰富,各种数据挖掘算法大量涌现,学科交叉性不断增强,故而数据驱动模型越来越受到重视[3]。
循环神经网络(Recurrent Neural Network, RNN)作为深度学习的一种,是一类以序列(sequence)数据为输入、在序列演进方向进行递归循环单元按链式连接的递归神经网络[4]。RNN神经网络对于处理时序数据具有很大的优势,但在处理长时间序列数据时模型会出现梯度消失和梯度爆炸问题。而长短期记忆网络(Long Short-Term Memory networks, LSTM )是RNN神经网络的发展,通过神经网络结构中的门机制解决了RNN 神经网络问题。与传统循环神经网络相比,LSTM神经网络解决了依赖问题,能够有效应用于长时间序列数据的建模,特定的记忆单元代替了 RNN 链式结构中的隐藏层节点,实现了对时间序列数据的保留和记忆[5],在基于时序数据预测研究中得到了广泛应用。
刘青豪[6]等在地表沉降时序预测中发现,LSTM神经网络模型对大区域时序形变的短期预测有效;岳振华[7]等在地表沉降中利用互相关,对地面沉降预测时间序列进行聚类,再进行LSTM循环神经网络预测,建立了具有较高精度的沉降预测模型。
采用LSTM神经网络进行黑河流域祁连水文站月径流预测,比较了不同输入数据对模型预测精度的影响,研究结果有望为黑河上游的水资源开发与保护、防洪抗旱、生产力合理规划、区域经济绿色可持续发展提供科学依据。
黑河流域地理坐标介于98°~101°30′E,38°~42°N,面积约为14.29万km2。黑河上游位于青藏高原北麓的祁连山地,属祁连山-青海湖气候区,降水多,蒸发少,气温低,流量年内变化汛期主要集中在4—9月份,占年流量的80%。近几十年来,黑河流域中下游地区人口增加,人类活动影响范围增大,且中下游用水急剧增加,故对上游径流量进行准确预测对整个流域区域水资源合理规划和利用具有重要的意义。图1为研究区域示意图。
图1 黑河上游示意图Fig.1 Sketch map of upstream of Heihe
所用数据为黑河上游祁连水文站2000—2016年月径流数据和降水数据,其中2000—2014年月数据作为训练数据集,2015年和2016年数据作为验证数据集。预处理过程中对数据进行质量控制,对数据进行归一化处理。
1.3.1 长短期记忆神经网络
相对于循环神经网络,LSTM单元结构更为复杂,包括遗忘门、输入门和输出门。神经单元结构如图2所示。
图2 LSTM神经单元结构Fig.2 LSTM neural unit structure
遗忘门通过Sigmoid激活函数(即σ),输入信息为上一个输出ht-1(隐含状态[3])和当前输入xt,获得一个0~1的输出向量ft。
ft=σ(Wf·[ht-1,xt]+bf)
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
神经元更新阶段,通过下列式子的计算,将上一次处理之后记忆的信息和当前处理阶段保留的信息进行运算,通过这一步,Ct处于变化中,随着神经网络的循环不停更新。
(4)
输出门:ot通过Sigmoid函数确定当前被输出的信息,并与tanh函数进行计算,获得最终输出结果ht。
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot*tanh(Ct)
(6)
训练过程中的损失函数采用常用的均方误差(Mean Squared Error)为:
(7)
采用三层LSTM神经网络层结构搭建LSTM预测模型,第三层LSTM神经网络层加入dropout,LSTM神经网络最后加入units为1的全连接层进行降维。学习步长设置为3,LSTM神经网络层的隐藏层units依次为128、64和32,激活函数采用Relu,优化器选择Adam。
1.3.2 模型评估
为验证模型预测效果,用Mean Squared Error(MSE)、MAE、MAP和确定系数Coefficient of Determination(R2)评估模型之间预测值和测量值之间的准确性。
均方误差Mean Squared Error (MSE)是估计值与真值之差平方的期望,MSE越小,预测结果与实测结果误差越小,均方误差公式与损失函数相同。
均方根误差Root Mean Squared Error(RMSE)是均方误差的算数平方根,通过RMSE反映模型预测和测量数据之间的信息,且RMSE数值越小,预测精度越高,公式如下:
(8)
平均绝对误差Mean Absolute Error(MAE)是绝对误差的平均值,公式如下:
(9)
平均绝对百分误差Mean Absolute Error Percentage Error(MAPE):
(10)
R2为衡量模型复制结果的程度(数值上与纳什系数NSE相同[3]),范围在[-∞,1],值越大模型效果越好。R2公式如下:
(11)
使用TensorFlow和Theano包、Sequential类,搭建神经网络模型,对时间序列径流数据进行预测。模型训练过程中,时间步长为3,根据损失函数,程序采用早停法和神经网络学习经验确定训练次数。
LSTM预测结果与实测数据均具有较好的相关性,但在5—9月份时预测精度低于其他月份。由于黑河上游属于中纬度北温带,全年降水主要集中在5—9月份,期间径流波动范围较大,随机性强,基于时序历史径流数据进行建模预测时,精度有所下降,当同时引入径流和降雨数据时,预测精度大大提高。
表1为基于径流和降水数据的LSTM神经网络2015—2016年径流预测结果各参数对比,其中样本数据为2000—2014年的降水、径流数据,标签数据均为2000—2014年径流数据。
表1 径流预测结果Tab.1 Runoff prediction results
分析表1可知,LSTM神经网络模型基于径流数据进行预测,Dropout=0.2取得最优预测结果,RMSE、MAE、MAPE和R2结果分别为140.07、75.01、0.20和0.871。引入降水数据后,预测精度明显提高,在Dropout=0.05时,RMSE、MAE、MAPE和R2结果分别为110.54、70.72、0.19和0.919。训练样本为降水数据时,与径流数据和径流、降水数据为样本进行训练的模型相比,MAPE均相对较大,预测值与实测值偏差在30%左右,模型拟合效果较差;训练数据样本为径流数据和径流、降水数据时,MAPE在20%左右。
选择LSTM对黑河上游祁连水文站月径流进行了预测,单独以降水或历史径流作为输入特征,神经网络模型取得了较好的预测效果,确定系数均能达到0.86以上。
分析平均绝对百分比误差MAPE,单独以降水数据进行预测,LSTM和全连接LSTM预测结果R2和RMSE精度相当,但相对于径流数据的预测结果,MAPE更大。基于径流数据或以径流、降水数据进行预测,MAPE均在0.2左右,两种模型预测精度更高,模型拥有更好的拟合精度,模型误差更小。LSTM神经网络以径流和降水进行预测,预测精度进一步提高。降水作为径流的重要因子,进一步提升了LSTM神经网络径流预测的精度。该研究结果与胡庆芳等[3]利用LSTM进行安康站日径流预测时引入降水数据且预测精度提升相符。