一种基于CNN-LSTM的多要素水质预测方法
未命名
10-09
阅读:165
评论:0
一种基于cnn-lstm的多要素水质预测方法
技术领域
1.本发明属于水质预测技术领域,具体涉及一种基于cnn-lstm的多要素水质预测方法。
背景技术:
2.目前,利用传感器数据对水质进行预测主要有回归分析类预测算法、时间序列分析法和神经网络模型水质预测方法三种,其中回归分析类预测算法在对水质预测时,需要样本数据呈现出一定的分布规律,且在短期的水质预测中表现出较好的预测精度;时间序列分析法由于忽略了其它环境参数会对水质要素产生影响的考虑,导致预测准确性相对差些,并且也只适合短期预测;神经网络模型水质预测方法同时兼具实时学习和非线性数据处理的能力,是当前最为常用的一种水质预测方法,适合中长期预测,常用的神经网络模型包括误差反向传播(bp)神经网络、径向基(rbf)神经网络、长短期记忆(lstm)神经网络等,如王晓萍等于2007年发表的基于bp神经网络的钱塘江水质指标的预测一文中,选取了总磷、总氮、化学需氧量等c项指标作为预测参数,运用levebverg-marguardt优化算法对学习样本进行优化,建立了反向传播(bp)神经网络模型,并运用该模型对钱塘江水质指标进行了预测,对大部分水质指标能够得到较好的预测值。而lstm神经网络在水质预测中的应用大都只关注了水质中单一因素的影响,忽略了其他因素对水体质量变化的影响,导致单要素lstm网络对水质变化预测存在精度不高、反应不快的问题,严重影响lstm神经网络在水质预测中的应用和发展。
技术实现要素:
3.针对上述不足,本发明公开了一种基于cnn-lstm的多要素水质预测方法,利用卷积神经网络(cnn)对污染、气象等多要素对水质变化的影响进行时序分解,找出关联性高的要素,再利用lstm对多要素进行预测,解决现有技术中存在的精度不高、反应不快的问题,相比bp和rbf神经网络所产生的误差更小。
4.本发明是采用如下技术方案实现的:
5.一种基于cnn-lstm的多要素水质预测方法,其包括以下步骤:
6.(1)收集待预测地区历年的水质影响数据,所述的水质影响数据由水质数据和环境气象数据组成;
7.所述的水质数据包括以下要素:水温、ph值、电导率、溶解氧、浊度、氨氮、余氯、高锰酸盐、微生物含量、悬浮物、汞、镉、砷、铅、六价铬、有机氯化合物、硫化物、挥发酚、氰化物、有机磷化合物、石油类、铜、锌、氟、硝基苯类、苯胺类;
8.所述的环境气象数据包括以下要素:地表水和地下水的水位、流量、流速和含沙量,待预测地区的降雨量、风速、风向、大气压力及日照;
9.(2)将步骤(1)中收集到的水质影响数据整理得到数据集,采用留出法将数据集分成训练集a1和测试集a2,将训练集a1输入至cnn进行时序分解得到各要素之间的相关性预
测模型,并且采用测试集a2进行检验;
10.(3)选择若干个待预测的水质的要素,接着采用步骤(2)中得到的相关性预测模型确定与待预测要素关联性高的要素,然后将它们对应的数据组成训练集b,所述训练集b表示为xi(t)=[xi(1),xi(2)...xi(t)]的时间序列,其中i对应不同的要素,xi(t)表示i要素第t时刻的监测值;接着根据时间滑动窗口和训练集b构造训练集c,所述训练集c表示为xi(t)=[xi(t-n+1),xi(t-n+2)...xi(t-1),xi(t)],即以t时刻为当前时刻,n为时间滑动窗口,则xi的t-n时刻到t时刻的时间序列为xi(t)=[xi(t-n+1),xi(t-n+2)...xi(t-1),xi(t)];
[0011]
(4)构建lstm预测模型,初始化模型参数;所述lstm预测模型由输入层、隐含层和输出层组成,以步骤(2)中得到训练集c作为所述lstm预测模型的输入层序列,所述隐含层神经元为h=(h1,h2,...hj,...hz),隐含层在t时刻的输出为h(t)=(h1(t),h2(t),...hj(t),...hm(t)),输出层为t+1时刻的预测值所述的lstm预测模型的计算过程如公式a和公式b所示,所述公式a为hj(t)=h(m)(w
sh
xi(t)+w
hh
hj-1(t)+bh),所述公式b为其中w
sh
、w
hh
、w
ho
分别表示分别表示输入层和隐含层、隐含层自身之间、隐含层和输出层之间的权重矩阵,bh、by分别表示隐含层和输出层之间的偏置向量,使用sigmoid作为激活函数,记为σ;
[0012]
(5)使用训练集c数据对预测模型进行训练,基于输出误差进行反向训练更新模型参数,得到最优的预测模型,即多要素水质预测模型;使用多要素水质预测模型进行预测时,采集i要素在t时间的数据组成序列xi(t),再将其输入预测模型中,获得xi的第t+1的预测值
[0013]
进一步的,步骤(1)中收集的水质影响数据的时间跨度在半年以上。
[0014]
进一步的,步骤(3)中构建lstm预测模型取均方误差(mse)作为损失函数(loss)。
[0015]
进一步的,所述mse函数的公式为其中q代表真实值,代表模型的预测值。lstm预测模型的训练过程就是寻找一组最优的参数,使e
mse
最小。
[0016]
进一步的,步骤(4)中所述的反向训练包括以下步骤:
[0017]
s1、计算输出误差,采用反向传播算法将误差传递给隐藏层神经元;
[0018]
s2、隐藏层神经元根据相应误差采用梯度下降法更新权重参数;
[0019]
s3、设置迭代次数epoch,重复s1和s2,当满足预设精度要求或完成迭代次数则停止更新权重,训练完成。
[0020]
本技术方案与现有技术相比较具有以下有益效果:
[0021]
本发明考虑水体环境易受到人类活动(污水排放)和自然气象(降雨、气压)因素的双重影响,提出一种基于cnn-lstm的多要素水质预测模型,利用cnn对污染、气象等多要素对水质变化的影响进行时序分解,找出关联性高的要素,再利用lstm对多要素进行预测,解决单要素lstm网络对水质变化预测精度不高、反应不快的问题。
附图说明
[0022]
图1是实施例1中所述的基于cnn-lstm的多要素水质预测方法的流程图。
[0023]
图2是实施例1中所述的多要素水质预测模型的结构示意图。
[0024]
图3是实施例1中溶解氧在不同参数下的测试结果。
[0025]
图4是实施例1中所述的不同预测模型预测溶解氧的结果示意图,其中曲线1~3依次表示真实值、本发明所述预测模型的预测值、bp预测模型的预测值。
具体实施方式
[0026]
以下通过实施例进一步说明本发明,但不作为对本发明的限制。下列实施例中未注明的具体实验条件和方法,所采用的技术手段通常为本领域技术人员所熟知的常规手段。
[0027]
实施例1:收集广西某市2021~2022年的水质影响数据,采用本发明所述的基于cnn-lstm的多要素水质预测方法,构建多要素水质预测模型进行水质预测,参见附图1,其包括以下步骤:
[0028]
(1)收集待预测地区的水质影响数据,所述的水质影响数据由水质数据和环境气象数据组成;
[0029]
所述的水质数据包括以下要素:水温、ph值、电导率、溶解氧、浊度、氨氮、余氯、高锰酸盐、微生物含量、悬浮物、汞、镉、砷、铅、六价铬、有机氯化合物、硫化物、挥发酚、氰化物、有机磷化合物、石油类、铜、锌、氟、硝基苯类、苯胺类;
[0030]
所述的环境气象数据包括以下要素:地表水和地下水的水位、流量、流速和含沙量,待预测地区的降雨量、风速、风向、大气压力及日照;
[0031]
(2)将步骤(1)中收集到的水质影响数据整理得到数据集,采用留出法将数据集分成训练集a1和测试集a2,将训练集a1输入至cnn进行时序分解得到各要素之间的相关性预测模型,并且采用测试集a2进行检验;所得到的相关性预测模型采用皮尔逊相关性检验方法进行验证;
[0032]
(3)选择溶解氧作为待预测的水质的要素,接着采用步骤(2)中得到的相关性预测模型确定与待预测要素关联性高的要素为ph、电导率和水温,然后将将要素溶解氧、ph、电导率和水温对应的数据组成训练集b,所述训练集b表示为xi(t)=[xi(1),xi(2)...xi(t)]的时间序列,其中i对应不同的要素,xi(t)表示i要素第t时刻的监测值;接着根据时间滑动窗口和训练集b构造训练集c,所述训练集c表示为xi(t)=[xi(t-n+1),xi(t-n+2)...xi(t-1),xi(t)],即以t时刻为当前时刻,n为时间滑动窗口,则xi的t-n时刻到t时刻的时间序列为xi(t)=[xi(t-n+1),xi(t-n+2)...xi(t-1),xi(t)];
[0033]
(4)参见图2,构建lstm预测模型,初始化模型参数;所述lstm预测模型由输入层、隐含层和输出层组成,以步骤(2)中得到训练集c作为所述lstm预测模型的输入层序列,所述隐含层神经元为h=(h1,h2,...hj,...hz),隐含层在t时刻的输出为h(t)=(h1(t),h2(t),...hj(t),...hm(t)),输出层为t+1时刻的预测值所述的lstm预测模型的计算过程如公式a和公式b所示,所述公式a为hj(t)=h(m)(w
sh
xi(t)+w
hh
hj-1(t)+bh),所述公式b为其中w
sh
、w
hh
、w
ho
分别表示分别表示输入层和隐含层、隐含层自身之间、隐含层和输出层之间的权重矩阵,bh、by分别表示隐含层和输出层之间的偏置向量,使用sigmoid作为激活函数,记为σ;构建lstm预测模型取均方误差(mse)作为损失函数(loss);
所述mse函数的公式为其中q代表真实值,代表模型的预测值,lstm预测模型的训练过程就是寻找一组最优的参数,使e
mse
最小;
[0034]
(5)使用训练集c数据对预测模型进行训练,基于输出误差进行反向训练更新模型参数,得到最优的预测模型,即多要素水质预测模型;使用多要素水质预测模型进行预测时,采集i要素在t时间的数据组成序列xi(t),再将其输入预测模型中,获得xi的第t+1的预测值
[0035]
所述的反向训练包括以下步骤:
[0036]
s1、计算输出误差,采用反向传播算法将误差传递给隐藏层神经元;
[0037]
s2、隐藏层神经元根据相应误差采用梯度下降法更新权重参数;
[0038]
s3、设置迭代次数epoch,重复s1和s2,当满足预设精度要求或完成迭代次数则停止更新权重,训练完成。
[0039]
基于所述的多要素水质预测模型在进行水质要素(溶解氧)进行预测时,以t时刻作为当前时刻,n为时间滑动窗口,使用时间序列xi(t)=[xi(t-n+1),xi(t-n+2)...xi(t-1),xi(t)]预测下一时刻t+1的预测值值例如当n=6时,预测模型使用前四个时刻的数据预测第五个时刻的值,即使用时间序列xi(t)=[xi(t-5),xi(t-4),xi(t-3),xi(t-2),xi(t-1),xi(t)]预测下一时刻t+1的预测值应用到实例中,当时间滑动窗口大小取6时,预测方式为用时序样本中第1、2、3、4、5、6个监测数据预测第7个监测数据,第2、3、4、5、6、7个监测数据预测第8个监测数据,依次类推;
[0040]
在本实施例中,多要素水质预测模型的输入节点数量根据滑动窗口n确定,由于是仅预测溶解氧时采用单步预测,所以输出层节点数量取1,隐含层节点的个数主要决定模型处理数据的规模,为提高水质预测的精确度,通过调整时间滑动窗口大小n、隐含层节点数和模型训练时的迭代次数进行对比实验,溶解氧在不同参数下的测试结果见图3。根据图3可见,模型的训练效果并不是随着隐含层和迭代次数的增加而趋于完美,在同一个滑动窗口大小下,隐含层超过一个特定值后,rmse开始变大,真实值与预测值的差距变大,预测效果变差;在隐藏层节点数量等同时,随着迭代次数的增加,误差逐渐减小,溶解氧在滑动窗口为6,隐含层节点数为20,迭代次数为50时的预测效果最佳。
[0041]
为了验证本实施例所述预测模型在预测时刻水质的有效性和准确性,采用王晓萍等于2007年发表的基于bp神经网络的钱塘江水质指标的预测一文中所述技术方案,使用相同的数据集构建bp神经网络得到基于bp神经网络的预测模型,然后将其与本实施例所得到的预测模型进行对比,其中采用相同的时间滑动窗口大小、相同的隐藏层节点数量和相同的迭代次数,溶解氧的预测结果参见图4,本发明所得到的预测模型的预测结果的整体变化趋势与真实值大体一致,且长期预测时,预测结果与真实值的误差较小;同时与基于bp的水质预测模型相比,预测效果明显较优。
[0042]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
技术特征:
1.一种基于cnn-lstm的多要素水质预测方法,其特征在于:包括以下步骤:(1)收集待预测地区历年的水质影响数据,所述的水质影响数据由水质数据和环境气象数据组成;所述的水质数据包括以下要素:水温、ph值、电导率、溶解氧、浊度、氨氮、余氯、高锰酸盐、微生物含量、悬浮物、汞、镉、砷、铅、六价铬、有机氯化合物、硫化物、挥发酚、氰化物、有机磷化合物、石油类、铜、锌、氟、硝基苯类、苯胺类;所述的环境气象数据包括以下要素:地表水和地下水的水位、流量、流速和含沙量,待预测地区的降雨量、风速、风向、大气压力及日照;(2)将步骤(1)中收集到的水质影响数据整理得到数据集,采用留出法将数据集分成训练集a1和测试集a2,将训练集a1输入至cnn进行时序分解得到各要素之间的相关性预测模型,并且采用测试集a2进行检验;(3)选择若干个待预测的水质的要素,接着采用步骤(2)中得到的相关性预测模型确定与待预测要素关联性高的要素,然后将它们对应的数据组成训练集b,所述训练集b表示为x
i
(t)=[x
i
(1),x
i
(2)...x
i
(t)]的时间序列,其中i对应不同的要素,x
i
(t)表示i要素第t时刻的监测值;接着根据时间滑动窗口和训练集b构造训练集c,所述训练集c表示为x
i
(t)=[x
i
(t-n+1),x
i
(t-n+2)...x
i
(t-1),x
i
(t)],即以t时刻为当前时刻,n为时间滑动窗口,则x
i
的t-n时刻到t时刻的时间序列为x
i
(t)=[x
i
(t-n+1),x
i
(t-n+2)...x
i
(t-1),x
i
(t)];(4)构建lstm预测模型,初始化模型参数;所述lstm预测模型由输入层、隐含层和输出层组成,以步骤(2)中得到训练集c作为所述lstm预测模型的输入层序列,所述隐含层神经元为h=(h1,h2,...hj,...hz),隐含层在t时刻的输出为h(t)=(h1(t),h2(t),...hj(t),...hm(t)),输出层为t+1时刻的预测值所述的lstm预测模型的计算过程如公式a和公式b所示,所述公式a为hj(t)=h(m)(w
sh
x
i
(t)+w
hh
hj-1(t)+b
h
),所述公式b为其中w
sh
、w
hh
、w
ho
分别表示分别表示输入层和隐含层、隐含层自身之间、隐含层和输出层之间的权重矩阵,b
h
、b
y
分别表示隐含层和输出层之间的偏置向量,使用sigmoid作为激活函数,记为σ;(5)使用训练集c数据对预测模型进行训练,基于输出误差进行反向训练更新模型参数,得到最优的预测模型,即多要素水质预测模型;使用多要素水质预测模型进行预测时,采集i要素在t时间的数据组成序列x
i
(t),再将其输入预测模型中,获得x
i
的第t+1的预测值2.根据权利要求1所述的基于cnn-lstm的多要素水质预测方法,其特征在于:步骤(1)中收集的水质影响数据的时间跨度在半年以上。3.根据权利要求1所述的基于cnn-lstm的多要素水质预测方法,其特征在于:步骤(3)中构建lstm预测模型取均方误差作为损失函数。4.根据权利要求1所述的基于cnn-lstm的多要素水质预测方法,其特征在于:所述mse函数的公式为其中q代表真实值,代表模型的预测值。lstm预测模型的训练过程就是寻找一组最优的参数,使e
mse
最小。5.根据权利要求1所述的基于cnn-lstm的多要素水质预测方法,其特征在于:步骤(4)
中所述的反向训练包括以下步骤:s1、计算输出误差,采用反向传播算法将误差传递给隐藏层神经元;s2、隐藏层神经元根据相应误差采用梯度下降法更新权重参数;s3、设置迭代次数epoch,重复s1和s2,当满足预设精度要求或完成迭代次数则停止更新权重,训练完成。
技术总结
本发明公开了一种基于CNN-LSTM的多要素水质预测方法,其先收集待预测地区历年的水质影响数据组成数据集;将数据集分成训练集A1和测试集A2,将训练集A1输入至CNN进行时序分解得到各要素之间的相关性预测模型且采用测试集A2检验;选择若干个待预测的水质的要素,采用相关性预测模型确定关联性高的要素,然后将它们对应的数据组成训练集B,接着根据时间滑动窗口和训练集B构造训练集C;然后构建LSTM预测模型,将训练集C作为所述LSTM预测模型的输入层序列,使用训练集C数据对预测模型进行训练,基于输出误差进行反向训练更新模型参数得到多要素水质预测模型。本发明可以解决现有技术中存在的精度不高、反应不快的问题,相比BP和RBF神经网络所产生的误差更小。和RBF神经网络所产生的误差更小。和RBF神经网络所产生的误差更小。
技术研发人员:陈思浩 聂贝贝 朱佩丽 吴迪
受保护的技术使用者:南宁师范大学
技术研发日:2023.07.07
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
