一种基于混合神经网络的河流总氮浓度预测方法
技术领域
本发明属于计算机科学计算领域,涉及一种基于混合神经网络的河流总氮浓度预测方法。
技术背景
随着我国经济的快速发展和科技的高速进步,人们生产和生活范围越来越广泛,生活污水和化肥、食物等工业废水以及农田排水都含有大量的氮、磷及其他无机盐类使河流的营养物质大幅增加,河流水环境可能产生水体富营养化的现象。水体富营养化其实质是由于营养盐的输入输出失去平衡,从而导致水生态物种分布失衡,单一物种疯涨,破坏了系统的物质和能量流动,使整个生态系统逐渐走向灭亡。河流水质恶化对地表水及其支流的生态健康产生了深远的影响,这无疑增加了人类饮用水可持续性发展的负担。在水环境治理阶段,实时预测水质质量可为水环境的保护和治理提供科学的依据,构建准确有效的水质参数预测模型是改善河流水质至关重要的环节。
多数数据驱动模型在水质参数预测方面效果显著,主要方法有时间序列法、灰色理论预测法、回归预测法(例如支持向量机)和人工神经网络预测法。但是,以上前三种方法存在泛化能力差、预测精度低等缺陷。近年来,深度学习方法在水质建模中受到了越来越多的关注。人工神经网络是由自适应性的简单单元广泛并行互联实现来模拟生物神经系统的机器学习技术,是深度学习的基础,其具有鲁棒性好、能充分拟合复杂非线性关系等优点。因此,本发明实施例提出了一种基于混合神经网络的河流总氮浓度预测方法,旨在提高模型的稳定性和泛化能力,降低总氮浓度的预测误差。
发明内容
本发明要解决的技术问题是,提供一种基于混合神经网络的河流总氮浓度预测方法,进行水质参数总氮的预测。为了解决现有的、传统的单一水质预测算法无法挖掘水质的局部特征的问题以及提高预测精度和效率,整体的网络模型主要包括两个部分:特征学习模块和预测生成模块。利用一维卷积残差神经网络提取水质数据的局部特征,双向门控循环单元作为预测模块不仅能够整合时间序列的前后时刻信息,并获得水质参数最终的预测结果。为了提高数据的完整性,在模型训练之前,对水质数据采用隔离森林和朗格拉日插值法对河流水质数据清洗和校正。模型训练和测试所用的数据集来自于滦河的真实数据集。本方法实现了神经网络的融合,提出了一种全新的深度学习水质预测方法,以提高水质参数的预测精度。
为解决上述问题,本发明采用如下的技术方案:
一种基于混合神经网络的河流总氮浓度预测方法,主要包括:
步骤1、通过物联网设备的采集模块每四小时采集一次滦河断面水质数据,并对待预测水质区域的原始水质数据集进行清洗。
步骤2、将待预测区域河流水质数据划分为训练集和测试集。构建模型,模型主要包括两个模块:特征学习模块和预测生成模块。特征学习模块使用1-DRCNN,预测生成模块采用BiGRU和全连接层。
步骤3、对步骤2构建的模型使用Adam优化算法进行训练,训练结束后得到最优的水质参数预测模型,再在测试集对待预测河流的总氮浓度进行预测。
步骤4、使用模型评价指标,其中包括平均绝对误差、平均绝对百分比误差、均方根误差、决定系数对模型性能进行评价。
根据本发明一种基于混合神经网络的河流总氮浓度预测方法,所述水质数据包括9个水质参数:温度(T,℃),PH,溶解氧(COD,mg/L),生化需氧量(BOD,mg/L),浊度(NTU),高锰酸钾(COD-Mn,mg/L),氨氮(NH3-N,mg/L),总磷(TP,mg/L),总氮(TN,mg/L)。
作为优选,步骤1具体包括以下步骤:
对所述原始水质数据集进行数据清洗,具体包括基于隔离森林的对所述原始水质数据集中的异常数据进行检测和基于朗格拉日方法对所述原始水质数据中的空缺值进行补全。
作为优选,步骤2具体包括以下步骤:
步骤2.1、将待测河流区域的水质数据集随机划分为训练集和测试集;
步骤2.2、将训练集作为当前水质参数输入1-DRCNN网络。1-DRCNN能够对当前所述水质参数间潜在非线性关系特征的挖掘和提取,以形成有效的低维特征;
步骤2.3、将1-DRCNN输出作为BiGRU模型输入,学习和整合前后时间水质参数的依赖性,进一步优化特征表达的水质数据;
步骤2.4、在模型顶层,BiGRU的输出作为全连接层的输入,全连接层用于生成水质参数的预测值。
作为优选,步骤3具体包括以下步骤:
步骤3.1、在模型训练过程中,使用Adma优化器调整模型的权重和偏差,在训练过程中,不断计算全连接层输出的河流水质总氮浓度与所述训练集中真实总氮浓度之间的偏差。当偏差小于自定的阈值时,模型训练完毕,得到最优模型。
步骤3.2、在所述测试集上使用已经训练好的最优模型获取待预测河流的总氮浓度结果。
与现有技术相比,本发明具有以下优势:
本发明除了实现河流浓度的预测功能外,同时在预测之前也对待测河流水质数据进行了数据清洗,增强了所述河流水质数据的完整性。本发明利用1-DRCNN解决了传统的长而深的CNN网络在模型训练的过程中,结果会随着网络的加深达到饱和直至迅速下降,从而出现梯度爆炸和退化的问题,并充分利用了1-DRCNN网络良好的特征提取和表达能力,学习河流水质数据的复杂的、非线性的局部特征,降低所述河流水质数据的纬度。除此之外,预测生成模块中的BiGRU让模型在训练过程中自行捕获所述河流水质数据的上下文时间依赖性,有效提高河流总氮浓度的模型预测精度。总体来讲,本发明的方法可以比较高效准确地对河流总氮浓度进行预测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于混合神经网络的河流总氮浓度预测方法中1-DRCNN-BiGRU模型的结构示意图;
图2为本发明实施例提供的一种基于混合神经网络的河流总氮浓度预测方法中BiGRU模型的结构示意图。
图3为本发明实施例提供的一种基于混合神经网络的河流总氮浓度预测方法的完整算法流程图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明实施例的河流水质中的总氮浓度预测方法,具体包括以下步骤:
步骤1、通过物联网设备的数据采集模块每四小时采集一次滦河断面水质数据,每一时刻采集的多个水质参数组成一个向量,作为一个样本并对待预测水质区域的原始水质数据集进行清洗。
由于采集设备出现故障或人为错误记录等因素,水质数据不可避免会出现异常值和空缺值,这些不符合规范的数据,导致模型的预测精度低下。具体地,本实施例通过对待测河流原始水质数据集进行数据清洗提高待预测河流水质数据的完整性;其中所述数据清洗包括基于隔离森林的对所述原始水质数据集中的异常数据进行检测和基于朗格拉日方法对所述原始水质数据中的空缺值进行补全。
本实施例通过使用孤立森林可以对设备采集的待预测河流水质数据对进行异常值检测。使用孤立森立对待预测水质数据进行异常值检测主要分为两步:
第一步,构建孤立森林。不考虑待预测河流水质数据集两个样本的距离或者密度,递归地分割待预测水质数据集,构建孤立树,直到所有的样本点孤立。
第二步,计算异常得分,公式如下:
其中,n表示待预测水质样本数据x的大小,H(n-1)表示一个调和函数,可以用ln(n-1)+0.5772156649估算。C(n)表示n条样本待预测水质样本数据构建的二叉树的平均路径长度,这里主要用作归一化。E(h(x))表示待预测样本数据x在多棵iTree的路径长度的均值。如果节点得分越接近1,则该样本节点越有可能异常;如果样本节点的得分越接近0,表示该节点正常。
在上述实施例的基础上,待预测水质数据经过异常值检测后,将其置为空值。然后使用基于朗格拉日方法对其进行填补。根据非空缺m个待预测水质数据样本点找到一个恰好穿过非空缺m个待预测水质数据样本点组成的二维平面的多项式函数,该平面恰好在各个观测点取到观测到的值。根据上述多项式函数实现填补的空缺值。由此拉格朗日插值法的多项式函数公式如下所示:
Lm(x)=y0l0(x)+y1l1(x)+…+ymlm
其中,ym表示待预测河流水质数据集中样本点对应的真实值,li(x)表示待预测河流水质数据集中样本点对应的插值函数:
步骤2、在上述实施例的基础上,将待预测区域河流水质数据划分为训练集和测试集。如图1所示整体模型结构示意图,构建河流总氮浓度预测模型,主要包括两个模块,特征学习模块和预测生成模块。特征学习模块使用1-DRCNN,预测生成模块采用BiGRU和全连接层。
在上述实施例的基础上,每一时刻采集的多个水质参数组成一个向量,作为模型的一个输入样本。输入样本中的每个向量由每个时刻的温度(T),PH,溶解氧(COD,),生化需氧量(BOD),浊度(NTU),高锰酸钾(COD-Mn),氨氮(NH3-N),总磷(TP)八个水质参数组成,总氮(TN)作为模型的输出特征预测向量,用来与真实的总氮浓度作对比,评价模型的预测精度。
步骤2.1、随机将待测河流区域的水质数据集划分为训练集和测试集;
步骤2.2、构建特征学习模块1-DRCNN网络,将训练集作为当前水质参数输入1-DRCNN网络。1-DRCNN能够对当前所述水质参数间潜在非线性关系特征的挖掘和提取,以形成有效的低维特征。本发明使用两个一维卷积残差块(1-DConv_block)作为特征学习模块的主体结构,每个残差块主要由3个1x1的卷积层、3个批量归一化层(BN layer)以及三个激活函数(Selu)构成,其中卷积层的滤波器和卷积核大小均设置为32。
在上述实施例的基础上,在每个1x1的卷积层输入前需要使用批量归一化层(Batch Normalization layer,BN layer)对上一层的输出进行变换重构,BN计算每个批次的一阶和二阶统计量,不断调整一维卷积神经网络进化层的中间输出,高层网络不断适应低层网络的参数更新,促使每层网络的输出趋于稳定的,解决高层网络出现梯度消失导致网络的收敛速度下降的问题。上述实施例A=(a1,…,ad)重构公式如下所示:
对进行重构:
其中,表示样本的方差,β(k)=E[a(k)]表示样本的期望。
此外,1x1的卷积层利用权值相同的卷积核和重构后输入的上述实施例中的河流水质数据记得训练集中不同区域进行卷积运算,学习上述实施例中的河流水质数据记得训练集中所有位置的信息,生成低维的特征向量。每个卷积层的输出为:
f(x)=SELU=βmax(αezx-α,x)
式中,是第l层网络的第i个神经元的输入,是第l-1层网络的第i个神经元的输出,是第l-1层网络的第k个神经元和第l层网络的第i个神经元间的滤波器,定义为第l层网络的第k个神经元的偏置。为了提高卷积层的特征表达能力,采用激活函数f(.),实现卷积层的非线性特征映射。式中,α、β为定值,分别为β=1.05070098,α=1.67326324。
步骤2.3、将1-DRCNN输出作为BiGRU模型输入,BiGRU网络自主捕获时间序列数据短、长期以及上下文属性的依存关系,获得前向和后向结合的隐藏状态,学习和整合前后时间水质参数的依赖性,进一步优化特征表达的水质数据,其结构如图3所示,基于BiGRU的特征建模过程描述如下:
式中,GRU(.)函数表示采用GRU网络对上述实施例进行非线性换,把输入向量编码成对应的GRU隐藏状态。wt、vt分别表示双向BiGUR在t时刻的前向隐藏层状态和反向隐藏层状态权重。bt表示t时刻隐藏层状态的偏置。
步骤2.4、在模型顶层,BiGRU的输出作为全连接层的输入,全连接层用于生成上述实施例中的总氮浓度预测值。
步骤3、对步骤3构建的模型使用Adam优化算法进行训练,训练结束后得到最优的水质参数预测模型,然后在测试集对总氮浓度进行预测。
步骤3.1、在模型训练过程中,使用优化器Adma调整模型的权重和偏差,计算所述全连接层输出的河流水质总氮浓度与所述真实浓度之间的误差。当误差小于预设的阈值时,模型训练完毕,得到最优模型。
步骤3.2、在所述测试集上使用已经训练好的最优模型对总氮浓度进行预测,获得总氮浓度的预测结果。
步骤4、获得待预测河流总氮浓度的结果后,为了评价模型预测待预测河流总氮浓度精度和有效性,本发明采用平均绝对误差(MAE)、平均绝对百分比误差(MAPE)、均方根误差(RMSE)、决定系数(R2)对模型的预测效果进行评价。评价函数的公式如下所示:
其中,N是测试集样本的大小,yi是模型总氮浓度预测值,Yi是测试集中第i个总氮浓度的观测值(真实值),是测试集中总氮浓度观测值的平均值。如果MAE、MAPE、RMSE的结果越接近0,R2越接近1,说明构建的模型预测精度越高。
如前所述,本发明的优势在于:
1.解决了单一的水质预测算法无法挖掘水质的局部特征和学习时间序列数据的前后时间依赖性的问题,提高河流总氮浓度预测精度和效率。
2.该模型首次将特征提取模块和双向循环预测模块实现了有机融合,并运用到水质预测领域,有效提高了水质参数预测模型的稳定性和泛化能力。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。