白雯睿,杨毅强,郭 辉,朱雪芹
(四川轻化工大学自动化与信息工程学院,四川 宜宾 644000)
随着现代工业化发展,工业废水、生活废水等导致水质状况恶化,水污染的问题引起了广泛关注。而水质的准确预测能够在水质污染初期发现水质异常变化,减少水质治理成本,提升水质治理效率。近年来有大量关于水质预测的研究,如支持回归机[1]、BP 神经网络(BPNN)[2]、灰色系统[3]、自回归模型[4]、模糊神经网络[5]等都被应用于水质预测领域。这些方法各有优势,如支持回归机在处理小样本非线性、高维空间的数据时表现良好[6];回归模型具有建模简单的优势,适用于平稳性强,变化率低的时序数据[7]。但随着如今社会进入大数据时代,自动化采集的数据量十分庞大,这些传统的办法应用于大样本数据情景时精度都低于神经网络方法。而传统的BPNN 方法具有只能机械地反映输入与输出之间的映射关系的缺点,数据中隐藏的时序信息无法被有效利用[8],这就需要对该网络进行改进。Hochreiter 等[9]提出的长短时记忆网络(LSTM)就解决了这一问题。LSTM 网络通过将误差沿着时间传播,从而实现时间序列中信息的长期保存。由于这一特点,自LSTM 网络提出后逐渐在处理时序问题时受到人们青睐,如在疫情期间预测病毒感染趋势[10],在金融交易中用来拟合市场走势[11],在环境保护中预测空气污染[12],在城市交通中预测车流量[13],以及水位预测[14],同时LSTM 用于分析水质[15]问题时的良好表现也证明了该网络在处理水质预测问题时也大有可为。
由于卷积网络(CNN)模型提取特征的有效性,研究者们考虑到将CNN 模型与LSTM 模型结合使用,如ULLAH 等[16]提出了CNN-LSTM 网络用于图像分类任务,其中的CNN 用作特征提取器是取得成功的关键;如语音识别中,CNN 作为音频特征提取器再输入到LSTM 网络之中[17]。再如在降雨强度预测中通过充分提取时空特征获得成功[18],以及在人类活动识别[19]、出行预测[20]、乘车需求预测[21]中表现良好。
基于此,建立一种先用VMD 分解,然后用CNN提取短期特征,LSTM 提取长期水质信息,并进行多步水质预测的模型,即VMD-CNN-LSTM 多步水质预测模型,最后采用珠江流域老口站的溶解氧数据验证模型,并和CNN、LSTM、BPNN、SVR等模型进行对比实验。
本文采用的VMD-CNN-LSTM 模型结构主要由数据处理VMD 部分、CNN 部分、LSTM 部分组成,模型结构如图1所示。
图1 VMD-CNN-LSTM 网络结构图
(1)数据处理层:首先通过VMD 分解将原始水质数据分解为k个水质分序列,然后通过滑动窗口取值将分解所得的数据转换为可供监督学习的数据,再将该数据作为CNN层的输入。
(2)CNN 层:分析输入序列,提取水质数据特征,并建立相应特征向量作为LSTM层的输入。
(3)LSTM 层:将CNN 网络提取的水质信息输入到LSTM网络,通过LSTM网络学习时序信息。
(4)输出层:在LSTM 网络之后添加全连接层来输出预测结果。
VMD 是Dragomiretskiy 等[22]提出的新型时频分析方法,该方法将时序信号分解为自主指定个数的单分量,由于它能避免模态混叠、避免边界效应、抗噪干扰等优点,在降噪、特征提取、故障诊断等领域都具有应用。具体分解过程如下:
CNN 具有一些传统算法没有的优点:(1)通过局部连接以及权重共享的方式,减少了输入数据特征提取过程;(2)容错能力较强;(3)具有并行处理能力;(4)具有自学习能力,能在输入数据异常、缺失的情况下推理规则不明确的问题。这使得CNN网络在图像分类、定位检查、人脸识别、情感分析、时序预测等领域都具有广泛应用。
通常CNN 网络由卷积、池化两个组件交替构成,使用池化组件主要用来去噪或者简化网络计算复杂度,但本文的数据都进行过数据预处理,噪声数据较少,并且水质数据相对较少,计算并不复杂,因此不需要池化操作。因此本文使用无池化的卷积层提取水质的空间特征和局部的依赖关系。通过对输入水质数据应用不同的卷积核,可以生成多个卷积特征,达到对原始数据进行更加抽象的处理,从而有效提取特征,提高数据特征的质量,具体运算如式(5)所示:
其中:w(k)为设定的卷积核,*代表卷积运算,x(k)为水质数据;y(k)为生成的卷积特征。
LSTM 网络是基于循环神经网络衍生的一种算法,它的特点是在训练过程中不仅将误差向上一层传播,而且同时也会沿着时间传播,从而实现时间序列中信息的长期保存记忆,单个LSTM 神经元如图2所示:
图2 LSTM神经单元结构图
图2中单个神经元能够接收3个方面的信息,xt为t时刻的输入;Ct-1为(t-1)时刻的单元状态;ht-1为(t-1)时刻的隐藏状态。当每个神经元接收到信息后,就可以通过3种对应的“门”来控制信息的更新。其中遗忘门ft控制信息在细胞单元中是否被丢弃。
其中:σ是激活函数sigmoid,它输出一个概率值来决定分量通过的比例,wf、bf分别为遗忘门以及偏置项的矩阵系数。输入门决定了新的细胞单元受到当前输入的影响程度。
其中it是输入门向量。tanh 层可以创建出一个记为C't的新的候选值,在根据遗忘门中丢失掉的信息以及输入门更新的C't就可以输出当前的细胞状态Ct。
最后利用tanh 函数来处理细胞状态得出一个1~-1 的值并与sigmoid 层的输出相乘,得出最终的输出。通过上述过程,长期记忆在输出门的控制下就可以影响当前状态的输出。
其中:ot、ht分别为t时刻的输出及隐藏层状态。
数据来源于珠江流域老口站的公开数据,包含2006—2019 年隔日采样的pH、温度、溶解氧等水质指标,选取其中2006—2016年隔日采样溶解氧水质数据共3463条作为本文模型的训练集,其中2017—2019 年隔日采样溶解氧水质数据共1024 条作为本文模型的验证集。
采用水质类别预测准确率(ACC)、绝对误差(MAE)、均方误差(MSE)以及均方根误差(RMSE)作为水质预测模型的评价指标。其中,据国家地表水水质标准GB3838-2002,水质分为5 类,水质中部分水质标准见表1。
表1 水质标准表
预测水质类别符合真实水质类别的准确率越高表明模型性能越好,具体公式为:
其中:ni是预测类别和真实类别一致的样本数量,n是总样本数量。而其余3种指标越小则代表预测值与真实值之间的偏差越小,预测曲线更能拟合真实水质曲线,具体公式为:
其中:N是总样本数量,f(xi)是第i个水质样本的真实值,yi是第i个水质样本的预测值。
本文采用VMD-CNN-LSTM 组合模型来对水质进行预测,模型搭建流程如图3 所示。首先是对输入的水质数据进行预处理,采用均值填补历史缺值;然后将4/5 的数据作为训练集,剩下的数据作为测试集;再分别对训练集、测试集的数据进行VMD分解,得到指定数量的水质分量序列,再通过滑动窗口取值将时间序列转换为可供监督学习的数据集;最后将训练集输入训练模型,再根据模型在测试集上的表现进一步优化模型。
图3 水质预测流程图
为了验证VMD-CNN-LSTM 多步水质预测模型的预测效果,将该模型与VMD 模型、CNN 模型、LSTM 模型、BPNN 模型以及传统的SVR 模型进行对比,所涉及的实验模型及其主要参数见表2。
表2 实验模型及参数表
首先要对由于仪器损坏、表格缺失等问题造成的缺失的水质数据进行预处理,本文采取的是均值填补,用数据值缺失前后时刻的平均值填补缺失数据。然后通过VMD 将非平稳的原始水质数据分解为k个较为平稳的子序列。训练集水质数据分解前后对照数据如图4 所示(图中以k= 7 为例),其中图4(a)为训练集分解前后的数据对照图,图4(b)为测试集分解前后的数据对照图。
图4 分解前后溶解氧数据对照图
原始水质数据及分解后的水质数据时序相关系数如图5 所示,其中图5(a)为训练集分解前的IMF20 时序相关系数图,图5(b)为训练集分解后的IMF20 时序相关系数图。从图5 可以看出水质数据在VMD 分解之后,子序列的时序间的Pearson 相关系数明显增强,时序预测的准确率也会相应得到提升。
图5 水质数据VMD分解前后相关系数矩阵对照图
由于涉及到学习率、训练批次、dropout 比率、LSTM 层数、LSTM 单元数等多个参数,为提升模型的预测效果,采用网格搜索,做如下工作,调试参数:
(1)训练拟合:选取部分水质数据,使用VMDCNN-LSTM 网络训练拟合。
(2)观察评估:使用MSE 损失函数对每次训练的数据集的损失值进行可视化。
(3)调整参数:观察训练集以及验证集损失函数的曲线,判断过拟合或者欠拟合等情况,再根据经验进行调整。
(4)设置网格:每次只能对一个参数调整,因此需要设置多组参数,通过网格搜索进行调整,调整完成后,不断重复上述步骤优化模型参数,
最终模型使用一层无池化的卷积层,之后接droupt 比率为0.1 的droupt 层,再接LSTM 层,最后通过一个全连接层输出水质预测结果,相关参数设置见表2。
将VMD分解后的训练集输出用于训练模型,并将VMD 分解后的测试集用于验证模型得出预测结果,并将预测结果和真实结果可视化,VMD-CNNLSTM、CNN、LSTM、BPNN、SVR模型的7日预测值与真实值的对比结果如图6 所示(图中仅展示了其中第1、第4以及第7日预测值)。
图6 七日预测的溶解氧真实值与预测值对比图
从图6 中可以看出,第一日所有模型的预测趋势和真实趋势走势一致,仅有部分波峰、波谷的预测值和真实值存在较小差异。第四日虽然所有模型的预测趋势和真实趋势一致,但除VMD-CNNLSTM 模型之外的模型预测的波峰、波谷都明显存在差异。而在第七日的预测中,除VMD-CNNLSTM 模型之外的模型不仅预测趋势和真实趋势存在滞后现象,而且波峰、波谷都存在明显差异。
VMD-CNN-LSTM、CNN、LSTM、BPNN、SVR 模型的7 日预测值的误差与准确率对比结果如图7 所示。从图7中可以看出CNN总体预测表现都差于其余几种模型;LSTM 总体预测表现要好于BPNN 及SVR 模型,而水质数据经过VMD 分解后,输入至CNN-LSTM 网络后更容易提取水质特征,预测精度明显上升。最终VMD-CNN-LSTM 模型7 日预测的平均MAE比CNN 模型下降了45.03%,比LSTM 模型下降了35.83%,比BPNN 模型下降了38.16%,比SVR 模型下降了36.37%。VMD-CNN-LSTM 模型7日预测的平均MSE比CNN 模型下降了66.17%,比LSTM 模型下降了56.59%,比BPNN 模型下降了60.44%,比SVR 模型下降了59.73%。VMD-CNNLSTM 模型7 日预测的平均RMSE比CNN 模型下降了44.13%,比LSTM 模型下降了35.61%,比BPNN 模型下降了38.80%,比SVR 模型下降了38.18%。VMD-CNN-LSTM 模型水质类别的7 日预测的平均准确率比CNN 模型上升了13.28%,比LSTM 模型上升了9.14%,比BPNN 模型上升了13.71%,比SVR 模型上升了11.57%。
图7 实验模型性能对比图
为了提升水质预测的精确度,本文结合VMD分解、CNN 网络、LSTM 网络,采取了一种VMD 分解水质序列,CNN-LSTM 提取水质特征及进行预测的VMD-CNN-LSTM 模型,然后通过具体实验分析,将VMD-CNN-LSTM 模型与CNN、LSTM 模型以及传统的BPNN、SVR模型进行对比,得出以下结论:
(1)通过对水质数据进行VMD 分解,能够得到时序相关性较高的子序列,有利于后续网络充分提取时序信息,同时也方便多维度研究水质变化规律。
(2)通过VMD 分解和CNN-LSTM 网络的结合使用,模型学习水质时序信息的能力进一步加强,能更好地拟合真实水质变化,溶解氧的7 日预测平均MAE为0.2045,7 日预测平均MSE为0.0786,7 日预测平均RMSE为0.2676,水质类别的七日预测平均准确率为85.42%。