一种基于改进元学习的水质预警方法
未命名
09-01
阅读:168
评论:0

1.本发明涉及河流水质预测技术领域,尤其是涉及一种基于改进元学习的水质预警方法。
背景技术:
2.水是自然环境的重要组成部分,同时也是人们生产和生活中不可或缺的资源。然而,随着社会和工业的发展,生活污水和工业废水的排放量呈加速增长趋势,导致水环境快速恶化,其中,农村地区的水环境污染问题更为突出。为了保障生态环境的健康,加强村镇水环境治理是当务之急。
3.水质预测作为水污染防治的一项基本工作,通过利用现代科技手段对水环境的变化趋势进行准确预测,有效地提高了水环境的治理效率。然而,在村镇地区,由于基础设施缺陷、人员短缺等原因,现有的水质预测方法难以满足村镇水环境的需求,如何利用先进的技术手段开发适用于村镇水环境的水质预测方法成为需要关注的问题。
4.近年来,随着数据量的增加,深度学习算法在时间序列预测领域得到广泛应用,为水质预测提供了新的思路。深度学习可以通过神经网络自动挖掘变量之间的关系,不断抽象数据特征,实现河流水质的预测。其中,循环神经网络(rerrent neural network,rnn)模型可以利用数据之间的相关性,比较适合处理时间序列问题,可以大大提高预测精度。长短期记忆网络(lstm)、gru(门控循环单元,gate recurrent unit)是rnn的变种,它通过“重置门”和“输出门”机制,解决了rnn无法捕捉长期依赖的问题,增强了模型的记忆能力。
5.综上所述,村镇水质预测一直是一个备受关注的问题。由于村镇水质监测设备比较落后,监测数据的时空分布并不均匀,无法提供及时的预警信息,这给村镇水质管理带来很大困难。此外,现有的水质预测方法在不同地区的适用性较差,模型训练成本高,难以实现在大范围内的推广应用。
技术实现要素:
6.本发明的目的是克服上述现有技术存在的缺陷而提供一种基于改进元学习的水质预警方法。
7.本发明的目的可以通过以下技术方案来实现:
8.一种基于改进元学习的水质预警方法,包括以下步骤:
9.获取村镇河流的待测水质数据;
10.对所述待测水质数据进行预处理及标准化处理,得到标准待测数据;
11.将所述标准待测数据输入水质预测模型,得到水质预测结果;
12.将所述水质预测结果与河流水质标准进行对比,若水质预测结果超过预设标准,则对水质情况给予预警;
13.其中,所述水质预测模型的构建包括以下步骤:
14.s1、获取预设时间段内的村镇河流水质数据;
15.s2、对所述水质数据进行预处理;
16.s3、对处理后的数据进行标准化处理;
17.s4、针对不同时间段、不同村镇河流,重复执行步骤s1-s3,获取多个数据集,不同村镇的水质数据集分别记为d1、d2…dn
,总数据集为d;
18.s5、将所述总数据集划分为训练集、测试集与验证集;
19.s6、基于所述总数据集,构建多维时序数据张量,基于多维时序数据张量,分别构建元训练集和元测试集;
20.s7、构建改进gru模型,确定神经网络架构及参数,基于所述元训练集及元测试集,通过改进reptile算法进行元训练,并保存训练得到的最优参数;
21.s8、基于步骤s7得到的最优参数及步骤s5得到的训练集、测试集与验证集,训练并优化所述改进gru模型,得到水质预测模型。
22.进一步地,步骤s1中,所述水质数据包括ph值、化学需氧量、氨氮、温度、溶解氧、电导率及浊度数据。
23.进一步地,步骤s2中,对所述水质数据进行预处理包括以下步骤:
24.剔除数据中的异常值及重复值;
25.修改格式错误的数据;
26.利用线性插值法填补空白数据。
27.进一步地,步骤s3中,所述标准化处理的计算公式为:
[0028][0029]
式中,x
′
表示标准化计算后某一时刻t的水质数据,x
t
表示标准化前某一时刻t的水质数据,x
mean
表示标准化前某一时刻t的水质数据均值,x
std
表示标准化前某一时刻t的水质数据标准差。
[0030]
进一步地,步骤s6中,针对所述总数据集,根据固定时间步长ts、水质数据指标量n及数据量大小n划分为三维张量x
all
,根据固定时间步长ts、预测数量vn、数据量大小n划分为一维张量y
all
。
[0031]
进一步地,步骤s6中,根据固定时间步长ts,采用滑动窗口采样法将所述总数据集划分为三维张量及一维张量。
[0032]
进一步地,通过改进reptile算法进行元训练包括以下步骤:
[0033]
1)初始化参数φ;
[0034]
2)确定外循环迭代次数n,并执行以下步骤:
[0035]
2-1)在总数据集d中,运用分层抽样抽取任务t;
[0036]
2-2)在任务t上执行所述改进gru模型,并从φ开始更新参数w;
[0037]
3)在外循环中根据φ=φ+∈(w-φ)更新参数φ,其中∈为元优化步长;
[0038]
4)得到参数φ为优化参数。
[0039]
进一步地,所述改进gru模型中更新门、重置门的激活函数为sigmod函数,用于控制信息流的比例;改进gru模型中隐藏门的激活函数为tanh函数,用于控制信息的添加与删除。
[0040]
进一步地,所述改进gru模型中,更新门的sigmoid激活函数表达式为:
[0041]z(t)
=σ(w
xzt
x(t)+w
hzth(t-1)
+bz)
[0042]
所述重置门的sigmoid激活函数表达式为:
[0043]r(t)
=σ(w
xrt
x
(t)
+w
hrth(t-1)
+br)
[0044]
所述隐藏门的tanh激活函数表达式为:
[0045][0046]
最终层的输出表达式为:
[0047][0048]
其中x
(t)
表示当前时间步的输入,h
(t-1)
表示上一时间步的隐状态,w
xz
、w
xr
、w
xg
表示更新门参数,是输入到隐藏状态的权重矩阵,用于转换当前输入x
(t)
,w
hz
、w
hr
、w
hg
表示更新门参数,用于转换上一隐状态h
(t-1)
,r
(t)
表示重置门的输出控制上一隐状态h
(t-1)
被遗忘的程度,z
(t)
表示更新门的输出,控制上一隐状态h
(t-1)
融入当前隐状态的程度,g
(t)
表示当前时间步的隐状态,σ表示sigmoid激活函数,用于更新门和重置门,tanh表示双曲正切激活函数,用于隐状态,bz、br、bg是偏置向量,表示逐元素乘法,得到的h
(t)
为最终输出值。
[0049]
进一步地,采用均方对数误差msle作为改进gru模型的损失函数,msle的表达式为:
[0050][0051]
式中,y
true
表示真实标签,y
pre
表示预测值,n表示训练样本总数。
[0052]
与现有技术相比,本发明具有以下有益效果:
[0053]
本发明运用元学习方法,在各地区水质监测数据集上训练获得一个通用的水质预测模型,可以很好解决现有预测方法的移植性差的问题,其中水质预测模型可以自动挖掘数据间的时空相关性,进行水质预测。只需要较少的地区数据对模型进行微调,就可以实现到新的地区的迁移与应用,既节省训练成本,又具有很强的适应性。
[0054]
本发明为村镇水质预警提供了一个基于数据驱动的新思路,为村镇地区的水质安全管理与决策提供有效的技术支撑,有助于实现水质预测工作的规模化与智能化。
附图说明
[0055]
图1为本发明的数据处理流程图。
[0056]
图2为本发明基于元学习的训练方法流程图。
[0057]
图3为本发明实施例中的改进gru模型结构示意图。
具体实施方式
[0058]
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0059]
如图1-2所示,本发明提出了一种基于改进元学习的水质预警方法,具体步骤如下:
[0060]
获取村镇河流的待测水质数据;
[0061]
对待测水质数据进行预处理及标准化处理,得到标准待测数据;
[0062]
将标准待测数据输入水质预测模型,得到水质预测结果;
[0063]
将水质预测结果与河流水质标准进行对比,若水质预测结果超过预设标准,则对水质情况给予预警;
[0064]
其中,水质预测模型的构建包括以下步骤:
[0065]
第一步,数据集构建阶段:
[0066]
1)获取一段时间内的村镇河流水质数据,包括ph值、cod(化学需氧量,chemical oxygen demand)、氨氮、温度、溶解氧、电导率、浊度等数据,将数据存放到数据库中记录存储。
[0067]
2)将数据放入数据清洗工具openrefine中进行预处理,对所有指标进行条件筛选,剔除数据中的异常值、重复值,修改格式错误的数据,利用线性插值法填补空白数据,提高数据质量,增强数据的可用性。
[0068]
3)将处理后的数据进行标准化处理,通过下式计算x
′
:
[0069][0070]
其中,x
′
表示标准化计算后某一时刻t的水质数据,包括ph、cod、氨氮、温度、溶解氧、电导率、浊度等,x
t
表示标准化前某一时刻t的水质数据,x
mean
表示标准化前某一时刻t的水质数据均值,x
std
表示标准化前某一时刻t的水质数据标准差。
[0071]
重复上述步骤1)、2)、3)记录不同时间段、不同村镇河流水质数据,其中不同村镇水质数据集分别记为d1、d2…dn
,总数据集为d。
[0072][0073]
其中表示t1时刻水质ph值,在数据集d中,包含每个t时刻的ph、cod、氨氮、温度、溶解氧、电导率、浊度等数据。
[0074]
基于将数据集d构建二维时序数据张量,并根据时间划分为若干小批量数据。其中,二维时序数据张量的纵坐标表示时序,横坐标表示水质指标。
[0075]
基于二维时序数据张量,进一步将数据集d根据固定时间步长ts、水质数据指标量n、数据量大小n划分为形如(n,ts,n)的三维张量x
all
,将数据集d根据固定时间步长ts、预测数量vn、数据量大小n划分为形如vn的一维张量y
all
,一维张量y
all
表示x
all
中每一组数据x对应的结果。
[0076]
vn为需要对未来水质预测值的数量,可以为一个或几个,为不同时段后的水质预测值。
[0077]
本实施例中,在根据时间步长ts采样时,采用滑动窗口采样法将所述总数据集划分为三维张量及一维张量。主要为:从时间序列的起点开始,提取长度为ts的第一个字序列,将窗口(时间步长ts)向后滑动固定步幅个时间点,提取下一子序列,重复该步骤,直到窗口滑到时间序列的终点,得到的所有子序列构成时间序列的划分样本,数量大小为n。使用该方法可以增强模型对时间序列时间模式的学习能力,获得更优的性能,在可获得数据较小时非常有用。
[0078]
将x
all
、y
all
划分为训练集x
train
、y
train
与测试集x
test
和y
test
。
[0079]
第二步,构建改进的gru算法模型,确定神经网络架构及参数,具体包括以下步骤:
[0080]
确定改进gru模型的初始网络结构、确定隐藏层、输出层层数,初始化训练步长ts,确定输出层张量大小。
[0081]
运用随机参数,设置改进gru模型输入层到隐藏层的连接矩阵、隐藏层到隐藏层的连接矩阵、隐藏层到输出层的连接矩阵。
[0082]
本实施例中,改进gru模型包括输入层,两层gru层,以及一层输出层。
[0083]
利用改进gru模型进行模型训练,确定其最优步长为ts。
[0084]
利用改进gru模型预测模型对某一水质指标数据的未来值进行预测。
[0085]
确定msle为误差评价标准,并通过计算误差从而改进网络参数。
[0086]
均方对数误差(mean squared logarithmic error,msle)是一种用于回归任务的损失函数。它的形式为:
[0087][0088]
其中,y
true
表示真实标签,y
pre
表示预测值,n表示训练样本总数。
[0089]
msle损失函数的特点是,它对预测值的相对误差更为敏感。因为对数函数可以放大较小的输入值,所以使用log(1+y)可以增强对小值预测的关注。而且它对目标值y=0时的预测进行了修正,即log(1+0)=0,避免了log 0的无定义情况,它的计算过程中包含对数运算,这使得损失值的范围较大,训练过程中损失的下降速度会更快,计算复杂度也很低。
[0090]
本实施例中,设置epoch数量为500,在迭代中更新网络参数至最优。
[0091]
设置改进gru模型的激活函数,其中更新门、重置门的激活函数为sigmod函数,输出范围为0-1,控制信息流的比例,隐藏门的激活函数为tanh函数,可以将值压缩到-1到1的区间,用于控制信息的添加与删除。如图3所示,为gru模型的结构示意图。
[0092]
tanh函数定义为:
[0093][0094]
记改进gru模型的输出为h
(t)
。
[0095]
更新门的sigmoid激活函数表达式为:
[0096]z(t)
=σ(w
xzt
x
(t)
+w
hzth(t-1)
+bz)
[0097]
重置门的sigmoid激活函数表达式为:
[0098]r(t)
=σ(w
xrt
x
(t)
+w
hrth(t-1)
+br)
[0099]
隐藏门的tanh激活函数表达式为:
[0100][0101]
最终层:
[0102][0103]
其中x
(t)
表示当前时间步的输入,h
(t-1)
表示上一时间步的隐状态,w
xz
、w
xr
、w
xg
表示更新门参数,是输入到隐藏状态的权重矩阵,用于转换当前输入x
(t)
,w
hz
、w
hr
、w
hg
表示更新门参数,用于转换上一隐状态h
(t-1)
,r
(t)
表示重置门的输出控制上一隐状态h
(t-1)
被遗忘的程度,z
(t)
表示更新门的输出,控制上一隐状态h
(t-1)
融入当前隐状态的程度,g
(t)
表示当前时间步的隐状态,σ表示sigmoid激活函数,用于更新门和重置门,tanh表示双曲正切激活函数,用于隐状态,bz、br、bg是偏置向量,表示逐元素乘法。得到的h
(t)
为最终输出值。
[0104]
将训练数据经过gru网络计算,可以输出水质预测值。
[0105]
第三步,运用改进的元学习方法训练数据。
[0106]
元学习有更好的泛化效果,可以对新任务快速学习和适应。
[0107]
元学习的目标可以表示为:
[0108][0109]
其中,将任务定义为数据集d和损失函数其中数据集d包含特征向量x和目标向量y,任务分布为表示在数据集d上使用ω训练的模型的性能损失函数,ω也表示为元知识。通过元训练,目的是使任务的损失函数越小越好,预测值也更接近目标值。
[0110]
改进元学习的算法分布为采用分层抽样方法,即先将总体分为互斥的层,然后在每个层内采取随机抽样方法抽取样本。
[0111]
本实施例中,将不同村镇的水质数据分为不同的层进行抽样。
[0112]
分层抽样可以提高样本的代表性,减小总体内各层差异造成的误差,层内运用随机抽样可以减少层内偏差。
[0113]
将元学习训练阶段用的m个任务集表示为:
[0114][0115]
其中,为训练数据,为验证数据;
[0116]
元学习的目的是为了优化神经网络参数,使其获得元知识,即最大化最大似然估计,可表达为:
[0117][0118]
其中ω
*
为最优化参数。
[0119]
运用改进reptile方法进行元学习包括以下步骤:
[0120]
1)初始化参数φ;
[0121]
2)确定外循环迭代次数n,并执行以下步骤:
[0122]
2-1)在总数据集d中,运用分层抽样抽取任务t;
[0123]
2-2)在任务t上执行第二步中的改进gru模型,并从φ开始更新参数w;
[0124]
3)在外循环中根据φ=φ+∈(w-φ)更新参数φ,其中∈为元优化步长;
[0125]
4)得到参数φ为优化参数。
[0126]
改进的reptile中,训练任务的网络可以更新多次,与maml相比减少了计算的复杂性,提高了运算性能,且在效果上和maml持平。
[0127]
改进的reptile算法在预测数据时具有比其他方法更好的性能和准确性。
[0128]
通过改进元学习算法得到的参数可直接用于对新的村镇水质进行预测,并具有很好的准确性。也可以再次经过改进gru算法训练后进行少量预测,以在当地获得更好的预测性能。
[0129]
运用改进的reptile方法结合改进gru算法对村镇水质数据进行预测,具有更好的可移植性,对不同村镇的预测效果都较优,解决了村镇水质运用神经网络训练数据量要求大、预测困难的特点,使该方法在村镇进行水质预测有更好的实用性。
[0130]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
技术特征:
1.一种基于改进元学习的水质预警方法,其特征在于,包括以下步骤:获取村镇河流的待测水质数据;对所述待测水质数据进行预处理及标准化处理,得到标准待测数据;将所述标准待测数据输入水质预测模型,得到水质预测结果;将所述水质预测结果与河流水质标准进行对比,若水质预测结果超过预设标准,则对水质情况给予预警;其中,所述水质预测模型的构建包括以下步骤:s1、获取预设时间段内的村镇河流水质数据;s2、对所述水质数据进行预处理;s3、对处理后的数据进行标准化处理;s4、针对不同时间段、不同村镇河流,重复执行步骤s1-s3,获取多个数据集,不同村镇的水质数据集分别记为d1、d2…
d
n
,总数据集为d;s5、将所述总数据集划分为训练集、测试集与验证集;s6、基于所述总数据集,构建多维时序数据张量,基于多维时序数据张量,分别构建元训练集和元测试集;s7、构建改进gru模型,确定神经网络架构及参数,基于所述元训练集及元测试集,通过改进reptile算法进行元训练,并保存训练得到的最优参数;s8、基于步骤s7得到的最优参数及步骤s5得到的训练集、测试集与验证集,训练并优化所述改进gru模型,得到水质预测模型。2.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,步骤s1中,所述水质数据包括ph值、化学需氧量、氨氮、温度、溶解氧、电导率及浊度数据。3.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,步骤s2中,对所述水质数据进行预处理包括以下步骤:剔除数据中的异常值及重复值;修改格式错误的数据;利用线性插值法填补空白数据。4.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,步骤s3中,所述标准化处理的计算公式为:式中,x
′
表示标准化计算后某一时刻t的水质数据,x
t
表示标准化前某一时刻t的水质数据,x
mean
表示标准化前某一时刻t的水质数据均值,x
std
表示标准化前某一时刻t的水质数据标准差。5.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,步骤s6中,针对所述总数据集,根据固定时间步长t
s
、水质数据指标量n及数据量大小n划分为三维张量x
all
,根据固定时间步长t
s
、预测数量v
n
、数据量大小n划分为一维张量y
all
。6.根据权利要求5所述的一种基于改进元学习的水质预警方法,其特征在于,步骤s6中,根据固定时间步长t
s
,采用滑动窗口采样法将所述总数据集划分为三维张量及一维张
量。7.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,通过改进reptile算法进行元训练包括以下步骤:1)初始化参数φ;2)确定外循环迭代次数n,并执行以下步骤:2-1)在总数据集d中,运用分层抽样抽取任务t;2-2)在任务t上执行所述改进gru模型,并从φ开始更新参数w;3)在外循环中根据φ=φ+∈(w-φ)更新参数φ,其中∈为元优化步长;4)得到参数φ为优化参数。8.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,所述改进gru模型中更新门、重置门的激活函数为sigmod函数,用于控制信息流的比例;改进gru模型中隐藏门的激活函数为tanh函数,用于控制信息的添加与删除。9.根据权利要求8所述的一种基于改进元学习的水质预警方法,其特征在于,所述改进gru模型中,更新门的sigmoid激活函数表达式为:z
(t)
=σ(w
xzt
x
(t)
+w
hzt
h
(t-1)
+b
z
)所述重置门的sigmoid激活函数表达式为:r
(t)
=σ(w
xrt
x
(t)+
w
hrt
h
(t-1)
+b
r
)所述隐藏门的tanh激活函数表达式为:最终层的输出表达式为:其中x
(t)
表示当前时间步的输入,h
(t-1)
表示上一时间步的隐状态,w
xz
、w
xr
、w
xg
表示更新门参数,是输入到隐藏状态的权重矩阵,用于转换当前输入x
(t)
,w
kz
、w
hr
、w
hg
表示更新门参数,用于转换上一隐状态h
(t-1)
,r
(t)
表示重置门的输出控制上一隐状态h
(t-1)
被遗忘的程度,z
(t)
表示更新门的输出,控制上一隐状态h
(t-1)
融入当前隐状态的程度,g
(t)
表示当前时间步的隐状态,σ表示sigmoid激活函数,用于更新门和重置门,tanh表示双曲正切激活函数,用于隐状态,b
z
、b
r
、b
g
是偏置向量,表示逐元素乘法,得到的h
(t)
为最终输出值。10.根据权利要求1所述的一种基于改进元学习的水质预警方法,其特征在于,采用均方对数误差msle作为改进gru模型的损失函数,msle的表达式为:式中,y
true
表示真实标签,y
pre
表示预测值,n表示训练样本总数。
技术总结
本发明涉及一种基于改进元学习的水质预警方法,通过运用元学习方法,在各地区水质监测数据集上训练获得一个通用的水质预测模型,水质预测模型的构建包括以下步骤:针对不同时间段、不同村镇河流,获取预设时间段内的村镇河流水质数据,对水质数据进行预处理及标准化处理,获取多个数据集;基于改进的元学习方法对数据集进行训练,运用改进的GRU模型进行时序预测,得到水质预测模型。与现有技术相比,本发明具有精度高、预测速度快、模型可移植性好、训练成本低等优点。此外,该方法还可以适用于不同地区、不同类型的水质预测,极大地提高了村镇水质管理和环境保护的效率。村镇水质管理和环境保护的效率。村镇水质管理和环境保护的效率。
技术研发人员:杨学军 商铤洲 林开颜 吴军辉 周全 祝华军 陈杰 司慧萍
受保护的技术使用者:同济大学
技术研发日:2023.05.18
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/