一种时间序列数据的异常检测方法

团队介绍 

我们是光大科技有限公司智能云计算部智能化平台团队监控平台项目组,致力于光大银行监控运维工具和平台建设,全面支撑传统架构和容器云分布式架构下的监控管理,致力于边缘计算、大数据、AIOps在监控运维领域的应用和实践。我们团队在分布式、大数据、人工智能领域拥有多名经验丰富的技术专家,将不定期与大家分享原创技术文章和相关实践经验,期待与大家共同探讨和进步。 

<<<<

时间序列数据是在不同时间上收集的数据,反映某一事物、现象随时间变化的情况,我们经常接触的性能数据、日志等都属于时间序列数据。

异常检测作为时序数据分析最成熟的应用之一,广泛应用于网络安全检测、量化交易等领域。

本文为大家介绍一种时间序列数据的异常检测方法,该方法基于机器学习算法鲁棒主成分分析(Robust Principal Component Analysis,RPCA)以及动态模式分解(Dynamic Mode Decomposition,DMD),并基于这两种算法加以改进,以此提高时序数据的异常检测精度,下面简单回顾下相关知识点。

<<<<

秩与低秩?

为了从方程组中去掉多余的方程,引出了“矩阵的秩”,度量的是矩阵的行列之间的相关性。

为了求矩阵D的秩,先是通过矩阵初等变换把D化为阶梯型矩阵,若该阶梯型矩阵有r个非零行,那D的秩rank(D)就等于r。如果矩阵的各行或列是线性无关的,则矩阵就是满秩,也就是秩等于行数。

如果X是一个m行n列的数值矩阵,rank(X)是X的秩,且rank (X)远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。

<<<<

何为RPCA?

RPCA用以处理解决含有高幅度尖锐噪声的数据其基本假设是数据矩阵包含结构信息和噪声

这里我们假定时间序列数据为矩阵D,则RPCA将一个时序数据构成的数据矩阵分解为两个矩阵相加D=A+E的形式,如下公式所示:

一种时间序列数据的异常检测方法

A是低秩的(矩阵内部有一定的结构信息造成各行或列间是线性相关的)。

E是稀疏的(含有噪声呈稀疏特性)。

使用核范数以及L1范数对相关矩阵进行约束,进而优化求解以获取低秩及稀疏矩阵,此时的稀疏矩阵便可视为异常矩阵。

<<<<

矩阵范数?

L0范数

用以度量矩阵中非零元素的个数;

L1范数

矩阵中各元素绝对值之和,它是L0范数的最优凸近似,可近似表示稀疏;

核范数

矩阵奇异值的和,用于约束矩阵的低秩特性;

F范数

称为Frobenius范数,即矩阵元素绝对值的平方和再开平方。

<<<<

何为DMD?

动态模式分解(DMD)源于流体动力学,用来挖掘隐藏在复杂系统中的动态结构。作为一种常见的模态分解方法,也是在动力学系统中常被用来降维的方法。它的整体稳定性分析中的Koopman算子,可以用来有序地描述系统的动态。

在动态模式分解算法中,要想提取流体数据中隐含的动态特征,从实验或数值模拟中获得的数据要求满足以下形式:

一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法

引入DMD中的Koopman算子来描述从前一个快照矩阵到后一个快照矩阵的转换过程,则该运算符将满足以下关系:

一种时间序列数据的异常检测方法

充分考虑到时序数据中的动态信息,将其与RPCA算法进行整合便演变成了本文所要介绍的方法,该方法还考虑到了噪声对原始数据的影响。

首先将低秩数据、噪声及异常数据分别用

一种时间序列数据的异常检测方法

进行表示。

基于低秩表示模型RPCA,分解得到的低秩矩阵可以表示为D=Z+E+S。时间序列数据中的异常矩阵则通过解决一下问题进行求解:

一种时间序列数据的异常检测方法

该方法提出三个约束条件进行求解:

1)具有周期性的时间序列数据可以用低阶动力学近似建模,因此对Koopman算子进行低秩约束,这里使用核范数代替低秩约束(为解决NP-hard问题)。

2)对于存在周期性变化的时序数据,为了捕获相邻同周天相同时间段的数据差异值,引入时间约束,可以构造

一种时间序列数据的异常检测方法

则时变矩阵H(Z+E+S)应该是稀疏的,考虑到L1范数比L2范数更加具有鲁棒性,因此将L1范数用于约束时变矩阵。

3)由于多种不确定因素的影响,时序数据随机波动,这里假定了噪声E遵循高斯分布,并使用F范数来获取高斯噪声。

而对于异常来说,引发时序数据异常的事件并不经常发生,因此异常值保持稀疏特性,将稀疏约束L1范数应用于异常矩阵。

结合以上所述的所有约束条件,本文所介绍的异常检测模型表示如下:

一种时间序列数据的异常检测方法
一种时间序列数据的异常检测方法

求解过程可以参考以下文章,有兴趣的小伙伴可自行求解一下,点击

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33548.html

(0)
EBCloud's avatarEBCloud
上一篇 2024年4月2日 下午3:29
下一篇 2024年4月2日 下午3:29

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注