王渤权,金传鑫,周 论,沈 笛,蒋志强
(1.南瑞集团有限公司(国网电力科学研究院),南京 211100; 2.华中科技大学 土木与水利工程学院,武汉 430074)
水质预测的方法有多种,一般可分为物理驱动和数据驱动两类[1]。物理驱动即建立水动力水质模型,根据当前状态和未来时段的上下游边界,模拟预测出断面的水质变化过程,物理机制清晰明确,但是模型对地形、断面等基础数据的要求较高,建模难度大。数据驱动一般基于长系列历史监测数据,利用神经网络等方法对未来时段的水质进行预测,基本原理与流程简单,应用较为广泛[2-3]。因此,在有长系列历史监测数据的情况下,数据驱动模型的优势就显现出来[4]。常见的数据驱动预测方法有人工神经网络模型、支持向量机、时间序列模型等。其中神经网络模型应用最为广泛,包括卷积神经网络、循环神经网络(Recurrent Neural Networks, RNN)以及长短期记忆网络(Long Short-Term Memory, LSTM)等[5]。LSTM是RNN的一个优秀的变种模型,继承了大部分RNN模型的特性,同时解决了梯度反传过程由于逐步缩减而产生的梯度消失问题,非常适合用于处理与时间序列高度相关的问题[6]。如今,LSTM的应用越来越广,它不仅应用在各类科学研究中,谷歌、微软等大型科技公司也将其应用在了他们的产品当中。郝玉莹等[7]利用随机森林算法耦合LSTM神经网络构建了一个新的水质预测模型,并且以桃林水库为例,模拟预测了桃林水库水质数据,研究发现此模型的泛化性好,预测精度高。顾乾晖等[8]提出了一种基于变分模态分解-粒子群算法-LSTM的水质预测模型,以南阳的水质数据为例进行了水质的预测,研究发现此模型比其他模型具有更高的精确度以及更快的收敛速度。
通过国内外学者对于LSTM的研究可知,虽然LSTM模型克服了传统RNN存在的梯度消失或爆炸问题,可应用于短期与长期的预测问题研究,但单一的LSTM结构在预测精度上面存在着较大的缺陷,尤其是当样本噪声干扰较大时,LSTM模型鲁棒性不强,预测精度不高[9-11],同时在LSTM改进方法上并没有一个统一的最优改进方法。因此,利用各种优化算法对LSTM进行优化还有着很大的研究潜力。此外,西丽水库作为深圳市的重要供水水源地,准确把握其水质变化情况,对于保障深圳市的供水安全具有重要意义,但是目前对于西丽水库的水质问题研究,主要集中于基于监测数据的水质影响因素分析[12-13],基于数据驱动模型的西丽水库水质预测研究尚未见相关报道。鉴于此,本文在利用自适应噪声的完备集合经验模态分解(Complete Ensemble Empirical Mode Decomposition with Adaptive Noise, CEEMDAN)方法进行数据分解的基础上,构建了LSTM模型的西丽水库水质预测模型,以期为西丽水库制定科学合理的水库水厂供水计划提供支撑,进而保障深圳市供水安全。
对于水库中的某一固定点而言,其水质变化的总体趋势往往表现出一定的周期性,这种周期性对水质预测具有积极作用。但同时受外界各种因素的影响,具体的水质指标数值会表现出很大的不确定性,并且这种数值波动具有非平稳非线性的特点,这又为水质预测带来了难度。前面提到,目前单一的LSTM模型在预测精度上面存在着较大的缺陷,尤其是当样本噪声干扰较大时,LSTM模型预测精度不高。因此若想要通过LSTM模型得到一个较好的预测结果,有必要对原始数据进行适当的降噪。常见的信号降噪方法包括傅里叶变换[14]、小波变换[15]、经验模态分解(Empirical Mode Decomposition,EMD)[16]以及CEEMDAN等。本次研究引入CEEMDAN耦合LSTM建立水质预测模型,在实际建模之前,简要介绍一下模型的基本情况、模型结果评价以及模型的实现流程。
CEEMDAN-LSTM模型是将CEEMDAN分解方式与LSTM模型相结合,再对水质数据进行训练与预测。LSTM是在循环神经网络(Recurrent Neural Network,RNN)的基础上发展起来的一种时间循环神经网络[17-19],它解决了RNN训练中存在的梯度消失与爆炸的问题,经常被用来处理时间序列数据的预测问题。LSTM的结构如图1(a)所示。图中,LSTM在t时刻的输入有Xt、St-1、Ct-13个;在t时刻的输出有St、Ct2个。LSTM为接收到更早时间节点的信息,通过3个“门”来实现,分别为“遗忘门”“输入门”“输出门”。LSTM单元内部结构如图1(b)所示。
图1 LSTM模型原理Fig.1 Principle of LSTM model
单一的LSTM模型在进行实际预测时,存在很多问题,尤其在考虑到水质数据随机性、波动性较大的问题时,单一的LSTM预测结果不准确,不能很好地满足实际预测需求。因此在进行预测模型建模之前,利用CEEMDAN方法将水质数据进行分解,该方法通过消除分量中的部分噪声幅值,能够有效处理EMD算法的集合平均次数过多的问题,从而改善算法的分解效率。假设x(t)为原始信号,En(·)表示分解的第n阶分量,则CEEMDAN算法的操作步骤如下:
(1)
(2)计算第一个残差r1(t),其公式为
(2)
式中ε1Ek(wj(t))为白噪声信号。
(3)重复上述2个步骤,第k个分量的残差rk(t)为
(4)
式中εkEk(wi(t))为白噪声信号。
重复以上步骤,直到残差不能再分解就停止,而由于内涵模态分量的约束条件为极值点的个数和过零点的个数必须相等或相差最多不能超过1个,因此残差的极值点不会超过2个。
CEEMDAN-LSTM模型的框架如图2所示。
图2 CEEMDAN-LSTM模型框架Fig.2 Framework of CEEMDAN-LSTM model
在利用所建立的预测模型得到预测值后,需要对预报效果进行评价,分析预测结果的准确性和实用性,预测精度评价主要包含以下几个精度指标[20]:
(1)平均绝对误差(Mean Absolute Error, MAE)。MAE代表了预测结果与真实结果之间的绝对差距,数值越小,预测结果越好,其表达式为
(6)
式中:n代表预测结果个数;yo(i)表示真实结果;yc(i)表示预测结果。
(2)平均相对误差(Mean Relative Error, MRE)。MRE代表了预测结果与真实结果之间的相对差距,数值越小,预测结果越好,其表达式为
(7)
(3)均方根误差(Root Mean Square Error, RMSE)。RMSE代表了预测结果与真实结果之间的偏离程度,数值越小,预测结果越好,其表达式为
(8)
(4)确定性系数(R2)。R2反映了预测结果对真实结果趋势的拟合程度,数值越接近1,预测结果越好,其表达式为
(9)
(5)合格率。一次预报的误差小于许可误差(实测变幅的20%)时,为合格预报。合格预报次数与预报总次数之比的百分数为合格率,表示多次预报总体的精度水平,合格率的表达式为
(10)
式中:QR为合格率(%);n为合格预报次数;m为预报总次数。
本文在利用CEEMDAN方法进行数据分解的基础上,利用LSTM模型,建立了基于LSTM的西丽水库水质预测模型。模型实现流程如图3所示。
图3 模型实现流程Fig.3 Process of model implementation
西丽水库位于深圳市南山区,水库面积2.78 km2,总库容3 238.81万m3,原设计以农田灌溉为主并兼顾防洪、发电等综合利用。随着深圳经济的高速发展和用水需求的不断增长,西丽水库已转化为兼具城市供水、原水调蓄和城市防洪功能的中型水库,2002年西丽水库作为东江水源工程的交水点,成为了深圳市供水系统中的重要调节水库。如今西丽水库供水和防洪都得到了基本保障,但由于西丽水库地形和边界条件较为复杂,水库水污染和水环境恶劣成为水库管理的难点。西丽水库作为深圳重要饮水源之一,水库周围有许多水厂从库中取水,水库水质影响着供水厂的调度计划,因此西丽水库的水质预测关系着水库周边乃至全市人民的供水安全,对于保障深圳人民的生产生活十分重要。
在西丽水库水质预测模型构建中,考虑到目前西丽水库水质监测站点有大涌供水口水质监测站、东江来水口水质监测站、西铁闸水质监测站3个,位置分布如图4所示。其中大涌供水口水质监测站的数据较为充分,故本文以西丽水库大涌水质监测点的历史数据为基础,基于LSTM建立水质预测模型,对西丽水库总磷、总氮,氨氮进行建模和预测。
图4 西丽水库水质监测站位置分布信息Fig.4 Location information of water quality monitoring stations in Xili Reservoir
西丽水库水质历史数据步长为1 d,构建的水质预测模型输入为历史10步长的水质数据,输出为未来1个步长的水质数据。训练与测试模型的历史数据长度为2019-12-06—2021-08-26共计629 d,率定期与检验期按照3∶1的比例划分。
3.2.1 基于CEEMDAN的水质数据分解
3.2.1.1 分解前结果
西丽水库总氮、总磷、氨氮数据序列变化过程如图5所示,图中总氮浓度最高约为2.25 mg/L,最低约为0.25 mg/L,二者相差约9倍。总磷浓度最高约为0.065 mg/L,最低约为0.005 mg/L,二者相差约13倍。氨氮浓度最高约为0.055 mg/L,最低约为0.005 mg/L,二者相差约11倍。由上可以看出总氮、总磷、氨氮浓度在这一时间段内波动性都很大。
图5 西丽水库总氮、总磷、氨氮数据情况Fig.5 Data of total nitrogen, total phosphorus and ammonia nitrogen in Xili Reservoir
3.2.1.2 分解后结果
将总氮、总磷及氨氮数据进行CEEMDAN分解,总氮数据序列被分解成了10个不同频率的序列,总磷数据被分解成了10个不同频率的序列,氨氮数据序列被分解成了9个不同频率的序列。以总磷为例,其分解后的数据序列如图6所示。对比分解前的数据序列过程,分解后每个序列波动性大大降低,波动规律性大大增强,这更有利于LSTM模型进行预测。
图6 经CEEMDAN分解后的总磷数据Fig.6 Total phosphorus data decomposed by CEEMDAN
3.2.2 水质分解前LSTM模型预测结果
为对比分析CEEMDAN分解前后模型的预测效果,在此先给出未经过CEEMDAN分解的预报结果。训练期和检验期西丽水库总氮、氨氮、总磷的预测结果如图7所示。
图7 西丽水库总氮、氨氮、总磷预测训练期和检验期结果Fig.7 Results of the training period and inspection period for total nitrogen, ammonia nitrogen and total phosphorus prediction in Xili Reservoir
水质预测结果评价指标如表1所示。由表1可以看出,对于西丽水库水质预测模型,在训练期,总氮、氨氮、总磷的R2分别能够达到0.844、0.883和0.819,合格率除了总磷以外能够达到90%以上,相对预报误差除了总磷以外能保持在10%以下;在检验期,总氮、氨氮的R2分别能够达到0.769和0.726,总氮、氨氮的合格率分别能够达到77.27%和88.96%,总氮、氨氮的相对预报误差在10%~12%之间。总体上看,虽然总磷预测的各项统计指标结果要差一些,但从总氮、氨氮及总磷的预测结果与实测结果对比过程来看,模型预测效果也较好,预测水质过程很好地跟踪模拟了实测过程。
表1 LSTM水质模型评价指标Table 1 Evaluation indices of LSTM water quality model
3.2.3 水质分解后LSTM预测结果
水质分解处理后,训练期和检验期西丽水库总氮、氨氮、总磷的预测结果如图8所示。
图8 CEEMDAN分解后西丽水库总氮、氨氮和总磷训练期和检验期预测结果Fig.8 Results of the training period and inspection period for total nitrogen, ammonia nitrogen and total phosphorus prediction in Xili Reservoir after CEEMDAN decomposition
水质分解处理后,西丽水库的水质预测结果评价指标如表2所示。同时,为进行对比分析,将分解后的数据输入到极限学习机(Extreme LearningMachine, ELM)模型中,得到的ELM模型训练期和检验期的评价指标如表3所示。
表2 CEEMDAN-LSTM水质模型评价指标Table 2 Evaluation indices of CEEMDAN-LSTM water quality model
表3 CEEMDAN-ELM水质模型评价指标Table 3 Evaluation indices of CEEMDAN-ELM water quality model
3.2.4 分析与讨论
首先,根据表1可知,在检验期,总氮、氨氮、总磷的相对预报误差分别为12.45%、10.26%和22.98%,虽然总磷的相对预报误差较大,但是总氮与氨氮基本接近10%,预报精度相对较高。因此,单对LSTM模型而言,通过已有数据的建模与论证,证明LSTM模型可以用于水库水质预测,而且预测精度相对较高。此外,通过训练期与检验期的统计指标对比,可以发现除了极少数情况,训练期的统计指标要好于检验期,这进一步说明了模型构建与应用的合理性。对于总磷预测结果相对总氮、氨氮较差,从图5可以看出,其主要原因是原始数据的波动性本身较大。
其次,对比CEEMDAN分解处理前后的LSTM模型结果(表1与表2),可以发现,经过CEEMDAN分解处理后的LSTM模型,不论是训练期还是检验期,水质预测模型结果在MAE、RMSE、R2、MRE以及合格率等各个统计指标上相较于未分解处理的LSTM模型都得了较大程度的提升。例如,总氮、氨氮、总磷的相对预报误差由LSTM模型的12.45%、10.26%和22.98%降低为CEEMDAN-LSTM模型的8.76%、9.31%和19.27%,降低幅度分别为29.6%、9.3%和16.1%,这说明CEEMDAN分解算法的确可以将原来规律性不强的数据序列分解为规律性较大的多个数据序列,以进一步提高LSTM模型的预测精度。
第三,对比CEEMDAN分解处理后的LSTM模型结果与ELM模型结果(表2与表3),可以发现,经过CEEMDAN分解处理后的LSTM模型,不论是率定期还是检验期,水质预测模型结果在MAE、RMSE、R2、MRE以及合格率等统计指标上相较于经CEEMDAN分解处理后的ELM模型结果都得了一定程度的提升。例如,总氮、氨氮、总磷的相对预报误差由CEEMDAN-ELM模型的23.09%、17.51%和42.41%降低为CEEMDAN-LSTM模型的8.76%、9.31%和19.27%,降低幅度分别62.1%、46.8%和54.6%,这说明经过同样的分解方法对数据进行分解后,LSTM模型更具有优势,更适合于水库水质预测。
此外,通过对比表1和表3,可以发现,总氮、氨氮、总磷的相对预报误差在单独的LSTM模型中为12.45%、10.26%和22.98%,在CEEMDAN-ELM模型中为23.09%、17.51%和42.41%,即经CEEMDAN分解处理后的ELM模型结果,并没有比单独的LSTM模型结果更好,这说明本文预测结果的优势,一方面取决于CEEMDAN分解的效果,但另一方面更加说明LSTM模型在水质预测中的适用性,尤其是在数据经过CEEMDAN分解后。
最后,鉴于目前数据量较少的原因,模型预测效果还有进一步的提升空间,尤其是对于总磷预测模型,精度还有较大的提升空间。
本文基于CEEMDAN分解方法和LSTM模型,以深圳市西丽水库为例,构建了西丽水库水质模型。通过模拟计算发现该模型模拟效果较好,总氮、氨氮及总磷的预测结果与实测结果吻合度均较高,可很好地跟踪模拟实测过程;且对于总氮和氨氮,模型的相对预报误差不论是率定期还是检验期都能控制在10%以下,说明了所建模型的合理性。
总的来讲,研究工作一方面可为西丽水库的水质预测提供重要模型与技术支撑,对于保障西丽水库及深圳市的供水安全具有重要意义;另一方面通过西丽水库水质预测研究,验证了LSTM模型以及CEEMDAN分解方法在水库水质预测中的适用性,可以为其他水库的相关研究提供参考和借鉴。