基于LSTM神经网络和DBSCAN算法的污水水质预测
2021-06-22尉胜男
邓 锐 尉胜男
(合肥学院生物食品与环境学院,安徽 合肥 230601)
1 引言
水质预测是采用合理的水质预测模型,通过一些水质指标的历史数据来预测未来水质变化的趋势[1]。水质预测作为水污染防治的关键环节之一,引起了越来越多的关注。在污水处理过程中,对水质进行分析预测可以方便污水处理厂工作人员及时掌握污水水质变化情况,判断污水出水水质是否超标,为水质预警系统提供数据支撑,帮助污水处理厂实现对污水处理过程的实时监控。
目前,水质预测方面的研究多是关于如何通过使用仪器对出水水质参数进行监测来掌握水质变化情况[2],但存在一定的问题,如:仪器检测不能达到实时性,一些出水指标的测量仪器在检测的精度以及准确性上有待进一步提升等。针对上述问题,Haimi H 等学者将软测量技术应用于污水处理过程中,即通过建立模型对水质参数进行实时测量,达到了良好的水质预测效果[3],为污水出水水质监测提供了一种新的思路。常用的软测量方法主要有支持向量机模型[4]、灰色系统理论[5]、神经网络[6]等。其中,随着神经网络理论的发展,通过建立神经网络模型对出水水质进行预测的研究越来越多[7]。
Lee 等[8]在A2O 污水处理过程中,建立了基于改进的前馈神经网络(FNN,Feedforward Neural Network)的多输入多输出软测量模型,预测出水COD等指标值,实验表明改进后的模型预测结果更加准确。Grieu等[9]基于FNN和自组织映射,在线预测污水处理厂SS浓度、出水COD等并取得较好的预测结果。Dai 等[10]为掌握桃林口水库水质变化的状况,选取总磷、溶解氧等7项指标作为输入,建立3层Back Propagation(BP)神经网络模型对桃林口水库出库站未来两年的7项水质指标进行预测,并通过计算RMSE等值说明预测效果可以达到实际应用要求。Guan等[11]分别建立了基于BP神经网络和Radial Basis Function(RBF)神经网络污水指标软测量模型。仿真结果表明,建立的神经网络软测量模型能很好地实现BOD、COD等参数的实时测量和估计,为污水指标的实时检测提供了新的思路。Lu等[12]建立基于LM算法的BP神经网络模型,模型共有3 层BP 神经网络结构,使用8 个水质参数作为输入神经元,对上海竹园第二污水处理厂的出水COD等参数进行预测。Zhou等[13]建立ARIMA/RBF-NN联合模型预测平西湖的TP、COD,并从RMSE、MAPE、偏差率、方差率和协变率等5个指标对预测精度进行评价,证明了模型具有良好的预测效果。Lian等[14]通过SOM-RBF神经网络模型对出水COD 进行预测,并将之与BP、RBF等模型进行比较,表明SOM-RBF 神经网络模型拥有很好的泛化性能,很好地提高了测量的速度与精度。Cao等[15]建立基于GRNN的污水出水水质预测模型,与BP网络模型相比,预测效果较好。Long等[16]通过改进的量子遗传算法对BP 神经网络的权值、阈值进行了优化,优化后的BP神经网络模型克服了BP神经网络收敛速度慢等缺点,使预测精度得到显著的提升,对大理洱海水质进行了较为精准的预测。
虽然建立模型进行水质预测的相关研究较多,最终也可以达到预测的目的,但是综合来看,这些水质模型的预测效果并不好。主要原因在于:(1)污水水质数据具有时间序列特性,污水数据中存在时间上的前后关系,而大部分研究在建模并没有考虑到这点,因此没有选取合适的、能够有效处理时间序列信息的神经网络模型,这导致模型的预测精度不高。(2)神经网络模型的收敛速度慢,在模型的训练过程中容易陷入局部极小值化,出现局部最优现象,不能在全局范围内得到一个较高的精确度,使得最终的预测结果不准确[17]。
为了降低以上两种原因对预测结果的影响,使得预测效果更加准确,本文基于LSTM神经网络理论和DBSCAN算法提出了DBSCAN-LSTM联合模型。为了减少局部极小值化对预测结果的影响、优化预测模型的准确度,模型利用DBSCAN 算法通对进过预处理后的污水数据进行聚类操作。考虑到污水数据的时间序列特性,选取LSTM 神经网络对COD、NH4N、TP 三个污水水质参数进行预测。得到预测结果后,根据参数RMSE、MAE值的大小评估模型性能,并判断模型的水质预测效果。
本文的其余部分内容如下:第2节对本文涉及的神经网络及DBSCAN 算法的方法原理进行了解释。第3 节是说明污水数据获取及预处理方法、DBSCAN-LSTM联合模型的建模过程并对其优势进行分析。第4节通过对实验结果进行分析,证明模型的有效性。第5节为论文结论。
2 方法原理
2.1 LSTM神经网络
长短期记忆(LSTM)神经网络[18]是基于循环神经网络(Recurrent Neural Network,RNN)改进而来,与RNN 相比,LSTM不仅能够解决梯度爆炸和梯度消失问题,还能更好地发现序列的依赖关系,因而被广泛用于处理时间序列问题,如语音识别等[19]。
LSTM 每个模块由输入、输出、遗忘三种门以及一个细胞单元(memory cell)组成,可以有效地对时间序列信息进行处理,其结构如图1所示[20]。
图1 LSTM结构图
LSTM具体的工作原理如下:
(1)第一步是过滤掉部分由上一时刻传递到当前时刻的信息。
这一步通过遗忘门完成,该门会读取ht-1和xt,输出一个在0到1之间的数值。1表示保留完整的信息,0表示舍弃全部信息。见公式(1):
式中ht-1表示的是上一个细胞单元的输出,xt表示的是当前细胞单元的输入。w和b分别是遗忘门里的权重矩阵和偏置向量,σ代表激活函数Sigmoid。Sigmoid函数的公式为:
(2)第二步是决定更新到当前的细胞单元中新的信息数量。
实现这个操作需要包括以下步骤:首先,由含有Sigmoid函数的输入门决定需要更新的信息;然后由一个tanh层生成一个新的值~Ct。
接下来,我们把这两部分联合起来,对当前时刻细胞单元状态的值进行更新。
(3)最终,我们需要确定输出的值。
最终输出结果取决于细胞单元状态。首先,通过sigmoid函数来输出细胞单元状态的一部分。接着,通过tanh函数对细胞单元状态进行处理,得到当前时刻的输出ht。
在本文中,因污水数据具有时间序列性,当前时刻的数据与上一刻的数据之间有所关联,故基于LSTM神经网络建立了时间序列预测模型。该模型可以很好地解决污水数据之间的依赖性问题,使得在水质指标预测方面具有良好的效果。
2.2 GRU神经网络
GRU神经网络[21]也是RNN的一种变体,与LSTM相比,GRU将遗忘门和输入门合成了一个单一的更新门,而且混合了细胞状态和隐藏状态,加之其他一些改动。GRU结构如图2所示。
图2 GRU结构图
GRU的原理与LSTM较为相似,下面做简单介绍:
(1)GRU 神经网络结构增加了两个门控单元,分别是重置门rt和更新门zt。
更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,值越大说明前一个时刻的状态信息带入越多。重置门用于控制遗忘前一时刻的部分状态信息,值越小说明遗忘的信息越多。
(3)最后计算GRU模型的在当前t时刻的输出ht。
2.3 DBSCAN算法
基于密度的聚类算法是根据样本的密度分布来进行聚类。通常情况下,密度聚类从样本密度的角度出发来考查样本之间的可连接性,并基于可连接样本不断扩展聚类簇,以获得最终的聚类结果。其中,最著名的算法就是DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法[22]。本文是通过DBSCAN 算法对污水数据进行聚类操作,将相近的数据归为一类,其目的是使之后神经网络的预测结果更加精确。
DBSCAN算法的具体步骤如下:
(1)DBSCAN 算法有两个参数:半径eps 和密度阈值MinPts。以每一个数据点为圆心,以eps为半径画一个圆,这个圆被称作这个数据点的邻域。
(2)对这个圆圈内包含的点进行计数,如果一个圆圈内的点的数目超过了密度阈值MinPts,那么则将这个圆圈的圆心记为核心点,又称为核心对象。若某个点的邻域内点个数小于我们设置的密度阈值MinPts 但此点落在核心点的邻域内,这样的点被称为边界点,既不是核心点也不是边界点的点被称为噪声点。
(3)核心点xi的eps 邻域内的点,都是核心点xi的直接密度直达。如果xj由xi密度直达,xk由xj密度直达,xn由xk密度直达,那么,xn由xi密度可达。密度可达的定义说明了可以由密度直达的传递性推导出密度可达。
(4)如果对于xk,使xi,xj都可由xk密度可达,那么,就称xi,xj密度相连。将所有的密度相连的点连在一起,从而将数据聚类成不同的簇。
与其他密度聚类不同的是,DBSCAN是基于一组邻域参数(eps,MinPts)来描述样本分布的紧密程度,相比于其他的聚类方法,DBSCAN 算法能够将密度足够高的区域划分为簇,不需要给定簇的数量,并可在有噪声的空间数据集中发现任意形状的簇,这是其优势所在。
3 DBSCAN-LSTM水质预测模型构建
3.1 污水数据获取及预处理
本文的污水数据集来源于安徽省合肥市某污水处理厂,数据按每分钟进行采集。数据集包括进水瞬时流量、出水瞬时流量、进水COD、出水COD等参数。
数据采集时需要在正常情况下进行,天气异常、采集设备出现故障等这些不确定因素都会对采集的数据产生影响,采集到的数据难免会因此出现缺失等现象,这会影响到最终的预测结果。因此,在将污水数据输入到建立的DBSCANLSTM水质预测模型之前,需要对数据进行处理。对数据的处理主要有以下几点:
(1)确定输入变量。如果不对输入的变量进行筛选,会造成数据冗余,导致模型预测结果不稳定。本文结合污水处理工艺流程,通过对数据的相关指标进行分析,选取与要预测的水质参数相关性较强的7个指标数据作为模型的输入,输出数据为水质参数的值。相关性的计算公式如下:
(2)在污水数据采集过程中,由于各种因素的影响,可能会得到缺失的数据。缺失的数据可能会使最终预测结果的精度降低,因此,要对缺失数据进行填充。通过对污水数据的时间序列特性分析,针对时间序列数据的不足,本文采用牛顿插值法对缺失值进行填充。牛顿插值法步骤为:
首先,设函数f(x),已知其n+1 个插值节点为(xi,yi),i=1,2,3…n,求出所有阶差商公式:
之后,联立差商公式建立牛顿插值多项式f(x):
最后,将缺失的数据值对应的点x代入插值多项式中得到缺失值的近似值f(x)。
(3)由于数据的多样性以及复杂性,不同类型数据之间也会相互影响,使预测结果不准确,故需要对数据进行标准化处理。公式为:
3.2 联合模型构建、优势分析
为了降低局部极小值化的影响,提高模型的预测精度,使得水质模型的预测效果更加准确,本文提出了DBSCANLSTM联合模型。同时,本文将通过仿真实验说明模型的预测结果和精度,验证DBSCAN-LSTM联合模型的优势。
DBSCAN-LSTM联合模型的流程图见图3。
图3 DBSCAN-LSTM联合模型流程图
建立DBSCAN-LSTM联合模型的具体步骤为:
(1)DBSCAN-LSTM 联合模型首先以合肥市某污水处理厂的历史污水数据作为实验数据,选取ORP、DO、pH值等七个指标作为输入变量,并对数据进行归一化、缺失值填充处理(见上文)。
(2)为了克服神经网络模型收敛速度慢、在模型的训练过程中容易陷入局部极小值化的缺点,联合模型在利用LSTM 神经网络进行预测之前加入了DBSCAN 算法,DBSCAN算法通过设定好半径eps和密度阈值MinPts这两个参数的值,首先确定了核心点、临界点、噪声点,之后判断各个点之间是否是密度直达、密度可达、密度相连关系,最后将所有的密度相连的点连在一起,就形成了聚类的簇,达到了聚类的效果。
(3)聚类操作后,针对污水数据时间序列特性,建立了LSTM 神经网络模型对COD、NH4N、TP 三个污水水质参数值进行预测。主要过程是:①将经过归一化、缺失值填充处理的七个指标数据作为模型的输入。②使用DBSCAN算法对输入的数据进行聚类处理。③确定LSTM 神经网络模型的结构、隐藏层节点数,调整网络参数。④计算网络层的输出,即输出我们要预测的水质参数值,之后使用均方根误差(RMSE)、平均绝对误差(MAE)评估模型的预测性能,判断预测结果是否精确。⑤通过绘图工具matplotlib画出模型的预测结果图以及预测误差图。
将LSTM 神经网络与DBSCAN 聚类算法相结合具有以下的优点:(1)污水数据具有时间序列性,即水质指标值是按照时间先后次序而排列的,随着时间不断地变化。这给水质预测带来了一定的难度,因此,在先前的研究中,选用的BP、RBF等神经网络很难对时间序列信息进行处理,导致预测效果不是很好。而本文中选取的是LSTM 神经网络,LSTM 神经网络具有“记忆”功能,能够记住长时间的序列信息,对时间序列数据处理有其天然的优势,能够充分考虑到时间序列的整体特性,故在时间预测方面可以达到良好的效果。(2)单一的神经网络模型收敛速度慢,在拟合时容易陷入局部极小值化,这使得最终的预测结果不准确。为了克服这些缺点,联合模型在利用LSTM 神经网络进行预测之前加入了DBSCAN算法,用于对输入的污水历史数据进行聚类操作。经过聚类之后,污水数据将作为LSTM 神经网络模型的输入应用到LSTM 神经网络模型中,LSTM 神经网络模型的输出即是本文要预测的水质参数值。加入DBSCAN算法可以起到降低局部极小值化对全局范围的影响,提高LSTM神经网络预测模型的精度和稳定性等作用,达到优化预测效果的目的。
4 实验及结果分析
4.1 仿真实验
本文实验基于Keras深度学习框架,用Python语言编写,在Pycharm软件中进行仿真实验。本实验选取ORP、pH值等七个指标作为输入变量,输入到建立的模型中,分别对COD、NH4N、TP三个污水水质参数进行预测。
仿真实验中,经过处理后,总共有10080组数据。其中,7383组作为训练集,用于对建立的模型进行训练;2697组作为测试集,用于对训练好的模型进行测试。本文构建的神经网络模型中,参数的设定值为:隐藏层有128个神经元,输出层为1 个神经元(回归问题),损失函数采用Mean Absolute Error(MAE),优化算法采用Adam,模型采用70 个epochs 并且每个batch的大小为64。
4.2 实验结果分析
为了体现本模型的预测效果,现加入LSTM 神经网络、GRU 神经网络以及DBSCAN-GRU 神经网络作为对比。在实验部分,本文首先建立水质预测模型来对COD、NH4N、TP三个出水参数进行预测,了解水质变化情况。然后计算模型的RMSE、MAE 两个误差指标值,评估各模型预测的效果。RMSE、MAE计算公式如下:
其中,yi是预测值,ytesti是实际值,n是样本的数量。
本论文选取了COD、NH4N、TP 三个参数作为需要预测的指标。其原因在于:(1)化学需氧量(COD)是衡量水中有机物含量的重要参数,能够反应水体受污染的程度,是水质评价的关键指标之一。(2)氨氮(NH4N)是水体中的营养素,会导致水体富营养化现象产生,使水体中的氧含量大量减少,造成对鱼类及某些水生生物死亡。(3)总磷(TP)指水体中磷元素的总含量。磷含量过多会引起藻类植物的大量繁殖,发生水华或赤潮现象,打乱水体的平衡。这三个参数值的大小在不同方面反映了水体的水质变化,因此本文根据这三个参数的预测结果对污水水质进行判断。
4.2.1 出水COD预测
各模型的出水COD预测结果如图4所示,横坐标为样本量,纵坐标为出水COD数据值。
各模型预测出水COD的误差见图5、表1。
表1 各模型预测出水COD时RMSE、MAE值
对图4、图5 以及表1 进行分析可以发现,对于单一模型来说,GRU、LSTM都是RNN的变种,且都是对污水数据时间序列进行处理,在预测COD时,两种单一模型的预测值与真实值之间在某些部分差距较大,两种单一模型均有较大的误差波动,但两种单一模型预测的精度较为接近。从结果来看,LSTM模型的RMSE、MAE值比GRU小,说明LSTM神经网络模型的预测效果更加准确。
图4 出水COD预测结果图
图5 各模型预测出水COD误差图
DBSCAN-LSTM、DBSCAN-GRU均是联合模型,与单一模型相比,联合模型的RMSE、MAE值比单一模型有所降低,且模型的误差波动不明显。其中,DBSCAN-LSTM联合模型的误差值最小,DBSCAN-LSTM 联合模型的出水COD 预测值更接近数据的真实值。这表明联合模型的预测效果比单一的模型预测效果更好,预测的精度有了一定的提升。本文提出的DBSCAN-LSTM模型和其他三个相比,预测效果最好。
4.2.2 出水NH4N预测
各模型的出水NH4N 预测结果如图6 所示,横坐标为样本量,纵坐标为出水NH4N数据值。
图6 出水NH4N预测结果图
各模型预测出水NH4N的误差见图7、表2。
图7 各模型预测出水NH4N误差图
表2 各模型预测出水NH4N时RMSE、MAE值
图6、图7以及表2说明,在预测NH4N时,随着NH4N这一指标数值的减小,和预测COD相比,预测NH4N的RMSE、MAE两个值数量级变为-2,这说明预测NH4N时模型的精度有了很大的提升。
从结果来看,LSTM、GRU两种模型的误差波动较小,但与预测COD 十分相似的情况是,预测值与真实值之间差距较大。预测NH4N时,DBSCAN-LSTM、DBSCAN-GRU两种模型RMSE值分别是0.0308和0.0337,MAE值分别是0.0147和0.0151,两个值相差不大。这说明两种联合模型的拟合程度相近,将密度聚类算法与神经网络结合起来可以起到提升预测效果的作用,使预测值十分接近真实值,弥补了单一模型的不足之处。综合来看,与其他模型相比,DBSCANLSTM模型的预测效果最好。
4.2.3 出水TP预测
各模型的出水TP 预测结果如图8 所示,横坐标为样本量,纵坐标为出水TP数据值。(单位:mg/l)
图8 出水TP预测结果图
各模型预测出水NH4N的误差见图9、表3。
图9 各模型预测出水TP误差图
表3 各模型预测出水TP时RMSE、MAE值
本文所有实验中,比较RMSE、MAE值可以发现,在预测TP 时,各模型RMSE、MAE 值都最小,RMSE 在0.004~0.006左右,MAE在0.001~0.003左右。这说明,预测出水TP时,模型的精度最高,预测效果也较为精确。
两个单一模型的预测效果十分接近,误差相差0.001。对于联合模型而言,预测TP时,联合模型的误差均比单一模型小,误差波动小。经计算知,和单一的LSTM 模型相比,DBSCAN-LSTM 模型的RMSE、MAE 值分别减少了0.0010和0.0013,预测误差分别下降了18%和45%左右。和单一的GRU 模型相比,DBSCAN-GRU 模型的RMSE、MAE 值分别减少了0.0018 和0.0021,预测误差分别下降了27%和53%左右。这表明联合模型很好地减少了预测误差,使得预测结果比单一模型准确。其中,DBSCAN-LSTM模型预测误差值最小,预测效果最好,说明本文提出的DBSCAN-LSTM模型具有良好的拟合性能,预测结果较为准确。
综合以上分析可以得出以下结论:DBSCAN-LSTM联合模型将密度聚类算法和LSTM 神经网络两者的优点结合了起来。它通过DBSCAN算法对输入的污水历史数据进行聚类操作,使出水参数预测结果在全局范围内拥有较高的准确度,进而可以降低局部最优对预测结果的影响。同时,利用LSTM 神经网络充分发掘了污水序列数据之间的相关性。因此,联合模型的拟合程度得到了提升,预测精度比单一的模型高,预测值十分接近真实值,从而拥有良好的水质预测效果。
5 结语
为了提高水质模型预测精度,使水质预测效果更加准确,本文提出了DBSCAN-LSTM 联合模型。在此联合模型中,DBSCAN 算法用于对污水数据进行聚类操作,降低局部极小值化对预测结果的影响,起到了提高预测模型的精度和稳定性、优化模型预测结果的作用。考虑到污水数据的时间序列特性,联合模型选取LSTM神经网络对COD、NH4N、TP三个污水水质参数进行预测。
经过仿真实验可以得出,本文提出的DBSCAN-LSTM联合模型RMSE、MAE 误差值最小,预测值比较接近真实值。与单一模型相比,联合模型在预测精度方面有了一定的提升。这说明该联合模型具有较高的预测精度,可以快速和较为准确地对污水出水水质进行预测,能够取得较好的预测效果。
未来可以考虑在以下方向进一步研究:在数据预处理方面尝试其他方法,如缺失值填充处理时采用拉格朗日插值法;尝试对DBSCAN算法进行改进后再将其同LSTM神经网络进行联合;采用不同的优化算法对LSTM神经网络进行优化等,观察这些改进是否能够使本联合模型的预测精度得到进一步提高。