法律状态公告日
法律状态信息
法律状态
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个主成分组成,
所述的步骤(3)具体是针对传感器节点采用以下方式计算获得:
任意两个主成分之间应该是相互独立并且线性无关的。由此目标函数是一个非常典型的最小二乘问题。
(3.1)先用已知空气污染物浓度数据处理获得各个传感器节点的最终特征矩阵:
(3.1.1)针对每个传感器节点,利用拉格朗日乘子法并利用主成分单位正交的性质求解目标函数,获得每个时刻传感器节点获得的空气污染物浓度数据对应的主成分,先利用当前时刻的空气污染物浓度数据和前一时刻的模型参数计算第一主成分,再在前一个主成分的基础上计算下一个主成分,直到计算完传感器节点j在当前时刻的全部p个主成分;
具体传感器节点j在t时刻的第m主成分计算为:
式中,
为了表示清晰并迭代计算,具体采用以下公式计算传感器节点j在t时刻的第m主成分:
式中,
用相同的方法并行地对当前时刻每一个传感器节点进行处理。一个时刻的一个传感器节点的空气污染物浓度数据对应获得p个主成分。
本发明用前一个时刻计算时所获得的第二中间变量来用于对下一个时刻进行计算,使得迭代计算后所有传感器节点的特征矩阵趋于一致。
(3.1.2)然后,通过传感器节点j与邻居传感器节点进行信息交换采用以下公式表示的扩散式融合方式计算获得传感器节点j在当前时刻的特征矩阵:
式中,
一个时刻的一个传感器节点的空气污染物浓度数据对应获得一个的特征矩阵。
(3.1.3)按时间顺序重复步骤(3.1.1)和(3.1.2)对每个时刻的各个传感器节点j进行处理,获得传感器网络中各个传感器节点计算的特征矩阵趋于一致稳定的结果,并将最后时刻记为L时刻,获得各个传感器节点在最后时刻L的特征矩阵
(3.2)用各个传感器节点在最后时刻L的特征矩阵对待测空气污染物浓度数据进行处理获得异常结果:
(3.2.1)针对传感器节点待测时刻的空气污染物浓度数据,建立以下公式的目标函数:
其中,Wj表示当前待测时刻传感器节点j的特征矩阵,是该目标函数的待求矩阵,L表示传感器网络所采集到空气污染物浓度数据包含时间段的最后时刻,L+1表示待测时刻,
通过对权重系数α的调整,可合理扩大待测污空气染物浓度数据对模型产生的影响。
(3.2.2)结合拉格朗日乘子法并利用主成分单位正交的性质对上述待测传感器节点的目标函数进行求解,最终解得传感器节点j在待测时刻L+1的第m个主成分
式中,
(3.2.3)为了定量地表示待测数据成为异常数据的可能性,采用以下公式的余弦相似性绝对值计算获得传感器节点j在待测时刻的空气污染物浓度数据的度量值scorej:
其中,
当针对待测的空气污染物浓度数据时,通过(3.2.1)和(3.2.2)的公式进入doPCA模型计算获得的第m主成分
所述步骤(3.2)获得度量值后,将每个传感器节点的度量值与度量阈值h进行比较,判断待测空气污染物浓度数据正常与否(即是否是污染空气)。
当度量值大于度量阈值h时,则认为待测空气污染物浓度数据不正常,结果为污染空气;
当度量值小于等于度量阈值h时,则认为待测空气污染物浓度数据正常,结果为未污染空气。
本发明有益效果:
1)本发明由于采用分布式的处理方式,各个传感器节点都可以处理采集到的数据,因此不需要将原始数据集中到某一个数据处理中心,就能预测某一范围内的整体空气质量,且性能接近甚至优于集中式处理;并且,具有更小的通信代价和更强的鲁棒性,能够适用于分布式异常检测环境。
2)训练阶段,能够在一定程度上抑制异常训练数据带来的影响,能够起到一定的去噪(抑制异常训练数据影响)作用;
3)相比于将原始数据集中到某一数据处理中心处理的方法,本发明处理速度更快,用时更短。
附图说明
附图1是本发明方法的框架流程图。
附图2是本发明的实现流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的阐述。
如附图2所示,本发明方法实现步骤如下:
1、获取空气污染物浓度数据
所述的空气污染物浓度数据是包括某一城市在某一时间段内的每日多地点空气污染物浓度数据。
可在环保部数据中心及相关的网站上获得某一城市在某一时间段内的每日多站点空气污染物测量数据。具体实施例在青悦开放环境数据中心获得杭州市每日空气污染物浓度的历史数据,得到原始数据之后,对获得的原始数据进行贴标签操作作为最终用于后续目标函数处理和计算的空气污染物浓度数据(具体实施例中还将数据分为训练集和测试集),标签是指空气质量分级的标签。
2、生成传感器网络拓扑结构并初始化参数
考虑在某个特定的地理区域的情况下,生成一个由J个节点组成的分布式传感器网络.不失一般性,将网络用一个无向连通图
传感器网络拓扑结构生成之后,初始化每个传感器节点的特征矩阵
3、分布式在线主成分分析模型的训练
对于分布式在线主成分分析模型,每个传感器节点
针对每个传感器节点,利用拉格朗日乘子法并利用主成分单位正交的性质求解目标函数,每个时刻传感器节点获得的空气污染物浓度数据xjt对应求解该时刻的特征矩阵
当所有主成分计算完毕后,我们用相同的方法并行地对每一个传感器节点进行上述处理;
然后,对于每一个传感器节点,通过传感器节点j与邻居传感器节点进行信息交换以得到该传感器节点在该时刻的特征矩阵
按时间顺序依次对每个时刻的传感器网络的传感器节点重复上述过程直到传感器网络中各个传感器节点的特征矩阵
4、待测空气污染物浓度数据异常检测
当完成步骤3之后,由于传感器网络中各个传感器节点的特征矩阵
考虑待测空气污染物浓度数据对模型产生的影响,正常数据和异常数据会对模型产生不一样的影响。将待测空气污染物浓度数据xj(L+1)作为传感器节点的输入,根据训练好的分布式在线主成分分析模型,即运用以下公式可以计算出新的
在这里再次强调,应该先计算第一主成分,然后再计算第二主成分,依此类推,直到计算完传感器节点j在当前时刻的全部p个主成分,组成传感器节点j在当前时刻的特征矩阵
为了定量地表示待测数据成为异常数据的可能性,采用以下公式的余弦相似性绝对值计算获得待测时刻的空气污染物浓度数据的度量值:
其中,
获得度量值后,将每个传感器节点的度量值与按经验设置的度量阈值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模型的运行时间。因此,总的来说,本发明在空气污染物浓度数据检测上用更少的处理时间取得了接近于甚至超越集中式方法的性能。
机译: 一种深入学习处理加速系统,用于基于分布式环境中的数据包传输的流数据和使用相同的异常检测系统
机译: 一种系统,内容编辑服务器,音频记录从属设备和内容编辑接口,用于分布式现场表演预定音频记录,基于云的音频内容编辑以及音轨和相关元数据的在线内容分发
机译: 一种系统,内容编辑服务器,音频记录从属设备和内容编辑接口,用于分布式现场表演预定音频记录,基于云的音频内容编辑以及音轨和相关元数据的在线内容分发