首页> 中国专利> 一种基于分布式在线主成分分析的空气质量异常检测方法

一种基于分布式在线主成分分析的空气质量异常检测方法

摘要

本发明公开了一种基于分布式在线主成分分析的空气质量异常检测方法。获取城市的已知空气污染物浓度数据,设计分布式在线主成分分析模型,采用基于分布式在线主成分分析模型的空气质量异常检测方法对空气污染物浓度数据进行处理获得判断结果,从而对空气质量进行异常检测。本发明能便捷地预测某一范围内的整体空气质量,能够抑制异常训练数据带来的影响,起到去噪作用,处理速度更快,用时更短。

著录项

  • 公开/公告号CN108490115A

    专利类型发明专利

  • 公开/公告日2018-09-04

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201810129053.1

  • 发明设计人 李春光;苗雪丹;王涛;

    申请日2018-02-08

  • 分类号G01N33/00(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人林超

  • 地址 310058 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 06:24:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-05

    授权

    授权

  • 2018-09-28

    实质审查的生效 IPC(主分类):G01N33/00 申请日:20180208

    实质审查的生效

  • 2018-09-04

    公开

    公开

说明书

技术领域

本发明属于分布式信号处理、机器学习以及异常检测领域,特别是涉及一种基于分布式在线主成分分析的空气质量异常检测方法。

背景技术

主成分分析(Principal Component Analysis,简称PCA)是一种常用的无监督降维方法。通过PCA能够得到数据分布的主要方向。常规的PCA通过构造数据协方差矩阵并计算其特征向量来实现主成分分析过程。这些特征向量是原始数据空间中含信息量较多的方向,因此被视为主要成分或主要方向。对于常规的PCA而言,一般需要获得全部的原始数据,生成原始数据的协方差矩阵。显然主成分分析方法可以应用于异常检测领域,通过分析得到训练数据的主要成分,然后根据主要成分判断测试数据是否异常。

在实际中,用于异常检测的数据可以通过无线传感器网络(wireless sensornetworks,简称WSNs)来进行采集。例如,利用气体传感器组成的传感器网络测量空气中污染物的浓度。一般来说,衡量空气质量的主要指标是空气中主要污染物,即SO2、NO2、CO、PM10、PM2.5和O3的浓度。可以通过气体传感器分散地测量空气中各个污染物的浓度,然后通过合理的计算确定最终的空气质量。在这种情况下,数据是分散地被多个传感器节点采集的,因此常规PCA利用数据协方差矩阵求解主成分的方法显然是不太合适的。

发明内容

本发明的目的在于针对数据是分布式采集的这样一种实际情况,提出一种基于分布式在线主成分分析的空气质量异常检测方法,通过不需要数据协方差矩阵的分布式在线主成分分析方法进行空气质量数据的异常检测。

如图1所示,本发明所采用的技术方案具体包括如下步骤:

(1)获取城市的已知空气污染物浓度数据;

(2)设计分布式在线主成分分析模型;

(3)采用基于分布式在线主成分分析模型的空气质量异常检测方法对待测空气污染物浓度数据进行处理获得该城市的判断结果,从而对空气质量进行异常检测。

所述步骤(1)的城市的已知空气污染物浓度数据是包括某一城市在某一时间段内的每日多地点空气污染物浓度数据。

具体实施中,将得到的空气污染物浓度数据分成训练所用空气污染物浓度数据及测试所用空气污染物浓度数据。

具体实施中可在环保部数据中心及相关的网站上获得空气污染物浓度数据,例如在青悦开放环境数据中心获得杭州市每日空气污染物浓度的历史数据。

所述的空气污染物浓度数据是由传感器网络采集获得的,传感器网络是由分布于不同地点的传感器节点用无线/有线方式互相连接而组成,每两个传感器节点具有直接/间接通信连接关系,每个传感器节点采集获得各自监测范围的空气污染物浓度数据,每个传感器节点均能接收其他所有邻居传感器节点依据所采集到的空气污染物浓度数据计算出的每个时刻的特征矩阵信息。

所述的步骤(2)具体建立以下公式表示的传感器节点的目标函数作为分布式在线主成分分析模型(doPCA模型):

在本发明中,首先提出分布式在线主成分分析的目标函数,进而建立整个分布式在线主成分分析模型(doPCA)。根据实际问题,在空气污染物检测传感器网络中,每个传感器节点的数据是被时序地采集的,并且由于传感器节点在存储方面的限制,并不能存储所有的历史数据。在这种情况下,采集的数据时序地到达传感器节点并且被时序地处理。本发明通过在线学习模型很好地利用了这些数据,同时进一步将空气质量异常检测优化问题转化成最小二乘问题,这样就可以通过传统的最小二乘求解法来求解这个问题。

本发明考虑到每个传感器节点的硬件存储的限制,为了克服只有在获得全部数据之后才能对问题进行求解的困难,本发明特别地用前一时刻得到的模型参数近似计算当前时刻传感器节点的特征矩阵即当前时刻的模型参数。

本发明的分布式在线主成分分析模型中,不仅利用了当前采集的空气污染物浓度数据的信息,还充分继承了历史信息。也就是说,每个时刻,虽然只能获得一个空气污染物浓度数据,但依然利用了到此刻为止的所有数据信息。传感器节点的目标函数如下:

在这里,Wj表示当前时刻传感器节点j的特征矩阵,是该目标函数的待求矩阵,具体是由传感器节点j的p个主成分组成,表示Wj为d行p列的矩阵,j表示传感器网络中的传感器节点的序数,p表示传感器节点j的主成分总数,d表示传感器节点j的一个主成分的维度;特征矩阵Wj中每一列表示一个d维特征向量作为主成分,任意两个特征向量之间相互正交。Wj=[wj1,…,wjp],wj1表示传感器节点j的第1个主成分,wjp表示传感器节点j的第p个主成分,实际来说每个主成分均是d维列向量;表示传感器节点j在k-1时刻的特征矩阵的转置,表示传感器节点j在k-1时刻的第1个主成分;xjk表示传感器节点j在k时刻的空气污染物浓度数据,k≤t,表示xjk是d维列向量;表示传感器节点j在t时刻的优化目标函数,表示传感器节点的集合,I是p行p列的单位矩阵。

所述的步骤(3)具体是针对传感器节点采用以下方式计算获得:

任意两个主成分之间应该是相互独立并且线性无关的。由此目标函数是一个非常典型的最小二乘问题。

(3.1)先用已知空气污染物浓度数据处理获得各个传感器节点的最终特征矩阵:

(3.1.1)针对每个传感器节点,利用拉格朗日乘子法并利用主成分单位正交的性质求解目标函数,获得每个时刻传感器节点获得的空气污染物浓度数据对应的主成分,先利用当前时刻的空气污染物浓度数据和前一时刻的模型参数计算第一主成分,再在前一个主成分的基础上计算下一个主成分,直到计算完传感器节点j在当前时刻的全部p个主成分;

具体传感器节点j在t时刻的第m主成分计算为:

式中,表示传感器节点j在t时刻的第l个主成分,l<m,l表示主成分的遍历序数;

为了表示清晰并迭代计算,具体采用以下公式计算传感器节点j在t时刻的第m主成分:

式中,表示传感器节点j在t时刻的第m主成分计算过程中的第一、第二中间变量,xjt表示传感器节点j在t时刻所采集到的空气污染物浓度数据,表示传感器节点j在t时刻的第m主成分,||·||表示矩阵模的长度;

用相同的方法并行地对当前时刻每一个传感器节点进行处理。一个时刻的一个传感器节点的空气污染物浓度数据对应获得p个主成分。

本发明用前一个时刻计算时所获得的第二中间变量来用于对下一个时刻进行计算,使得迭代计算后所有传感器节点的特征矩阵趋于一致。

(3.1.2)然后,通过传感器节点j与邻居传感器节点进行信息交换采用以下公式表示的扩散式融合方式计算获得传感器节点j在当前时刻的特征矩阵:

式中,表示传感器节点j的所有邻居传感器节点的集合,i表示传感器节点j的邻居传感器节点与传感器节点j本身组成的集合的节点序数,ε表示所有边的集合,边表示传感器节点j与其一个邻居传感器节点之间的连接关系;aji表示传感器节点j接收邻居传感器节点i的信息加权系数,aji为一非负标量;至此,计算出了在该时刻传感器网络中所有传感器节点的经信息融合后的特征矩阵。

一个时刻的一个传感器节点的空气污染物浓度数据对应获得一个的特征矩阵。

(3.1.3)按时间顺序重复步骤(3.1.1)和(3.1.2)对每个时刻的各个传感器节点j进行处理,获得传感器网络中各个传感器节点计算的特征矩阵趋于一致稳定的结果,并将最后时刻记为L时刻,获得各个传感器节点在最后时刻L的特征矩阵及第二中间变量

(3.2)用各个传感器节点在最后时刻L的特征矩阵对待测空气污染物浓度数据进行处理获得异常结果:

(3.2.1)针对传感器节点待测时刻的空气污染物浓度数据,建立以下公式的目标函数:

其中,Wj表示当前待测时刻传感器节点j的特征矩阵,是该目标函数的待求矩阵,L表示传感器网络所采集到空气污染物浓度数据包含时间段的最后时刻,L+1表示待测时刻,表示传感器节点j在L+1待测时刻的优化目标函数,表示传感器节点j在最后时刻L的特征矩阵,xj(L+1)表示传感器节点j在待测时刻L+1所采集到的空气污染物浓度数据,α是待测空气污染物浓度数据的权重系数;

通过对权重系数α的调整,可合理扩大待测污空气染物浓度数据对模型产生的影响。

(3.2.2)结合拉格朗日乘子法并利用主成分单位正交的性质对上述待测传感器节点的目标函数进行求解,最终解得传感器节点j在待测时刻L+1的第m个主成分为:

式中,表示传感器节点j在最后时刻L的第m主成分计算过程中的第二中间变量,xjk表示传感器节点j在时刻k所采集到的空气污染物浓度数据,表示传感器节点j在最后时刻L的第m个主成分,||·||表示矩阵模的长度;此处得到了单个待测数据进入doPCA模型之后的特征矩阵。

(3.2.3)为了定量地表示待测数据成为异常数据的可能性,采用以下公式的余弦相似性绝对值计算获得传感器节点j在待测时刻的空气污染物浓度数据的度量值scorej

其中,表示步骤(3.1)获得的最终结果,即各个传感器节点在最后时刻L的一致的特征矩阵

当针对待测的空气污染物浓度数据时,通过(3.2.1)和(3.2.2)的公式进入doPCA模型计算获得的第m主成分然后通过(3.2.3)的公式计算待测的空气污染物浓度数据对doPCA模型的影响,得到相应的度量值scorej

所述步骤(3.2)获得度量值后,将每个传感器节点的度量值与度量阈值h进行比较,判断待测空气污染物浓度数据正常与否(即是否是污染空气)。

当度量值大于度量阈值h时,则认为待测空气污染物浓度数据不正常,结果为污染空气;

当度量值小于等于度量阈值h时,则认为待测空气污染物浓度数据正常,结果为未污染空气。

本发明有益效果:

1)本发明由于采用分布式的处理方式,各个传感器节点都可以处理采集到的数据,因此不需要将原始数据集中到某一个数据处理中心,就能预测某一范围内的整体空气质量,且性能接近甚至优于集中式处理;并且,具有更小的通信代价和更强的鲁棒性,能够适用于分布式异常检测环境。

2)训练阶段,能够在一定程度上抑制异常训练数据带来的影响,能够起到一定的去噪(抑制异常训练数据影响)作用;

3)相比于将原始数据集中到某一数据处理中心处理的方法,本发明处理速度更快,用时更短。

附图说明

附图1是本发明方法的框架流程图。

附图2是本发明的实现流程图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的阐述。

如附图2所示,本发明方法实现步骤如下:

1、获取空气污染物浓度数据

所述的空气污染物浓度数据是包括某一城市在某一时间段内的每日多地点空气污染物浓度数据。

可在环保部数据中心及相关的网站上获得某一城市在某一时间段内的每日多站点空气污染物测量数据。具体实施例在青悦开放环境数据中心获得杭州市每日空气污染物浓度的历史数据,得到原始数据之后,对获得的原始数据进行贴标签操作作为最终用于后续目标函数处理和计算的空气污染物浓度数据(具体实施例中还将数据分为训练集和测试集),标签是指空气质量分级的标签。

2、生成传感器网络拓扑结构并初始化参数

考虑在某个特定的地理区域的情况下,生成一个由J个节点组成的分布式传感器网络.不失一般性,将网络用一个无向连通图来建模,其中,表示传感器网络上所有传感器节点的集合,ε表示所有边的集合,边表示一个传感器节点与其一个邻居传感器节点之间的连接关系。对于所有传感器节点表示传感器节点j的所有邻居传感器节点的集合,i表示传感器节点j的邻居传感器节点的序数。用非负标量aji表示传感器节点j接收邻居传感器节点i的信息的加权系数。也就是说,时,aji=0。便于计算,用J×J矩阵A来表示整个网络的加权系数,其中,aji为矩阵A中第j行第i列的值,表示传感器节点j和传感器节点i之间的通信加权系数。在这里,一般假设矩阵A满足条件

传感器网络拓扑结构生成之后,初始化每个传感器节点的特征矩阵及第二中间变量

3、分布式在线主成分分析模型的训练

对于分布式在线主成分分析模型,每个传感器节点拥有一个训练数据集其中L表示传感器节点j的训练数据总数,xjt表示传感器节点j在t时刻的空气污染物浓度数据,表示xjt是d维列向量。将每个传感器节点j的训练数据集用表示,将所有传感器节点的所有训练数据用表示。

针对每个传感器节点,利用拉格朗日乘子法并利用主成分单位正交的性质求解目标函数,每个时刻传感器节点获得的空气污染物浓度数据xjt对应求解该时刻的特征矩阵在求解该时刻的特征矩阵时,应该先利用该时刻的空气污染物浓度数据xjt和前一时刻的特征矩阵及第二中间变量优先计算第一主成分再在前一个主成分的基础上依次计算下一个主成分,直到计算完传感器节点j在当前时刻的全部p个主成分;所以传感器节点j在t时刻第m个主成分的计算方式如下所示:

当所有主成分计算完毕后,我们用相同的方法并行地对每一个传感器节点进行上述处理;

然后,对于每一个传感器节点,通过传感器节点j与邻居传感器节点进行信息交换以得到该传感器节点在该时刻的特征矩阵可采用以下公式表示的扩散式融合方式计算获得:

按时间顺序依次对每个时刻的传感器网络的传感器节点重复上述过程直到传感器网络中各个传感器节点的特征矩阵趋于一致,此时认为训练完成。在这里设置每个传感器节点的训练数据总数为L个,并认为可使模型训练完成。此时记录各个传感器节点在最后时刻L的特征矩阵及第二中间变量

4、待测空气污染物浓度数据异常检测

当完成步骤3之后,由于传感器网络中各个传感器节点的特征矩阵趋于一致,获得的所有传感器节点的特征矩阵应该是一致的,也就是说,那么对于任意一个节点而言,它都能独立完成对待测空气污染物浓度数据的判断。

考虑待测空气污染物浓度数据对模型产生的影响,正常数据和异常数据会对模型产生不一样的影响。将待测空气污染物浓度数据xj(L+1)作为传感器节点的输入,根据训练好的分布式在线主成分分析模型,即运用以下公式可以计算出新的传感器节点j在待测时刻L+1的第m个主成分为。

在这里再次强调,应该先计算第一主成分,然后再计算第二主成分,依此类推,直到计算完传感器节点j在当前时刻的全部p个主成分,组成传感器节点j在当前时刻的特征矩阵至此得到了单个待测数据进入doPCA模型计算之后的特征矩阵。

为了定量地表示待测数据成为异常数据的可能性,采用以下公式的余弦相似性绝对值计算获得待测时刻的空气污染物浓度数据的度量值:

其中,表示步骤3获得的最终结果,即各个传感器节点在最后时刻L的一致的特征矩阵

获得度量值后,将每个传感器节点的度量值与按经验设置的度量阈值h进行比较,判断待测空气污染物浓度数据正常与否(即是否是污染空气)。当度量值大于度量阈值h时,则认为待测空气污染物浓度数据不正常,结果为污染空气;当度量值小于等于度量阈值h时,则认为待测空气污染物浓度数据正常,结果为未污染空气。

为了验证本发明的性能,按照本发明方法基于空气污染物浓度数据进行仿真实验的实施例及其实施情况是:

在本实验中,考虑一个由5个传感器节点,10条边组成的分布式传感器网络。传感器节点随机分布在一个平面区域中,传感器节点之间的通信距离为1,传感器节点平均度为4。在这次模拟实验中,设置权重系数α=0.1。在训练阶段,对于每个城市的训练数据集,这些训练数据被随机均等地分成5个子集,每个传感器节点分配一个子集。为了更加具有说服力,将基于doPCA的异常检测方法与基于集中式在线PCA(oPCA)的异常检测方法进行比较。

在利用oPCA进行异常检测时,需要将所有训练数据集中到一个数据处理中心上,通过在线学习模式进行特征矩阵的学习,然后利用训练好的特征矩阵进行待测数据的测试。

由于AUC可以对异常检测算法的性能进行综合评估,因此在接下来的实验中,将用AUC来对各个检测方法进行性能评估。AUC的值表示ROC曲线下的面积。表1中给出了50次蒙特卡洛交叉验证实验的平均结果。

表1

表1中有噪声的情况表示训练数据集中含有污染空气数据1%,无噪声表示训练数据集中不含有污染空气数据。从表1中可以看出,在杭州市、北京市和广州市这三个数据集上,doPCA均表现出了优于oPCA的性能。在分布式信号处理领域中,一般来说,分布式算法都要稍逊于集中式算法,其主要原因在于原始数据分散在各个节点,且只能进行少量的信息交换。理论而言,分布式算法最终能够收敛到集中式算法,对于本文提出的doPCA算法,当传感器节点与其邻居节点的信息融合公式能够使得各个节点的Wj完全一致时,那么参数Wj将能够收敛到集中式的最优解W*。因此出现上述现象完全是在可预料范围内的,也是所期盼的。在成都市和武汉市这两个数据集中,doPCA的性能略逊于oPCA,但已经相当接近oPCA的性能。相较于有噪声情况和无噪声情况,可以看出AUC性能只有非常微弱的减小,起到了去噪作用。

本发明的算法无需将原始数据集中到某一数据处理中心处理,而是每个传感器节点均并行的对自身采集到的数据进行处理并与邻居节点进行信息交换,因此相比于集中式算法,本发明的算法处理速度更快,用时更短。表2中给出了50次蒙特卡洛交叉验证实验的用时

表2

从表2中可以看出,各个城市的doPCA模型运行时间均小于oPCA模型的运行时间。因此,总的来说,本发明在空气污染物浓度数据检测上用更少的处理时间取得了接近于甚至超越集中式方法的性能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号