一种小波分析耦合lstm神经网络的水质预测方法
技术领域
1.本发明涉及水质预测技术领域,具体涉及一种小波分析耦合lstm神经网络的水质预测方法。
背景技术:
2.水环境的质量与人类的生产生活息息相关。在当今社会,伴随着经济的发展,水环境污染已成为了一个亟待解决的重要问题。短期水质的准确预测在水环境管理中起到十分关键的作用,它有助于对诸如生产事故、违规排放、自然灾害等水质突发事件的应对。
3.目前用于水质短期预测的模型主要分为物理驱动的模型和数据驱动的模型。物理驱动的模型的目标是通过确定的机理公式来描绘水质变化,然而在水质模拟计算中,许多反应机理无法用确定的公式表达,并且,物理驱动的模型需要大量参数,这使得在预测目标较多时建模过程较为繁琐。数据驱动的模型的思路是通过大量的数据和大量简单的计算,总结出规律,然后用于对现实世界的模拟。其中人工神经网络算法是水质预测的一个研究热点,由于它能简化水质指标之间的复杂响应并给出精确的预测而被广泛应用。然而,目前使用的算法进行预测时多把污染因子割裂开来,未考虑污染因子时间上的关联,使得数据中所蕴含的时频上的信息无法得到有效利用。另外,由于水质数据的非线性和非平稳的特征,神经网络可能在此类富含噪声的数据上的表现受限。
技术实现要素:
4.本技术提供一种小波分析耦合lstm神经网络的水质预测方法,旨在解决现有水质预测方法在非线性和非平稳的数据上表现受限的问题。
5.根据第一方面,一种实施例中提供一种小波分析耦合lstm神经网络的水质预测方法,包括:
6.获取待预测水体的水质参数的监测数据,其中水质参数包括溶解氧、高锰酸盐指数、氨氮、总磷、总氮、浊度、水温、电导率和ph值中的一种或多种;
7.对所述监测数据进行小波分解以得到所述监测数据的近似分量和细节分量;
8.将所述监测数据的近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果。
9.一种实施例中,所述lstm神经网络通过以下方式进行训练:
10.获取所述待预测水体的水质参数的历史数据;
11.对所述历史数据进行小波分解以得到所述历史数据的近似分量和细节分量;
12.将所述历史数据的近似分量和细节分量作为训练数据,按预设的滑动窗口数将训练数据划分为训练集和验证集,使用所述训练集,根据预设的第一损失函数进行训练以得到所述lstm神经网络,其中每次进行训练后使用所述验证集,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数,其中m为预设的提前停止次数。
13.一种实施例中,所述lstm神经网络有多个,分别具有不同的时间分辨率,用于预测未来不同时间长度的水质参数;
14.所述将所述监测数据的近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果,包括:若所预测的时间长度等于其中一个所述lstm神经网络的时间分辨率,则使用该lstm神经网络进行预测以得到水质参数的预测结果;若所预测的时间长度为其中一个所述lstm神经网络的时间分辨率的n倍,则利用该lstm神经网络连续进行n次预测以得到水质参数的预测结果,其中n为大于1的整数。
15.一种实施例中,所述lstm神经网络通过以下方式进行训练:
16.获取所述待预测水体的水质参数的历史数据;
17.对所述历史数据进行重采样,以得到不同时间分辨率的子序列;
18.分别对各子序列进行小波分解以得到各子序列的近似分量和细节分量;
19.分别将各子序列的近似分量和细节分量作为训练数据,按预设的滑动窗口数将训练数据划分为训练集和验证集,使用所述训练集,根据预设的第一损失函数进行训练以得到多个具有不同的时间分辨率的所述lstm神经网络,其中每次进行训练后使用所述验证集,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数,其中m为预设的提前停止次数。
20.一种实施例中,在进行lstm神经网络的训练时,每经过预定次数的训练后,使用贝叶斯优化算法更新lstm神经网络的超参数,其中贝叶斯优化算法的损失函数与所述第二损失函数相同。
21.一种实施例中,所述输入变量还包括气象数据和上游水体的水质参数的监测数据,其中气象数据包括气温和/或降水量;所述训练数据还包括气象数据的历史数据和上游水体的水质参数的历史数据。
22.一种实施例中,当待预测水体为河流时,对于t时刻的待预测水体的水质参数的监测数据,对应地使用t-δt时刻的上游水体的水质参数的监测数据作为输入变量,对于t时刻的待预测水体的水质参数的历史数据,对应地使用t-δt时刻的上游水体的水质参数的历史数据作为训练数据,其中δt依据河流的流速以及上游水体与待预测水体的距离设置。
23.一种实施例中,在获取所述待预测水体的水质参数的历史数据后,利用所述历史数据进行相关性分析,选择与所述待预测水体的相关性大于预设阈值的水质参数用于进行训练。
24.一种实施例中,所述输入变量和所述训练数据被归一化为0到1之间的无量纲数值,所述水质预测方法还包括:在得到水质参数的预测结果后,对其使用反归一化法进行数据还原。
25.根据第二方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述第一方面所述的水质预测方法。
26.依据上述实施例的小波分析耦合lstm神经网络的水质预测方法和计算机可读存储介质,对获取的待预测水体的水质参数的监测数据进行分解,得到近似分量和细节分量,将近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果。由于对水质参数的监测数据进行小波分解,把时间序列分解为一系列低频和高频分量,产生了新的特征,这些特征能够表达水质参数的监测数据时频上的信息,从而能
更好地处理数据的非平稳部分,从富含噪声的数据中提取信息,提高了预测的准确性。同时lstm神经网络作为一种特殊的循环神经网络,可以有效地记忆过去输入的信息,因此对于时间序列数据有很好的效果。
附图说明
27.图1为一种实施例的小波分析耦合lstm神经网络的水质预测方法的流程图;
28.图2为一种实施例中训练过程和预测过程中的数据流向的示意图;
29.图3为一种实施例中lstm神经网络的训练流程图;
30.图4为另一种实施例中lstm神经网络的训练流程图。
具体实施方式
31.下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本技术能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本技术相关的一些操作并没有在说明书中显示或者描述,这是为了避免本技术的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
32.另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
33.本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本技术所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
34.请参考图1,一种实施例中小波分析耦合lstm神经网络的水质预测方法包括步骤110~130,下面具体说明。
35.步骤110:获取预测所需数据。预测所需数据中至少包括待预测水体的水质参数的监测数据,其中水质参数包括溶解氧、高锰酸盐指数、氨氮、总磷、总氮、浊度、水温、电导率和ph值中的一种或多种。在有的实施例中,如图2所示,还可以将待预测水体的气象数据及其上游水体的水质参数的监测数据一起纳入作为预测所需数据,这样一来就考虑了各污染因子之间、流域上下游之间的关联,和气象水文要素对水质的影响,提高了模型的可解释性。当待预测水体为河流时,需要采用具有一定时间的滞后的上游水体的监测数据,即应当使用t-δt时刻的上游水体的水质参数的监测数据,与当前t时刻的待预测水体的水质参数的监测数据和气象数据一起用于预测,δt依据河流的流速以及上游水体与待预测水体的距离设置。气象数据包括气温和/或降水量。
36.一种实施例中,在获取到上述数据后还可以对数据进行清洗。对个别格式不统一的数据进行修复,例如确保水质浓度数据是数值型等。对于缺失值较少(一般为10%)的数据,可以挑选出并删除异常数据,然后用插值法补齐缺失值和被删除的数据,异常数据例如
为数值小于0但理论上该水质参数不可能小于0的数据等。
37.步骤120:对待预测水体的水质参数的监测数据进行小波分解以得到监测数据的近似分量和细节分量。
38.使用离散小波变换处理待预测水体的水质参数的监测数据,生成新的特征。在离散小波变换中,小波函数把时间序列分解为一系列近似分量和细节分量,以表达出序列的非平稳特征。设小波分解的阶数为n阶(n=1,2,3,
…
,k,
…
),近似分量为ak,细节分量为dk,原序列为s,则s可以分解为第一阶的近似分量和细节分量,即然后近似分量a1可继续分解为第二阶的a2和d2,即以此类推。分解n阶之后可得:以此类推。分解n阶之后可得:小波分解的阶数视原始数据的长度和分布而定。小波函数可以采用db小波族。使用小波分析对待预测水体的水质参数的监测数据进行处理后,产生了新的特征,这些特征表达了这些监测数据时频上的信息,从而使得lstm神经网络能更好地处理数据的非平稳部分,提高了预测的准确性。
39.步骤130:至少将监测数据的近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果。
40.本技术使用lstm(long short-term memory,长短时记忆)神经网络模型来进行水质预测,这是一种特殊的循环神经网络。循环神经网络的状态不仅取决于当前的输入,还取决于上一时刻的输入,这使得它能够处理序列数据。而长短时记忆神经网络增加了遗忘门,有选择地决定信息是否通过,解决了传统神经网络的梯度爆炸和梯度消失现象,拥有相对较长的短期记忆能力,因此对于时间序列数据有很好的效果,lstm神经网络的上述性能使其适用于进行水质预测。
41.步骤120中由小波分解得到的分量an、dn、d
n-1
…
d1可单独作为lstm神经网络的输入变量,也可与步骤110中所述的气象数据、上游水体的水质参数的监测数据一起作为输入变量,输入到lstm神经网络中,从lstm神经网络的输出中得到待预测水体的水质参数的预测结果,具体输入哪些数据,由模型训练过程使用的数据决定。在展示预测结果的同时,可以一同展示过去的预测结果与当前值的误差。
42.下面对lstm神经网络的训练过程进行说明。请参考图3,一种实施例中lstm神经网络的训练流程包括步骤210~230,下面具体说明。
43.步骤210:获取训练所需数据。训练所需数据中至少包括待预测水体的水质参数的历史数据。当将待预测水体的气象数据及其上游水体的水质参数的监测数据一起用于进行预测时,也需将待预测水体的气象数据的历史数据及其上游水体的水质参数的历史数据一起用于训练,如图2所示。同样的,当待预测水体为河流时,需要采用具有一定时间的滞后的上游水体的历史数据,即应当使用t-δt时刻的上游水体的水质参数的历史数据,与t时刻的待预测水体的水质参数的历史数据和气象数据一起组成一组数据用于进行训练,δt依据河流的流速以及上游水体与待预测水体的距离设置。
44.同样的,对所获取的训练所需数据也可以进行数据清洗。一种实施例中,在获取到待预测水体的水质参数的历史数据后,还可以对获取到的历史数据进行可视化展示,利用这些历史数据进行相关性分析,选择与待预测水体的相关性较大的水质参数用于进行训练,例如选择相关性大于预设阈值的水质参数用于进行训练。
45.步骤220:对待预测水体的水质参数的历史数据进行小波分解以得到该历史数据的近似分量和细节分量。此处的处理与步骤120相同。
46.步骤230:至少将历史数据的近似分量和细节分量作为训练数据进行训练,以得到训练好的lstm神经网络。
47.步骤220中由小波分解得到的近似分量和细节分量可单独作为训练数据,当使用待预测水体的气象数据及其上游水体的水质参数的监测数据一起用于进行预测时,则需将待预测水体的气象数据的历史数据及其上游水体的水质参数的历史数据一同用作训练数据,预测时lstm神经网络的输入数据的种类与训练时相同。按预设的滑动窗口数将训练数据划分为训练集和验证集,可以理解,训练集和验证集中均包含多个训练样本,且两者所包含的训练样本不同。为了使各个变量的影响权重一致,提高训练效率,可以将训练数据都归一化为0到1之间的无量纲数值,那么相应地,进行预测时lstm神经网络的输入变量也应被归一化为0到1之间的无量纲数值,在步骤130中得到水质参数的预测结果后,需要对其使用反归一化法进行数据还原,以得到实际值。
48.可以采用滑动时间窗口法把数据重塑为神经网络所接受的标准输入格式,即“样本、特征、时间步”的三维张量格式。其中样本为一段时间窗口,表示使用多少个样本序列对lstm神经网络进行训练,每个样本序列有“特征”和“时间步”两个维度;特征为输入lstm神经网络的变量,可以包括历史数据的近似分量和细节分量、上游水体的水质参数和气象数据的历史数据;时间步长为用于预测未来数据而回溯过去一段时间的长度,即输入lstm神经网络的序列的长度。
49.使用训练集,将其中的训练样本输入参数经初始化的lstm神经网络中,根据预设的第一损失函数进行训练,第一损失函数可以为mae(mean absolute error,平均绝对误差)等,优化器选用adam优化器,使用xavier法对权重进行初始化从而降低梯度消失的可能性。
50.在训练过程中可以使用早停法防止过拟合,早停法即指定早停轮数,在该轮数内若连续一定次数验证集的性能指标不提升就停止迭代。每次进行训练后使用验证集进行验证,将其中的训练样本输入lstm神经网络中,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数(即早停轮数),其中m为预设的提前停止次数。例如指定早停轮数为300次,提前停止次数为20次,则若连续20次使用验证集得到的性能指标没有提升则提前结束训练,并将最优的结果保存下来,否则将训练300次。性能指标可以是r2(确定系数)、rmse(root mean square error,均方根误差)和mape(mean absolute percentage error,平均绝对百分比误差)等,相应的第二损失函数可以是r2、rmse和mape等的计算函数。性能指标没有提升,是指例如rmse、mape不再下降等。停止训练后,将性能指标最优的参数作为lstm神经网络的参数,得到训练好的lstm神经网络。
51.一种实施例中,对lstm神经网络的超参数可以进行贝叶斯优化。超参数用于定义lstm神经网络的结构,这些参数无法通过学习得到,一般只能在建模之前设定好,超参数的选择对lstm神经网络的最终效果有极大的影响。传统的优化方法,如网格搜索和随机搜索等可能很难取得好的效果并且耗费时间。贝叶斯优化能够高效地搜索尽可能多的超参数空间,可以使用贝叶斯优化来对不连续、不可微分及计算费时的函数或者模型实施优化。进行
优化前需要定义一个损失函数,并且给超参数提供一个域空间以设定范围。贝叶斯优化充分利用了先前的超参数组合信息,利用损失函数估算超参数的后验分布,然后根据后验分布选择下一个超参数组合用于训练。一种实施例中,贝叶斯优化的损失函数可以与第二损失函数相同,超参数的域空间如下:
52.隐含层节点数:8-128之间的整数;
53.滑动窗口数:4-12之间的整数;
54.一次训练所取样本数:16-512之间的整数;
55.学习率:呈指数分布的0.0001-0.01之间的数值。
56.设定每经过预定次数的训练后,使用贝叶斯优化算法更新lstm神经网络的超参数,并在训练过程中存储不同超参数组合的基本信息,方便后续调用查看结果。所设定的预定次数可以是100次。
57.待训练结束后,保存最优的参数组合及对应的损失函数的损失和模型,可以设置自动发送邮件到指定邮箱以提示相关人员模型训练的结束。
58.水质预测通常是实现对未来一段时间水质参数的预测,当需要预测较长一段时间后的水质参数时,可以进行多步预测,然而神经网络虽然可以实现多步预测,但是随着所预测的时间长度的增加,其精度会下降。因此,本技术一种实施例中利用水质参数的日周期变化,采用了定时预测的方法,把训练所用的数据重采样为具有不同时间分辨率的子序列,分别用来训练lstm神经网络,以得出多个具有不同时间分辨率的lstm神经网络,用于预测未来不同时间长度的水质参数。这里的时间分辨率对于子序列来说是指相邻两个样本数据之间的时间间隔,对于lstm神经网络来说是指其能预测未来多长时间的水质参数。例如可以将训练所用的数据重采样为时间分辨率分别为4小时、12小时和24小时的子序列,那么分别用它们进行训练可以得到时间分辨率分别为4小时、12小时和24小时的lstm神经网络,其中时间分辨率为4小时的lstm神经网络可以预测4小时后的水质参数,时间分辨率为12小时的lstm神经网络可以预测12小时后的水质参数,时间分辨率为24小时的lstm神经网络可以预测24小时后的水质参数。
59.下面对多个lstm神经网络的训练流程进行说明,请参考图4,一种实施例中该流程包括步骤310~340,下面具体说明。
60.步骤310:获取训练所需数据。与步骤210相同,训练所需数据中至少包括待预测水体的水质参数的历史数据。当将待预测水体的气象数据及其上游水体的水质参数的监测数据一起用于进行预测时,也需将待预测水体的气象数据的历史数据及其上游水体的水质参数的历史数据一起用于训练。当待预测水体为河流时,需要采用具有一定时间的滞后的上游水体的历史数据,即应当使用t-δt时刻的上游水体的水质参数的历史数据,与t时刻的待预测水体的水质参数的历史数据和气象数据一起组成一组数据用于进行训练,δt依据河流的流速以及上游水体与待预测水体的距离设置。
61.同样的,这里对所获取的训练所需数据也可以进行数据清洗,以及利用获取到的待预测水体的水质参数的历史数据进行相关性分析,选择与待预测水体的相关性较大的水质参数用于进行训练,例如选择相关性大于预设阈值的水质参数用于进行训练。
62.步骤320:对步骤310获取的训练所需数据进行重采样,以得到不同时间分辨率的子序列。例如可以重采样为时间分辨率分别为4小时、12小时和24小时的子序列,即分别以0
时,4时,8时,12时,16时,20时为时间基准产生样本数据。
63.步骤330:分别对各子序列中待预测水体的水质参数的历史数据进行小波分解以得到各子序列的近似分量和细节分量。此处的处理与步骤220相同。
64.步骤340:对于各子序列,至少将其中的近似分量和细节分量作为训练数据,然后分别用于进行训练,从而得到多个具有不同的时间分辨率的lstm神经网络。
65.步骤330中由小波分解得到的近似分量和细节分量可单独作为训练数据,当使用待预测水体的气象数据及其上游水体的水质参数的监测数据一起用于进行预测时,需将待预测水体的气象数据的历史数据及其上游水体的水质参数的历史数据一同用作训练数据,预测时lstm神经网络的输入数据的种类与训练时相同,由于有多个子序列,因此这里有多组训练数据,分别用于训练不同的lstm神经网络。按预设的滑动窗口数将各训练数据划分为训练集和验证集,可以理解,训练集和验证集中均包含多个训练样本,且两者所包含的训练样本不同。为了使各个变量的影响权重一致,提高训练效率,可以将训练数据都归一化为0到1之间的无量纲数值,那么相应地,进行预测时lstm神经网络的输入变量也应被归一化为0到1之间的无量纲数值,在步骤130中得到水质参数的预测结果后,需要对其使用反归一化法进行数据还原,以得到实际值。
66.可以采用滑动时间窗口法把数据重塑为神经网络所接受的标准输入格式,即“样本、特征、时间步”的三维张量格式。其中样本为一段时间窗口,表示使用多少个样本序列对lstm神经网络进行训练,每个样本序列有“特征”和“时间步”两个维度;特征为输入lstm神经网络的变量,可以包括历史数据的近似分量和细节分量、上游水体的水质参数和气象数据的历史数据;时间步长为用于预测未来数据而回溯过去一段时间的长度,即输入lstm神经网络的序列的长度。
67.使用训练集,将其中的训练样本输入参数经初始化的lstm神经网络中,根据预设的第一损失函数进行训练,第一损失函数可以为mae(mean absolute error,平均绝对误差)等,优化器选用adam优化器,使用xavier法对权重进行初始化从而降低梯度消失的可能性。
68.同样的,在训练过程中可以使用早停法防止过拟合。每次进行训练后使用验证集进行验证,将其中的训练样本输入lstm神经网络中,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数(即早停轮数),其中m为预设的提前停止次数。例如指定早停轮数为300次,提前停止次数为20次,则若连续20次使用验证集得到的性能指标没有提升则提前结束训练,并将最优的结果保存下来,否则将训练300次。性能指标可以是r2(确定系数)、rmse(root mean square error,均方根误差)和mape(mean absolute percentage error,平均绝对百分比误差)等,相应的第二损失函数可以是r2、rmse和mape等的计算函数。性能指标没有提升,是指例如rmse、mape不再下降等。停止训练后,将性能指标最优的参数作为lstm神经网络的参数,得到训练好的lstm神经网络。
69.一种实施例中,对lstm神经网络的超参数可以进行贝叶斯优化。贝叶斯优化能够高效地搜索尽可能多的超参数空间,可以使用贝叶斯优化来对不连续、不可微分及计算费时的函数或者模型实施优化。进行优化前需要定义一个损失函数,并且给超参数提供一个域空间以设定范围。贝叶斯优化充分利用了先前的超参数组合信息,利用损失函数估算超
参数的后验分布,然后根据后验分布选择下一个超参数组合用于训练。一种实施例中,贝叶斯优化的损失函数可以与第二损失函数相同,超参数的域空间如下:
70.隐含层节点数:8-128之间的整数;
71.滑动窗口数:4-12之间的整数;
72.一次训练所取样本数:16-512之间的整数;
73.学习率:呈指数分布的0.0001-0.01之间的数值。
74.设定每经过预定次数的训练后,使用贝叶斯优化算法更新lstm神经网络的超参数,并在训练过程中存储不同超参数组合的基本信息,方便后续调用查看结果。所设定的预定次数可以是100次。
75.经过上述方式训练得到了多个具有不同分辨率的lstm神经网络,在步骤130中,可视所要预测的时间长度选择合适的lstm神经网络进行预测,一种可选的方式是:若所预测的时间长度等于其中一个lstm神经网络的时间分辨率,则使用该lstm神经网络进行预测以得到水质参数的预测结果;若所预测的时间长度为其中一个lstm神经网络的时间分辨率的n倍,则利用该lstm神经网络连续进行n次预测以得到水质参数的预测结果,其中n为大于1的整数。例如,假设训练得到时间分辨率分别为4小时、12小时和24小时的lstm神经网络,当前时刻是8时,那么要预测12时的水质参数,则采用时间分辨率为4小时的lstm神经网络进行1次预测;而要预测16时的水质参数,则采用时间分辨率为4小时的lstm神经网络连续进行2次预测;预测20时的水质参数,则采用时间分辨率为12小时的lstm神经网络连续进行1次预测。通过这种方式进行预测,其效果大大好于采用单一lstm神经网络进行多步预测。
76.依据上述实施例的小波分析耦合lstm神经网络的水质预测方法,由于对水质参数的监测数据进行小波分解,把时间序列分解为一系列低频和高频分量,产生了新的特征,这些特征能够表达水质参数的监测数据时频上的信息,从而能更好地处理数据的非平稳部分,从富含噪声的数据中提取信息,提高了预测的准确性。同时lstm神经网络作为一种特殊的循环神经网络,可以有效地记忆过去输入的信息,因此对于时间序列数据有很好的效果。在有的实施例中,还将待预测水体的气象数据和上游水体的水质参数的监测数据一同输入lstm神经网络中进行预测,从而考虑了流域上下游之间的关联,和气象水文要素对水质的影响,提高了模型的可解释性。在训练过程中可以采用早停法,减少了模型过拟合的可能,加快训练速度的同时保证了模型的准确率。在有的实施例中,还可以使用贝叶斯优化算法对lstm神经网络的超参数进行调整,相比之手动调参、传统的网格搜索和随机搜索大大提高了效率。在有的实施例中,可以把训练所用的数据重采样为具有不同时间分辨率的子序列,分别用于训练lstm神经网络,得到多个具有不同时间分辨率的lstm神经网络,用于预测未来不同时间长度的水质参数,从而有效利用了水质参数日周期变化的特征,避免了采用单一lstm神经网络进行多步预测时,精度随着所预测的时间长度的增加迅速下降的问题。
77.本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。
78.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。另外,如本领域技术人员所理解的,本文的原理可以反映在计算机可读存储介质上的计
算机程序产品中,该可读存储介质预装有计算机可读程序代码。任何有形的、非暂时性的计算机可读存储介质皆可被使用,包括磁存储设备(硬盘、软盘等)、光学存储设备(cd至rom、dvd、blu ray盘等)、闪存和/或诸如此类。这些计算机程序指令可被加载到通用计算机、专用计算机或其他可编程数据处理设备上以形成机器,使得这些在计算机上或其他可编程数据处理装置上执行的指令可以生成实现指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理设备以特定的方式运行,这样存储在计算机可读存储器中的指令就可以形成一件制造品,包括实现指定功能的实现装置。计算机程序指令也可以加载到计算机或其他可编程数据处理设备上,从而在计算机或其他可编程设备上执行一系列操作步骤以产生一个计算机实现的进程,使得在计算机或其他可编程设备上执行的指令可以提供用于实现指定功能的步骤。
79.虽然在各种实施例中已经示出了本文的原理,但是许多特别适用于特定环境和操作要求的结构、布置、比例、元件、材料和部件的修改可以在不脱离本披露的原则和范围内使用。以上修改和其他改变或修正将被包含在本文的范围之内。
80.前述具体说明已参照各种实施例进行了描述。然而,本领域技术人员将认识到,可以在不脱离本披露的范围的情况下进行各种修正和改变。因此,对于本披露的考虑将是说明性的而非限制性的意义上的,并且所有这些修改都将被包含在其范围内。同样,有关于各种实施例的优点、其他优点和问题的解决方案已如上所述。然而,益处、优点、问题的解决方案以及任何能产生这些的要素,或使其变得更明确的解决方案都不应被解释为关键的、必需的或必要的。本文中所用的术语“包括”和其任何其他变体,皆属于非排他性包含,这样包括要素列表的过程、方法、文章或设备不仅包括这些要素,还包括未明确列出的或不属于该过程、方法、系统、文章或设备的其他要素。此外,本文中所使用的术语“耦合”和其任何其他变体都是指物理连接、电连接、磁连接、光连接、通信连接、功能连接和/或任何其他连接。
81.具有本领域技术的人将认识到,在不脱离本发明的基本原理的情况下,可以对上述实施例的细节进行许多改变。因此,本发明的范围应仅由权利要求确定。
技术特征:
1.一种小波分析耦合lstm神经网络的水质预测方法,其特征在于,包括:获取待预测水体的水质参数的监测数据,其中水质参数包括溶解氧、高锰酸盐指数、氨氮、总磷、总氮、浊度、水温、电导率和ph值中的一种或多种;对所述监测数据进行小波分解以得到所述监测数据的近似分量和细节分量;将所述监测数据的近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果。2.如权利要求1所述的水质预测方法,其特征在于,所述lstm神经网络通过以下方式进行训练:获取所述待预测水体的水质参数的历史数据;对所述历史数据进行小波分解以得到所述历史数据的近似分量和细节分量;将所述历史数据的近似分量和细节分量作为训练数据,按预设的滑动窗口数将训练数据划分为训练集和验证集,使用所述训练集,根据预设的第一损失函数进行训练以得到所述lstm神经网络,其中每次进行训练后使用所述验证集,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数,其中m为预设的提前停止次数。3.如权利要求1所述的水质预测方法,其特征在于,所述lstm神经网络有多个,分别具有不同的时间分辨率,用于预测未来不同时间长度的水质参数;所述将所述监测数据的近似分量和细节分量作为输入变量,输入预先训练好的lstm神经网络中以得到水质参数的预测结果,包括:若所预测的时间长度等于其中一个所述lstm神经网络的时间分辨率,则使用该lstm神经网络进行预测以得到水质参数的预测结果;若所预测的时间长度为其中一个所述lstm神经网络的时间分辨率的n倍,则利用该lstm神经网络连续进行n次预测以得到水质参数的预测结果,其中n为大于1的整数。4.如权利要求3所述的水质预测方法,其特征在于,所述lstm神经网络通过以下方式进行训练:获取所述待预测水体的水质参数的历史数据;对所述历史数据进行重采样,以得到不同时间分辨率的子序列;分别对各子序列进行小波分解以得到各子序列的近似分量和细节分量;分别将各子序列的近似分量和细节分量作为训练数据,按预设的滑动窗口数将训练数据划分为训练集和验证集,使用所述训练集,根据预设的第一损失函数进行训练以得到多个具有不同的时间分辨率的所述lstm神经网络,其中每次进行训练后使用所述验证集,根据预设的第二损失函数计算lstm神经网络的性能指标,当性能指标连续m次没有提升时则停止训练,否则继续进行训练直至达到预设次数,其中m为预设的提前停止次数。5.如权利要求2或4所述的水质预测方法,其特征在于,在进行lstm神经网络的训练时,每经过预定次数的训练后,使用贝叶斯优化算法更新lstm神经网络的超参数,其中贝叶斯优化算法的损失函数与所述第二损失函数相同。6.如权利要求2或4所述的水质预测方法,其特征在于,所述输入变量还包括气象数据和上游水体的水质参数的监测数据,其中气象数据包括气温和/或降水量;所述训练数据还包括气象数据的历史数据和上游水体的水质参数的历史数据。7.如权利要求6所述的水质预测方法,其特征在于,当待预测水体为河流时,对于t时刻
的待预测水体的水质参数的监测数据,对应地使用t-δt时刻的上游水体的水质参数的监测数据作为输入变量,对于t时刻的待预测水体的水质参数的历史数据,对应地使用t-δt时刻的上游水体的水质参数的历史数据作为训练数据,其中δt依据河流的流速以及上游水体与待预测水体的距离设置。8.如权利要求2或4所述的水质预测方法,其特征在于,在获取所述待预测水体的水质参数的历史数据后,利用所述历史数据进行相关性分析,选择与所述待预测水体的相关性大于预设阈值的水质参数用于进行训练。9.如权利要求2或4所述的水质预测方法,其特征在于,所述输入变量和所述训练数据被归一化为0到1之间的无量纲数值,所述水质预测方法还包括:在得到水质参数的预测结果后,对其使用反归一化法进行数据还原。10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1至9中任一项所述的水质预测方法。
技术总结
一种小波分析耦合LSTM神经网络的水质预测方法,包括:获取待预测水体的水质参数的监测数据,对监测数据进行小波分解以得到监测数据的近似分量和细节分量;将监测数据的近似分量和细节分量作为输入变量,输入预先训练好的LSTM神经网络中以得到水质参数的预测结果。由于对水质参数的监测数据进行小波分解,把时间序列分解为一系列低频和高频分量,产生了新的特征,这些特征能够表达水质参数的监测数据时频上的信息,从而能更好地处理数据的非平稳部分,从富含噪声的数据中提取信息,提高了预测的准确性。同时LSTM神经网络作为一种特殊的循环神经网络,可以有效地记忆过去输入的信息,因此对于时间序列数据有很好的效果。因此对于时间序列数据有很好的效果。因此对于时间序列数据有很好的效果。
技术研发人员:周国龙 王恒俭 马占军 梁泽华 卢诚 兰德顺 刘术军
受保护的技术使用者:深圳博沃智慧科技有限公司
技术研发日:2021.12.08
技术公布日:2022/3/8