2. 河北省水资源可持续利用与开发重点实验室, 石家庄 050031;
3. 河北省水资源可持续利用与产业结构化协同创新中心, 石家庄 050031;
4. 河北省地质资源环境监测与保护重点实验室(筹), 石家庄 050031;
5. 沈阳环境科学研究院, 沈阳 110167
2. Key Laboratory of Sustained Utilization&Development of Water Resources, Hebei Province, Shijiazhuang 050031, China;
3. Collaborative Innovation Center for Sustainable Utilization of Water Resources and Optimization of Industrial Structure, Hebei Province, Shijiazhuang 050031, China;
4. Key Laboratory of Geological Resources and Environment Monitoring and Protection, Hebei Province, Shijiazhuang 050031, China;
5. Shenyang Academy of Environmental Sciences, Shenyang 110167, China
0 引言
地下水位作为区域水资源管理的重要依据,对水资源的合理开发及可持续利用有着重要意义;但由于受一系列自然条件与人为活动影响,地下水水位在时间序列上呈现出高度的随机性与滞后性。随着生态文明建设的推进,探索出简单有效的地下水位预测方法迫在眉睫。传统的地下水水位的预测方法往往采用简单的线性函数描述其动态变化特征,忽略了外部条件的影响,结果往往不尽人意。随着科学技术的发展,地下水水位预测方法逐渐完善,一些学者将一些非线性算法、模型应用于地下水水位预测研究:刘博等[1]利用SOM-RBFN模型对吉林市地下水位进行预测,预测结果较为理想;马新双等[2]采用前馈神经网络模型对北方浅层地下水水位情况进行预测,获得了较高预测精度;周振民等[3]将灰色模型(grey model,GM(1, 1))应用到滦河下游地区地下水位预测中,结果表明该模型预测精度较高,对地下水的合理开发利用具有一定的实用价值。但这些模型的建立往往需要大量高质量的数据作为支撑且调参较为复杂,故利用率较低。同时,时间序列模型也被广泛应用于地下水水位预测:Ahn[4]、陈汉军等[5]将时间序列模型用于地下水水位估算中,均得到了较为理想的结果;张展羽等[6]建立主成分-时间序列模型对济南市陡沟灌区地下水水位进行预测,结果表明,其预测精度要高于逐步回归模型与BP神经网络模型。但是由于传统时间序列模型过于突出时间序列,忽略了外部条件影响,当遇到外界因素发生较大变化时往往会产生较大偏差,因此有较大的预测缺陷。
近些年,随着深度学习技术的高速发展,深度学习模型逐渐被应用于时间序列数据的研究中。其中,循环神经网络(recurrent neural network,RNN)将时间序列引入神经网络中,使模型在时序数据分析上表现出更强的适应性。但基于结构特点,循环神经网络仍存在一些问题,其中较为严重的是容易出现梯度消失或者梯度爆炸的问题,即时间过长而造成记忆值较小的现象。在众多循环神经网络变体中,长短期记忆(long short-term memory,LSTM)神经网络通过遗忘门(forget gate)和更新门(update gate)来调控梯度,将反向传播累乘作用变成累加作用,解决了梯度消失或爆炸的问题,使得循环神经网络能够更加有效地处理分析长距离时序信息。LSTM神经网络在不同领域的时序数据处理分析方面已有较为成功的案例,Yuting等[7]将LSTM神经网络应用于海平面温度的预测、Tax等[8]将其用于业务流程监控的预测均取得了不错的结果。因此,为克服传统时间序列模型过于突出时间序列的缺陷,同时考虑外部条件对地下水水位的影响,本文将LSTM神经网络应用于地下水水位预测研究,并引入多个影响变量,以期获得合理有效的预测结果。
1 研究方法及相关理论 1.1 RNN循环神经网络对于传统神经网络而言,从输入层到隐含层,再到输出层,层与层之间为全连接,但是每层之间的节点却是无连接的;因此传统神经网络在处理序列数据时,结果往往有很大的偏差。不同于传统神经网络,RNN循环神经网络会对之前的信息进行记忆并将其应用到当前的输出计算中,即隐含层之间的节点为连接的,并且隐含层的输入包括输入层的输出与上一时刻隐含层的输出。令x为输入单元,s为隐含层单元,o为输出单元,L*为损失函数,y为训练集标签,t为时刻,V、W、U分为单元共享权重系数矩阵,则RNN前向输出如图 1所示。
故对于时刻t,隐含状态为
式中:f为激活函数(比如tanh函数);xt为t时刻输入;bs为隐含层单元偏置向量,b为偏置向量,下标为对应单元。
输出量为
式中,soft max为归一化指数函数。
损失函数为
基于处理时序数据的特点,RNN常见训练方法为BPTT(back-propagation through time)算法,即梯度下降法,其特点为沿需要优化参数(V、W、U)的负梯度方向不断寻找更优的点直至收敛。但在寻优过程中,求解某时刻参数的偏导需追溯该时刻之前所有时刻的信息,整体偏导函数为所有时刻的累加; 嵌套激活函数后,部分累乘会导致激活函数(tanh或sigmoid函数)导数的累乘,进而导致“梯度消失”或“梯度爆炸”。[9]。
1.2 多变量LSTM神经网络模型为解决RNN“梯度消失”或“梯度爆炸”的问题,Hochreiter等[10]于1997年提出了LSTM,通过门控制将短期与长期记忆结合起来,从而在一定程度上解决了上述问题。令Γf、Γi、c、Γo、
LSTM网络通过3个“门”来实现信息的保护和控制:
1) 遗忘门,决定单元ct-1需要丢弃或保留什么信息,通过读取ht-1与xt,输出[0, 1]赋值给ct-1,其中“1”表示完全保留,“0”表示完全丢弃。遗忘门输出为
2) 输入门,决定着让多少信息加入到单元中,通过sigmoid的信息决定与tanh的信息生成,结合遗忘门联合对单元状态进行更新。输入门步骤为:
3) 输出门,决定着当前单元状态哪一部分信息被输出,依然通过sigmoid与tanh完成。输出门步骤[11]为:
基于时间序列数据特点以及循环神经网络从简设计的原则,多变量LSTM预测模型框架如图 3所示,该框架大致可分为输入层、隐含层、模型训练、输出层4个部分,其中X=[X1, X2, …,XL]为实际输入,P=[P1, P2, …,PL]为实际输出。各模块功能如下。
输入层:对原始变量时间序列集进行分割、标准化处理,以满足网络输入要求。
隐含层:采用图 2所示的LSTM单元结构对参数进行权重更新、优化。
输出层:输出预测结果、反标准化处理、验证误差。
模型训练:模型采用Adam优化算法[12-13]进行网络权重更新,步骤为:
1) 初始化参数向量θ0、一阶矩向量λ0=0、二阶矩向量v0=0、时间步t=0。
2) 当参数θ没有收敛时,令t=t+1,循环迭代更新各部分。
3) 更新随机目标函数在时间t上对参数θ所求梯度:
式中:gt为时间t上的目标函数梯度;▽θ为关于θ的偏导;ft(θt-1)为时间t-1上的随机目标函数。更新偏差的一阶矩估计λt和二阶原始矩估计vt:
式中,β1、β2为指数衰减速率。
4) 计算偏差修正的一阶矩估计
5) 更新模型参数θ:
式中:α为步长;ε为常数。
2 研究区概况与数据来源 2.1 研究区概况泰安市位于山东省中部,地处116°04′E—118°00′E,35°38′N—36°29′N,总面积7 762 km2。年平均气温12.8 ℃,多年平均降水量为680 mm,多集中在6—9月,占全年降水量的75%,多年平均蒸发量1 813 mm,属暖温带半湿润季风气候。境内水系主要属大汶河水系和淮河水系,地形东高西低,为侵蚀或剥蚀构造地形,海拔37.5~1 532.0 m,受地形地貌影响,东部降水多于西部,山区降水量多于平原,总趋势为自东北向西南逐渐减少。区内地下水类型以裸露岩溶孔洞水为主,含水层厚度为70.0~80.0 m,富水性强,单井涌水量达1 000~5 000 m3/d。
2.2 研究数据来源本研究所选长观井为泰安市岱岳区的J1号井,分析该井地下水位主要受气象因素和人工开采影响,因此选取2001—2016年逐月平均地下水位观测数据和该地蒸发量、降雨量、气温、气压、相对湿度、日照时长等6项气象数据,以及人工开采量数据[14-15],共192组时序数据作为研究数据。气象数据则根据中国气象局地面气候资料泰安气象站(站号54827)日值数据集统计而来,其中2007年7—12月地下水水位监测数据有缺失情况,为模型训练需要,取每年该月平均值进行填补,历年地下水位变化如图 4所示,地下水开采量见表 1。
m3/d | |||||||||||||||||||||||||||||
年份 | 日均开采量 | ||||||||||||||||||||||||||||
2001 | 180.50 | ||||||||||||||||||||||||||||
2002 | 159.78 | ||||||||||||||||||||||||||||
2003 | 202.98 | ||||||||||||||||||||||||||||
2004 | 190.34 | ||||||||||||||||||||||||||||
2005 | 180.45 | ||||||||||||||||||||||||||||
2006 | 151.33 | ||||||||||||||||||||||||||||
2007 | 180.05 | ||||||||||||||||||||||||||||
2008 | 172.88 | ||||||||||||||||||||||||||||
2009 | 174.84 | ||||||||||||||||||||||||||||
2010 | 186.44 | ||||||||||||||||||||||||||||
2011 | 176.63 | ||||||||||||||||||||||||||||
2012 | 161.24 | ||||||||||||||||||||||||||||
2013 | 152.00 | ||||||||||||||||||||||||||||
2014 | 152.96 | ||||||||||||||||||||||||||||
2015 | 149.26 | ||||||||||||||||||||||||||||
2016 | 135.03 |
为构建基于多变量LSTM神经网络的地下水水位预测模型,选取2001—2013年数据作为模型训练集,2014年数据作为测试集,2015—2016年数据作为预测集,以地下水位、蒸发量、降雨量、气温、气压、相对湿度、日照时长、开采量作为模型变量输入,以测试集的均方根误差(root mean squared error,RMSE)作为模型训练预测精度评价指标。
为消除量纲及数量级的影响,提高模型预测精度,加快模型训练收敛速度,本文采用以下方法对原始变量时序集进行标准化处理,公式可表示为
式中:x*表示标准化后的值;x表示标准化前的值;x表示原始数据集每个变量的平均值;xδ表示原始数据集中每个变量的标准差。以地下水月均开采量为例,选取该变量时序数据中平均值为5 075.081 3,标准差为545.193 2,计算得到地下水月均开采量标准化后数值(表 2)。
年份 | 标准化后数值 |
2001 | 0.623 5 |
2002 | -0.516 7 |
2003 | 1.860 5 |
2004 | 1.164 9 |
2005 | 0.620 7 |
2006 | -0.981 6 |
2007 | 0.598 7 |
2008 | 0.204 2 |
2009 | 0.312 0 |
2010 | 0.950 3 |
2011 | 0.410 5 |
2012 | -0.436 3 |
2013 | -0.944 8 |
2014 | -0.891 9 |
2015 | -1.095 5 |
2016 | -1.878 6 |
根据LSTM模型结构,多变量LSTM神经网络预测模型训练步骤如下:
1) 在输入层中,定义2001—2014年数据集为
式中:xt={at, bt, ct, dt, et, ft, gt, ht}, at, bt, ct, dt, et, ft, gt, ht分别表示t时刻对应的地下水位、蒸发量、降雨量、气温、气压、相对湿度、日照时长、开采量。
2) 划分标准化处理后的训练集与测试集,可表示为:
式中:Ftrain′,Ftest′分别表示标准化后的训练集与测试集;训练集截止点m=156,测试集截止点n=168。
3) 对数据Ftrain′进行分割,设分割窗口长度为L,L=12,故分割后输入隐含层的数据集为:
式中,X为输入到隐含层L个细胞单元的数据集。
4) 隐含层理论输出为:
实际输出为:
式中,LSTM为式(4)—(9)的计算过程。
5) 训练过程中均方误差(Ems)作为损失计算公式[16]:
式中:yi为理论输出;pi为实际输出。
6) 以损失最小为目标,应用Adam优化算法不断更新网络权重,直至网络损失最小。
3.3 模型调参在模型训练的同时,需对模型进行调参,调参的部分主要有批次大小、隐含层节点数和学习率的选取。由于本次研究所取的数据集较小,故可采用全数据集形式,其优点为由全数据集所计算的梯度可以更好地代表数据集总体,从而更准确地朝向极值所在的方向。对于隐含层节点数以及学习率的调参,本研究则采取控制变量的方法确定最优参数。首先固定非关键参数取值,选择批次大小为156,确定重复训练次数为2 000;其次确定重要参数的范围以简化调参过程,隐含层节点数经验公式如下式所示,学习率一般按3的倍数来调整[17]。
式中:p为隐含层节点数;q为输入层节点数;l为输出层节点数;a∈[1,10], a∈N。因此,隐含层节点数p∈[11,20], p∈N。令学习率η={0.001, 0.003,0.010, 0.030, 0.100, 0.300},在非关键参数条件下,依次选择不同的隐含层节点数,判断不同的学习率对测试集RMSE的影响,从而确定最优参数。其中,多变量LSTM模型相关组合的RMSE如表 3所示。
p | η | |||||
0.001 | 0.003 | 0.010 | 0.030 | 0.100 | 0.300 | |
11 | 1.051 1 | 1.412 5 | 1.713 0 | 1.921 2 | 2.251 2 | 1.352 3 |
12 | 1.286 2 | 1.313 1 | 1.800 7 | 2.207 7 | 2.777 1 | 1.645 8 |
13 | 1.241 6 | 1.338 3 | 1.869 0 | 1.911 8 | 2.186 7 | 1.900 2 |
14 | 1.938 6 | 1.463 3 | 1.384 5 | 1.301 0 | 2.824 3 | 2.661 7 |
15 | 1.716 4 | 1.803 3 | 1.868 9 | 1.672 8 | 1.807 7 | 2.411 2 |
16 | 2.189 0 | 1.952 4 | 1.785 5 | 1.228 5 | 2.376 4 | 4.004 2 |
17 | 1.402 7 | 1.889 1 | 1.622 2 | 1.453 4 | 2.031 4 | 2.734 4 |
18 | 1.528 0 | 1.986 3 | 1.671 8 | 1.684 5 | 2.255 3 | 1.538 6 |
19 | 0.770 4 | 1.523 3 | 1.634 0 | 1.652 1 | 1.610 9 | 1.704 7 |
20 | 1.269 2 | 1.717 9 | 1.435 2 | 1.443 6 | 2.157 1 | 1.672 2 |
由表 3可得,当η=0.001、p=19时,测试集RMSE最小,为0. 770 4,因此选取该参数对模型训练。
3.4 模型预测模型采用单点预测的方式,确定参数后,将2001—2013年时序数据输入模型中训练。为预测2015—2016年地下水位,设定预测次数为24,理论输出的最后L项数据为
将xm′输入LSTM模型中,预测输出结果
将n+1时刻模型变量输入模型中,得到Pn+2′,依此类推,得到预测时序集为
对P*′进行反标准化处理得到实际预测序列集P*={Pn+1, Pn+2, …, Pn+24},并计算其与预测集FFCT的偏差以定量解释模型的预测精度,整个训练、预测过程在python环境中进行。
3.5 实验结果分析为验证多变量LSTM神经网络预测地下水水位的优点,使用单变量LSTM神经网络和BP神经网络对地下水水位进行预测,并作对比分析。其中,BP神经网络以7个影响因子的时序数据作为输入值、地下水位时序数据作为输出值训练,采用回归方式进行预测。已有大量学者对BP神经网络[18]进行过研究,故本文对BP神经网络的训练、预测过程不再赘述。单变量LSTM模型的数据集的构建过程与多变量LSTM时间序列数据集的构建过程大致相同,区别在于多变量LSTM时间序列每一个时刻的数据不是一个数值,而是一个多维向量,向量的维度由变量的个数决定,本研究单变量LSTM模型仅以地下水水位作为变量输入。三者预测集及实测水位拟合曲线如图 5所示,测试集、预测集拟合RMSE见表 4。
由表 4可知,单、多变量LSTM模型以及BP模型测试集的RMSE低于预测集;这是因为模型调参过程是一个寻找靶心的过程,选择测试集误差最低的参数作为最优参数,说明靶心对于测试集而言处于最佳位置,而预测新数据时,原有靶心则会偏离,导致预测精度下降。由图 5可知,BP拟合曲线较实测值偏离较大,多变量LSTM模型预测曲线与实测值较为接近,单变量LSTM模型的预测曲线呈现出较为平稳的周期性变化,这是由于:BP模型在训练过程中未考虑时序变化规律,仅考虑了相关变量的影响,总体预测精度要显著低于多变量和单变量LSTM模型;多变量LSTM考虑地下水位时间序列变化前后依赖关系的同时,引入了其他相关影响变量的相互作用,故预测效果较好;单变量LSTM模型仅以地下水位作为变量进行训练,根据地下水位的时序变化规律作出预测,因此无法考虑相关变量的影响,在实测值波动较大时误差较大,所以预测精度介于二者之间。综上可以认为,在三种模型中,基于多变量的LSTM预测模型拟合曲线拟合最好,仅在某些峰值处误差较大,但总体预测效果较为理想。
4 结论与建议1) 基于多变量的LSTM神经网络模型可以作为预测地下水水位动态变化简单有效的工具,与单变量LSTM神经网络模型和BP神经网络模型相比,拥有更高的预测精度。
2) 基于多变量的LSTM神经网络模型预测精度对参数设置依赖较大,不同的参数组合对模型预测精度影响较为显著。本文通过确定非关键影响参数,对重要参数进行组合调参,相比于全参数调参,在弱化模型训练复杂程度的同时确保了预测精度。
3) 多变量LSTM神经网络预测模型在拟合曲线个别峰值段存在误差偏大的现象,因此如何提高模型在地下水位突变处的预测精度将是日后研究的重点,并且在今后的工作中将引入不同地区监测的资料以验证模型的适应能力。
[1] |
刘博, 肖长来, 梁秀娟. SOM-RBF神经网络模型在地下水位预测中的应用[J]. 吉林大学学报(地球科学版), 2015, 45(1): 225-231. Liu Bo, Xiao Changlai, Liang Xiujuan. Application of Combining SOM and RBF Neural Network Model for Groundwater Levels Prediction[J]. Journal of Jilin University (Earth Science Edition), 2015, 45(1): 225-231. |
[2] |
马新双, 卢胜勇, 李明良, 等. 北方浅层地下水超采区地下水预测模型研究[J]. 南水北调与水利科技, 2011, 9(4): 134-136. Ma Xinshuang, Lu Shengyong, Li Mingliang, et al. Research of Groundwater Prediction Model in Shallow Groundwater Over-Exploitation Zone in the Northern Area[J]. South-to-North Water Transfers and Water Science & Technology, 2011, 9(4): 134-136. |
[3] |
周振民, 赵明亮, 李玲. GM(1, 1)模型在滦河下游地区地下水位预测中的应用[J]. 中国农村水利水电, 2011(2): 50-52. Zhou Zhenmin, Zhao Mingliang, Li Ling. The Application of GM (1, 1) Model to the Prediction of Underground Water Level in the Downstream of the Luanhe River[J]. China Rural Water and Hydropower, 2011(2): 50-52. |
[4] |
Ahn H. Modeling of Groundwater Heads Based on Second-Order Difference Time Series Models[J]. Journal of Hydrology, 2000, 234(Sup.1/2): 82-94. |
[5] |
陈汉军, 杨雪, 黄东卫. 时间序列在地下水位预测中的应用[J]. 天津理工大学学报, 2008, 24(2): 8-10. Chen Hanjun, Yang Xue, Huang Dongwei. Application of Time Series to Groundwater Level Prediction[J]. Journal of Tianjin University of Technology, 2008, 24(2): 8-10. DOI:10.3969/j.issn.1673-095X.2008.02.003 |
[6] |
张展羽, 梁振华, 冯宝平, 等. 基于主成分-时间序列模型的地下水位预测[J]. 水科学进展, 2017(3): 97-102. Zhang Zhanyu, Liang Zhenhua, Feng Baoping, et al. Groundwater Level Forecast Based on Principal Component Analysis and Multivariate Time Series Model[J]. Advances in Water Science, 2017(3): 97-102. |
[7] |
Yang Y, Dong J, Sun X, et al. A CFCC-LSTM Model for Sea Surface Temperature Prediction[J]. IEEE Geoscience and Remote Sensing Letters, 2017, 15(2): 1-5. |
[8] |
Tax N, Verenich I, La Rosa M, et al. Predictive Business Process Monitoring with LSTM Neural Networks[J]. Advanced Information Systems Engineering, 2017(5): 477-492. |
[9] |
Ma X, Tao Z, Wang Y, et al. Long Short-Term Memory Neural Network for Traffic Speed Prediction Using Remote Microwave Sensor Data[J]. Transportation Research:Part C:Emerging Technologies, 2015, 54: 187-197. DOI:10.1016/j.trc.2015.03.014 |
[10] |
Hochreiter S, Schmidhuber J. Long Short-Term Memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 |
[11] |
Greff K, Srivastava R K, Koutník Jan, et al. LSTM:A Search Space Odyssey[J]. IEEE Transactions on Neural Networks & Learning Systems, 2015, 28(10): 2222-2232. |
[12] |
Newey W K. Adaptive Estimation of Regression Models via Moment Restrictions[J]. Journal of Econometrics, 1988, 38(3): 301-339. |
[13] |
Kingma D P, Ba J. Adam:A Method for Stochastic Optimization[J]. Computer Science, 2014, 32(3): 111-125. |
[14] |
祁晓凡, 李文鹏, 李海涛, 等. 济南岩溶泉域地下水位、降水、气温与大尺度气象模式的遥相关[J]. 水文地质工程地质, 2015, 42(6): 18-28. Qi Xiaofan, Li Wenpeng, Li Haitao, et al. Teleconnections Between Groundwater Levels, Precipitation, Air Temperature of the Jinan Karst Springs Watershed and Large Scale Climatic Patterns[J]. Hydrogeology & Engineering Geology, 2015, 42(6): 18-28. |
[15] |
杨建中. 地下水动态的影响因素分析[J]. 图书情报导刊, 2008, 18(9): 121-122. Yang Jianzhong. Analysis on the Factors Influencing the Groundwater Regime[J]. Journal of Library and Information Science, 2008, 18(9): 121-122. DOI:10.3969/j.issn.1005-6033.2008.09.070 |
[16] |
王鑫, 吴际, 刘超, 等. 基于LSTM循环神经网络的故障时间序列预测[J]. 北京航空航天大学学报, 2018, 44(4): 772-784. Wang Xin, Wu Ji, Liu Chao, et al. Exploring LSTM Based Recurrent Neural Network for Failure Time Series Prediction[J]. Journal of Beijing University of Aeronautics and Astronautics, 2018, 44(4): 772-784. |
[17] |
Ciftcioglu O, Turkcan E. Selection of Hidden Layer Nodes in Neural Networks by Statistical Tests[J]. Macromolecules, 1992, 40(17): 6217-6223. |
[18] |
管新建, 逯洪波, 徐清山. 基于BP神经网络的区域地下水位动态预测[J]. 人民黄河, 2006, 28(8): 40-41. Guan Xinjian, Lu Hongbo, Xu Qingshan. Dynamic Prediction of Regional Groundwater Level based on BP Neural Network[J]. Yellow River, 2006, 28(8): 40-41. DOI:10.3969/j.issn.1000-1379.2006.08.019 |