基于CNN-LSTM的白马湖水质预测模型研究

2022-10-24 08:12王志勃姜仲秋张天舒
电脑知识与技术 2022年26期
关键词:白马湖卷积水质

王志勃,姜仲秋,张天舒

(江苏电子信息职业学院,江苏淮安 223001)

1 背景

白马湖[1]是江苏省十大湖泊之一,是国家南水北调东线上游重要的过境湖泊,也是淮安市中心城区第二饮用水源地,近年来随着城市污染程度加剧,白马湖的水质污染问题愈发严重。而更快更精准地进行水质预测,是管理水资源和预防水污染的基础,早期的研究者们使用一些统计学的方法来进行水质预测,例如,马景等人[2]使用马尔科夫模型改进的GM(1,1)模型对南四湖水质进行预测,改进后的结果比原来的方法精度提高。李娜等人[3]使用灰色系统模型结合新陈代谢原理预测水质的情况。这些方法都依赖数据的平稳性,而实际的水质都是非线性的,因此这些方法普遍预测精度不高。之后的很多研究者使用机器学习的方法来进行水质预测,LI等人[4]评估和比较多元线性回归(MLR)、反向传播神经网络(BPNN)和支持向量机(SVM)在基于多个水质参数的DO浓度预测中的性能,并用粒子群优化算法(PSO)优化的模型来进行校准和测试,结果表明PSO-BPNN和PSO-SVM比线性回归方法具有更好的预测性能。刘洁等人[5]建立了一个遗传神经网络的水质预测模型,完成了对河水水质的实时预测。机器学习的方法虽然在一定程度上提高了水质预测的精度,但是传统的机器学习需要人工设计专门的特征,而影响水质预测的特征相对复杂多样,这导致机器学习的方法难以进一步提高精度。近年来深度学习逐渐流行,在各种预测任务中取得了良好的效果,在深度学习中,长短时记忆神经网络(LSTM)[6]常用来处理时间序列的问题,但由于影响水质预测的特征相对复杂多样,这导致单一的LSTM的模型难以取得良好的效果,而卷积神经网络(CNN)可以自动地提取数据的特征,无需人工进行干预。因此本文结合CNN与LSTM各自的优点,先使用CNN来自动地提取水质的复杂特征,把CNN提取的特征变成特征向量输入到LSTM网络中进一步进行数据长短时特征提取,进而进行水质的预测,最后把本文的方法在白马湖水质数据上进行预测,结果表明本文的方法比其他预测方法拥有更好的效果。

2 研究方法

2.1 卷积神经网络

卷积神经网络是深度学习中的最有效的模型之一,卷积神经网络的卷积层具有局部连接,权值共享等优点,池化层可以在保留图像特征的同时防止过拟合。研究者们受到卷积神经网络在二维图像的识别和检测任务中优异的表现的启发,他们尝试把卷积神经网络用在时间序列的数据特征提取当中,并取得了同样优异的效果。研究者使用一维的卷积神经网络的卷积核作为窗口,利用滑动窗口算法在时间序列数据上就行特征提取,与二维图像操作相似,时间序列数据与卷积神经网络同样是采用卷积的计算方法。从卷积层得到的特征进入池化层,进一步过滤数据中对预测没有用的噪声信息以此优化最终的效果。

2.2 长短时记忆神经网络

长短时记忆神经网络(LSTM)是循环神经网络(RNN)的一种变体,它可以解决传统的循环神经网络中存在的一些问题例如,梯度爆炸或梯度消失。LSTM与传统的RNN不同,LSTM的优点是可以根据上下文信息改变自循环网络的权重。系统中增加了三个选通单元结构,即外部输入门单元、遗忘门单元和输出门单元。LSTM网络的相关公式如下所示。

其中it,ft和ot分别代表输入门单元,遗忘门单元和输出门单元Wih,Wfh,Woh,Wgh代表模型的权重,bi,bf,bo和bg代表偏置。

2.3 CNN-LSTM模型构建

卷积神经网络(CNN)和LSTM网络虽然各自都能都单独地完成水质的预测任务,但由于CNN对时间顺序的特征并不敏感,这就导致最终的检测结果并不理想,而LSTM网络虽然对时间序列敏感,但若只是单独地使用LSTM网络进行水质预测会引入较多不相干的特征,还可能受到时间序列数据中较大或较小值的影响,同样会影响最终的预测结果。因此,本文使用CNN与LSTM网络相融合的一个结构(CNN-LSTM),先利用CNN强大的特征提取能力来提取湖水水质的特征,再把特征输入到LTSM当中进一步整合预测最后的结果。

本文构建的CNN-LSTM网络结构如图1所示,首先输入白马湖水质数据,然后先通过一个卷积层自动提取水质时间特征序列,该特征的表达能力远远大于原始的数据。之后把卷积层提取的特征送入最大池化层,最大池化层在减少参数量的同时保证了特征的不变性,最大池化层出来的特征就是CNN最终处理完成的特征,之后把特征作为输入,送入一个LSTM网络进行进一步的时许特征提取,最后通过一个Dense层做最后的预测。

图1 CNN-LSTM的网络结构图

表一为CNN-LSTM对应的参数设置,本文的卷积层使用了一个3×1的卷积核,其神经元个数为128。最大池化层使用了一个2×1的池化核。LSTM使用的是64的神经元。Dense使用了1个神经元。

表1 CNN-LSTM参数

3 实验

3.1 数据处理

本研究主要白马湖所提供的湖水数据自动监测周报作为数据源,对此数据的处理过程如下。

1)筛选目标数据。从白马湖的湖水自动检测站得到4种水质数据,其中包括水体pH值、氨氮浓度、高锰酸盐指数、溶解氧(DO),而研究者们发现水质中溶解氧含量是判断水质优劣程度的最重要的依据,因此本文使用白马湖水质数据中的溶解氧作为模型训练和最终预测的结果,根据溶解氧预测结果来判断水质的具体情况。

2)数据分割。把样本数据按照7∶1∶2分解成训练集、测试集和验证集,70%的数据用来CNN-LSTM的模型训练,10%的数据用在训练过程的验证阶段,20%的数据用来做最后模型的验证。

3.2 评价指标

本文所有实验均使用均方根误差(RMSE)和决定系数(R²)来验证各种模型的预测结果,具体如下。

RMSE计算公式如下。

其中mN指的是数据的数量,Yi指的是预测值的结果,Xi指的是实际的结果,RMSE越小,预测精度越高。

决定系数(R²)为回归平方和总偏差平方和的比率公式如下。

其中Yi指的是预测值的结果,Xi指的是实际的测试结果,Zi指的是实际结果的平均值,R²越接近1,预测精度越高。

3.3 实验

3.3.1 实验参数

本文采用pytorch深度学习框架实现相关的实验,在训练模型时使用Adam优化器和0.001的学习率学习150个epoch之后得到了最后的模型。

3.3.2 对比实验

为了验证本文提出方法的有效性,我们对本文提出的方法与LSTM和CNN进行了验证集的实验对比,其结果如表2所示。由表2可以看到CNN-LSTM的RMSE达到了0.41,比LSTM下降了4%,比CNN下降了6%。CNN-LSTM的R²比CNN和LSTM提高了1%,因此本文提出的方法总体性能高于单独使用LSTM或者CNN,这是由于本文提出的方法先使用CNN可以自动提取复杂的溶解氧特征信息,之后传入LSTM进一步分析得到结果,这样融合各个网络优势的方法可以进一步提高预测的精度。综上所示,本文提出的CNN-LSTM模型可以较为准确地预测出未来一段时间内的水质数值,可以为治理白马湖水质提供帮助。

表2 三种模型性能对比

4 结论

精准的湖水水质预测结果对于预防和管理白马湖水质问题非常重要。本文通过对白马湖水质数据进行分析之后得到水质溶解氧数据作为输入数据,先对它们进行归一化处理,然后构建一个融合CNN和LSTM相融合的CNN-LSTM模型对水质数据进行预测。首先在其训练集上进行训练从而得训练好的模型,然后使用训练好的模型对验证集的数据进行预测结果的验证,最终的结果比单独使用CNN或LSTM网络更加有效。

猜你喜欢
白马湖卷积水质
水质抽检岂容造假
春日里的白马湖公园
游白马湖公园
基于3D-Winograd的快速卷积算法设计及FPGA实现
开水白菜般的文人情怀
从滤波器理解卷积
一月冬棚养虾常见水质浑浊,要如何解决?这9大原因及处理方法你要知晓
基于傅里叶域卷积表示的目标跟踪算法
淮安市白马湖湖滨带生态修复方案研究
一种基于卷积神经网络的性别识别方法