一种基于自编码神经网络的城市污水处理过程异常数据检测方法

文档序号:33712249发布日期:2023-04-01 00:23阅读:56来源:国知局
一种基于自编码神经网络的城市污水处理过程异常数据检测方法

1.本发明基于城市污水处理过程运行特性进行分析的基础上,通过建立基于自编码神经网络的城市污水处理过程异常数据检测模型。该检测模型在实际过程中,能够智能检测城市污水处理过程数据中的异常样本,提高了城市污水处理过程数据的可信度,属于污水处理领域。


背景技术:

2.近年来,随着传感器和分布式系统在城市污水厂的大量安装,城市污水处理过程数据被采集、传输并保存。收集到的城市污水处理过程数据反映了污水处理过程的运行状态,是实现处理过程运行监测、优化控制和故障预测等环节的重要依据。然而,由于传感器故障、传输网络中断或暴雨天气等原因,异常数据不可避免地出现在数据集中,这对保障城市污水处理过程平稳高效运行造成困难。因此,智能检测异常数据对保证污水处理厂正常稳定运行具有重要的理论意义和应用价值。
3.由于城市污水处理过程是一个包含许多复杂处理工艺的生化过程,工作环境复杂且干扰较大,导致异常数据难以精确检测,从而无法进行有效的处理,严重降低了数据质量,影响了数据应用的可靠性,为城市污水处理过程数据分析,数据处理和数据应用带来困难,因此如何有效的检测异常数据已成为城市污水处理过程数据应用面临的挑战。当前,污水处理厂主要通过统计方法进行检测,但未考虑数据分布的变化及变量间关系,导致异常数据检测效果不理想。近年来,由于人工神经网络具有提取变量间非线性关系且无需构建准确的数学模型的能力,人工神经网络已成为异常数据检测的有效技术。因此,本发明在检测异常数据上具有重要的现实意义和应用价值。
4.本发明设计了一种基于自编码神经网络的城市污水处理过程异常数据检测方法,该方法采集运行数据,建立基于自编码神经网络的检测模型,设计基于梯度下降算法对模型参数进行调整,构建基于记忆模块的自适应异常分数阈值评价策略,实现了城市污水处理过程异常数据的准确检测,提高了数据质量,实现了污水处理厂的实际需求。


技术实现要素:

5.本发明设计了一种基于自编码神经网络的城市污水处理过程异常数据检测方法,该方法首先基于自编码神经网络建立检测模型,以提取城市污水处理过程数据变量间的非线性关系;其次,设计梯度下降算法对模型参数进行动态调整;最后,构建基于记忆模块以自适应地计算异常分数阈值,提高检测精度;
6.本发明采用了如下的技术方案及实现步骤:
7.1.一种基于自编码神经网络的城市污水处理过程异常数据检测方法,其特征在于,建立基于自编码神经网络的检测模型,设计基于梯度下降的检测模型参数更新方法,构建基于记忆模块的自适应异常分数阈值判别策略,实现城市污水处理过程异常数据检测,
包括以下步骤:
8.(1)采集城市污水处理过程数据
9.以城市污水处理过程为研究对象,选取进水流量、进水化学需氧量、进水总磷、出水总氮、出水总磷、进水氨氮、进水酸碱度、曝气池温度和生物需氧量9个变量;所有变量按公式(1)归一化:
[0010][0011]
其中,i=1,

,9,t=1,2,

,z,z为样本总数,l1(t)为t时刻进水流量,单位为升/立方米,l2(t)为t时刻进水化学需氧量,单位为毫克/升,l3(t)为t时刻进水总磷浓度,单位为毫克/升,l4(t)为t时刻出水总氮浓度,单位为毫克/升,l5(t)为t时刻出水总磷浓度,单位为毫克/升,l6(t)为t时刻进水氨氮浓度,单位为毫克/升,l7(t)为t时刻进水酸碱度,l8(t)为t时刻曝气池温度,单位为摄氏度,l9(t)为t时刻生物需氧量,单位为毫克/升,l
i,max
为第i个变量的最大值,l
i,min
为第i个变量的最小值,x1(t)为t时刻归一化进水流量,x2(t)为t时刻归一化进水化学需氧量,x3(t)为t时刻归一化进水总磷浓度,x4(t)为t时刻归一化出水总氮浓度,x5(t)为t时刻归一化出水总磷浓度,x6(t)为t时刻归一化进水氨氮浓度,x7(t)为t时刻归一化进水酸碱度,x8(t)为t时刻归一化曝气池温度,x9(t)为t时刻归一化生物需氧量;将归一化后的z个样本分为两组,一组为包含n个样本的训练集x,另一组为包含m个样本的测试集x

,n》m,m=z-n,n且m为正整数;
[0012]
(2)建立基于自编码神经网络的检测模型
[0013]
检测模型以自编码神经网络为载体,该模型包含以下三层:
[0014]
输入层:由9个神经元组成,输入变量为x1(t),x2(t),x3(t),x4(t),x5(t),x6(t),x7(t),x8(t),x9(t),每个神经元的输出为:
[0015]
ui(t)=xi(t)
ꢀꢀꢀ
(2)
[0016]
其中,ui(t)是t时刻第i个输入层神经元的输出值;
[0017]
隐含层:由5个神经元组成,每个神经元输出为:
[0018][0019]
其中,hj(t)为t时刻第j个隐含层神经元的输出值,w
eij
(t)为t时刻第i个输入层神经元第j个隐含层神经元的连接权重,b
ej
(t)为t时刻第j个隐含层神经元的偏移量,j=1,

,5;
[0020]
输出层:由9个神经元组成,每个神经元输出为:
[0021][0022]
其中,为t时刻第i个输出层神经元的输出值,w
dji
(t)为t时刻第j个隐含层神经元第i个输出层神经元的连接权重,b
di
(t)为t时刻第i个输出层神经元的偏移量;
[0023]
(3)设计基于梯度下降的检测模型参数更新方法
[0024]

设初始迭代次数s=1,最大迭代次数s=150,初次迭代隐含层神经元连接权重在区间[-1,1]中随机取值,初次迭代隐含层神经元偏移量在区间[-1,1]中随机取
值,初次迭代输出层神经元连接权重在区间[-1,1]中随机取值,初次迭代输出层神经元偏移量在区间[-1,1]中随机取值;
[0025]

将训练集x=[x1(t),

,xn(t)]
t
输入检测模型,xn(t)=[x
1n
(t),

,x
in
(t)]为第n个训练样本,n=1,

,n,t为转置计算,根据公式(2)-(4),得到训练误差函数e(t)为:
[0026][0027]
其中,x
in
(t)为第n个训练样本中的第i个变量值,为检测模型输出中的第i个变量值;
[0028]

利用梯度下降算法更新检测模型参数:
[0029][0030][0031][0032][0033]
其中,为第s次迭代第j个隐含层神经元连接权重,为第s次迭代第j个隐含层神经元连接权重,为第s次迭代隐含层神经元的偏移量,为第s次迭代第i个输出层神经元连接权重,为第s次迭代输出层神经元的偏移量,移量,移量,α为学习率且取值范围为(0,0.1);
[0034]

若s《s,则s增加1,返回步骤

;若s≥s,则停止训练,得到训练好的检测模型;
[0035]
(4)构建基于记忆模块的自适应异常分数阈值判别策略
[0036]ⅰ设记忆模块初始指针为p=1,记忆长度q=20,初始测试样本数m=1;
[0037]ⅱ将测试集x

=[x
′1(t),

,x
′m(t)]
t
顺序输入到训练好的检测模型中,第m个测试样本x
′m(t)=[x

1m
(t),

,x

im
(t)]的异常分数为:
[0038][0039]
其中,x

im
(t)为第m个测试样本中的第i个变量值,为检测模型输出中的第i个变量值;
[0040]
将异常分数em(t)保存到记忆模块p;
[0041]ⅲ若p≤m≤p+q,则m增加1,返回步骤ⅱ;若m》p+q,则执行步骤ⅳ;
[0042]ⅳ从记忆模块p中提取异常分数e(t)=[e
p
(t),

,em(t)],p≤m≤p+q,计算异常分数的上阈值ε
max
和下阈值ε
min

[0043]
ε
max
=u+3σ
ꢀꢀꢀ
(11)
[0044]
ε
min
=u-3σ
ꢀꢀꢀ
(12)
[0045]
其中,u为测试样本异常分数的平均值,σ为测试样本异常分数的标准差,计算公式为;
[0046][0047][0048]

根据公式(11)-(14),对测试样本x
′m(t)标记异常标签im(t):
[0049][0050]
其中,im(t)=1表示测试样本x
′m(t)为异常样本,im(t)=0表示测试样本x
′m(t)为正常样本,将im(t)输入异常标签向量i(t)中;
[0051]ⅵ若m≤m,则p增加1,m增加1,返回步骤ⅱ;若m》m,则停止检测;
[0052]
(5)实现城市污水处理过程异常数据检测
[0053]
输出m个测试样本异常标签向量i(t)=[i1(t),

,im(t)],实现城市污水处理过程异常数据检测。
[0054]
保障本发明的创造性主要体现在:
[0055]
(1)本发明针对城市污水处理过程数据存在异常值的问题,提出了一种异常数据检测方法,该方法基于记忆模块自适应地计算异常分数阈值以检测异常样本,提高了异常数据检测效率;
[0056]
(2)本发明为了考虑城市污水处理过程数据存在非线性和高噪声的特点,而且难以用精确数据模型表示,因此,根据城市污水厂实测数据,采用自编码神经网络自监督的方式提取变量间非线性关系,同时采用梯度下降算法更新模型参数,对异常数据检测的准确率。
附图说明
[0057]
图1为本发明的进水酸碱度训练效果图,其中实线为进水酸碱度实际输出,虚线为检测模型输出值;
[0058]
图2为本发明的进水化学需氧量的训练效果图,其中实线为进水化学需氧量实际输出,虚线为检测模型输出值;
[0059]
图3为本发明的进水氨氮的训练效果图,其中实线为进水氨氮实际输出,虚线为检测模型输出值;
具体实施方式
[0060]
实验数据来自某污水处理厂2022年水质分析表;分别取进水流量、进水化学需氧量、进水总磷、出水总氮、出水总磷、进水氨氮、进水酸碱度、曝气池温度和生物需氧量的实际检测数据为实验样本数据共4400组,其中前3000组仅包含正常样本,作为训练集,其余
1400组包含异常样本和正常样本,作为测试集。
[0061]
本发明采用了如下的技术方案及实现步骤:
[0062]
1.一种基于自编码神经网络的城市污水处理过程异常数据检测方法,其特征在于,建立基于自编码神经网络的检测模型,设计基于梯度下降的检测模型参数更新方法,构建基于记忆模块的自适应异常分数阈值判别策略,实现城市污水处理过程异常数据检测,包括以下步骤:
[0063]
(1)采集城市污水处理过程数据
[0064]
以城市污水处理过程为研究对象,选取进水流量、进水化学需氧量、进水总磷、出水总氮、出水总磷、进水氨氮、进水酸碱度、曝气池温度和生物需氧量9个变量;所有变量按公式(1)归一化:
[0065][0066]
其中,i=1,

,9,t=1,2,

,z,z=4400,l1(t)为t时刻进水流量,单位为升/立方米,l2(t)为t时刻进水化学需氧量,单位为毫克/升,l3(t)为t时刻进水总磷浓度,单位为毫克/升,l4(t)为t时刻出水总氮浓度,单位为毫克/升,l5(t)为t时刻出水总磷浓度,单位为毫克/升,l6(t)为t时刻进水氨氮浓度,单位为毫克/升,l7(t)为t时刻进水酸碱度,l8(t)为t时刻曝气池温度,单位为摄氏度,l9(t)为t时刻生物需氧量,单位为毫克/升,l
i,max
为第i个变量的最大值,l
i,min
为第i个变量的最小值,x1(t)为t时刻归一化进水流量,x2(t)为t时刻归一化进水化学需氧量,x3(t)为t时刻归一化进水总磷浓度,x4(t)为t时刻归一化出水总氮浓度,x5(t)为t时刻归一化出水总磷浓度,x6(t)为t时刻归一化进水氨氮浓度,x7(t)为t时刻归一化进水酸碱度,x8(t)为t时刻归一化曝气池温度,x9(t)为t时刻归一化生物需氧量;将归一化后的z个样本分为两组,一组为包含n=3000个样本的训练集x,另一组为包含m=1400个样本的测试集x


[0067]
(2)建立基于自编码神经网络的检测模型
[0068]
检测模型以自编码神经网络为载体,该模型包含以下三层:
[0069]
输入层:由9个神经元组成,输入变量为x1(t),x2(t),x3(t),x4(t),x5(t),x6(t),x7(t),x8(t),x9(t),每个神经元的输出为:
[0070]
ui(t)=xi(t)
ꢀꢀꢀ
(17)
[0071]
其中,ui(t)是t时刻第i个输入层神经元的输出值;
[0072]
隐含层:由5个神经元组成,每个神经元输出为:
[0073][0074]
其中,hj(t)为t时刻第j个隐含层神经元的输出值,w
eij
(t)为t时刻第i个输入层神经元第j个隐含层神经元的连接权重,b
ej
(t)为t时刻第j个隐含层神经元的偏移量,j=1,

,5;
[0075]
输出层:由9个神经元组成,每个神经元输出为:
[0076]
[0077]
其中,为t时刻第i个输出层神经元的输出值,w
dji
(t)为t时刻第j个隐含层神经元第i个输出层神经元的连接权重,b
di
(t)为t时刻第i个输出层神经元的偏移量;
[0078]
(3)设计基于梯度下降的检测模型参数更新方法
[0079]

设初始迭代次数s=1,最大迭代次数s=150,初次迭代隐含层神经元连接权重在区间[-1,1]中随机取值,初次迭代隐含层神经元偏移量在区间[-1,1]中随机取值,初次迭代输出层神经元连接权重在区间[-1,1]中随机取值,初次迭代输出层神经元偏移量在区间[-1,1]中随机取值;
[0080]

将训练集x=[x1(t),

,xn(t)]
t
输入检测模型,xn(t)=[x
1n
(t),

,x
in
(t)]为第n个训练样本,n=1,

,n,t为转置计算,根据公式(17)-(19),得到训练误差函数e(t)为:
[0081][0082]
其中,x
in
(t)为第n个训练样本中的第i个变量值,为检测模型输出中的第i个变量值;
[0083]

利用梯度下降算法更新检测模型参数:
[0084][0085][0086][0087][0088]
其中,为第s次迭代第j个隐含层神经元连接权重,为第s次迭代第j个隐含层神经元连接权重,为第s次迭代隐含层神经元的偏移量,为第s次迭代第i个输出层神经元连接权重,为第s次迭代输出层神经元的偏移量,移量,
[0089]
α为学习率且取值范围为(0,0.1);
[0090]

若s《s,则s增加1,返回步骤

;若s≥s,则停止训练,得到训练好的检测模型;
[0091]
(4)构建基于记忆模块的自适应异常分数阈值判别策略
[0092]ⅰ设记忆模块初始指针为p=1,记忆长度q=20,初始测试样本数m=1;
[0093]ⅱ将测试集x

=[x
′1(t),

,x
′m(t)]
t
顺序输入到训练好的检测模型中,第m个测试样本x
′m(t)=[x

1m
(t),

,x

im
(t)]的异常分数为:
[0094][0095]
其中,x

im
(t)为第m个测试样本中的第i个变量值,为检测模型输出中的第i
个变量值;
[0096]
将异常分数em(t)保存到记忆模块p;
[0097]ⅲ若p≤m≤p+q,则m增加1,返回步骤ⅱ;若m》p+q,则执行步骤ⅳ;
[0098]ⅳ从记忆模块p中提取异常分数e(t)=[e
p
(t),

,em(t)],p≤m≤p+q,计算异常分数的上阈值ε
max
和下阈值ε
min

[0099]
ε
max
=u+3σ
ꢀꢀꢀ
(26)
[0100]
ε
min
=u-3σ
ꢀꢀꢀ
(27)
[0101]
其中,u为测试样本异常分数的平均值,σ为测试样本异常分数的标准差,计算公式为;
[0102][0103][0104]

根据公式(26)-(29),对测试样本x
′m(t)标记异常标签im(t):
[0105][0106]
其中,im(t)=1表示测试样本x
′m(t)为异常样本,im(t)=0表示测试样本x
′m(t)为正常样本,将im(t)输入异常标签向量i(t)中;
[0107]ⅵ若m≤m,则p增加1,m增加1,返回步骤ⅱ;若m》m,则停止检测;
[0108]
(5)实现城市污水处理过程异常数据检测
[0109]
输出m个测试样本异常标签向量i(t)=[i1(t),

,im(t)],实现城市污水处理过程异常数据检测。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1