一种异常检测方法、应用和监控设备的制造方法

文档序号:10534682阅读:233来源:国知局
一种异常检测方法、应用和监控设备的制造方法
【专利摘要】本发明公开了一种异常检测方法,在监控设备中执行,适于对被监控设备的一个或多个性能指标进行实时异常检测,该方法包括:获取被监控设备的某个性能指标在当前时刻的观测值;根据前一时刻的预测值和当前时刻的观测值确定当前时刻的预测值;根据当前时刻的观测值与当前时刻的预测值确定当前时刻的差值;根据当前时刻的差值,采用增量的ESD算法判断所述当前时刻的观测值是否为异常值。本发明还公开了能够实施上述方法的异常检测应用,和包括上述应用的监控设备。
【专利说明】
_种异常检测方法、应用和监控设备
技术领域
[0001] 本发明涉及计算设备性能监控技术领域,尤其涉及一种能够对被监控设备的一个 或多个性能指标进行实时异常检测的方法、应用和监控设备。
【背景技术】
[0002] 随着信息技术的发展,各种应用、网站层出不穷,对计算设备的性能提出了更高的 要求。对各项性能指标进行监控,实时获取计算设备的运行状态并排查异常,是提高其计算 性能的必要步骤。一般来说,监控的性能指标包括CHJ利用率、吞吐量、响应时间,等等。
[0003] 现有的技术方案中多采用阈值来进行异常检测,即,针对某个性能指标设置固定 的阈值,若性能指标的观测值超出阈值范围,则判定该观测值为异常值。在上述方法中,阈 值的取值对异常检测的准确性有很大的影响,然而对于阈值的设置却缺少系统的方法,导 致该异常检测方法往往准确性不高。此外,需要对不同的性能指标分别设置阈值,费时费 力。

【发明内容】

[0004] 为此,本发明提供一种异常检测方法、应用和监控设备,以力图解决或至少缓解上 面存在的问题。
[0005] 根据本发明的一个方面,提供一种异常检测方法,在监控设备中执行,适于对被监 控设备的一个或多个性能指标进行实时异常检测,所述方法包括:获取被监控设备的某个 性能指标在当前时刻的观测值;根据前一时刻的预测值和所述当前时刻的观测值确定当前 时刻的预测值;根据所述当前时刻的观测值与所述当前时刻的预测值确定当前时刻的差 值;根据所述当前时刻的差值,采用增量的ESD算法判断所述当前时刻的观测值是否为异常 值。
[0006] 可选地,在根据本发明的异常检测方法中,根据前一时刻的预测值和所述当前时 刻的观测值确定当前时刻的预测值的步骤采用卡尔曼滤波算法实现。
[0007] 可选地,在根据本发明的异常检测方法中,卡尔曼滤波算法包括:根据前一时刻的 预测值确定当前时刻的学习值;根据前一时刻的预测值的协方差确定当前时刻的学习值的 协方差;根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益;根据所述当前 时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔曼增益确定当前时刻的预测 值;根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时刻的预 测值的协方差。
[0008] 可选地,在根据本发明的异常检测方法中,根据前一时刻的预测值确定当前时刻 的学习值的步骤采用以下公式:
[0009] XS)n = XP)n-l;
[0010] 所述根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差的步骤采 用以下公式:
[0011] Ps;n = Pp;n-i+Qn
[0012] 所述根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益的步骤采 用以下公式:
[0014] 所述根据所述当前时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔 曼增益确定当前时刻的预测值的步骤采用以下公式:
[0015] XP)n = Xs,n+Kn(Xr>n-Xs>n)
[0016] 所述根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当 前时刻的预测值的协方差的步骤采用以下公式:
[0017] PP)n = Ps,n(l-Kn)
[0018]其中,n为正整数,表示当前时刻,(n-1)表示前一时刻,表示前一时刻的预测 值,Pp, n-1表不前一时刻的预测值的协方差,Xs, !!表不当前时刻的学习值,Xr, !!表不当前时刻的 观测值,XP,n表示当前时刻的预测值,Ps, n表示当前时刻的学习值的协方差,Pp,n表示当前时 刻的预测值的协方差,K n表示当前时刻的卡尔曼增益,Qn为观测值序列Xr在当前时刻的标准 差,Rn为观测值序列Xr在当前时刻的方差。
[0019] 可选地,在根据本发明的异常检测方法中,将XP,Q设置为0,Pp,Q设置为1。
[0020] 可选地,在根据本发明的异常检测方法中,根据所述当前时刻的观测值与所述当 前时刻的预测值确定当前时刻的差值的步骤采用如下公式:
[0021] XgaP,n = Xr,n-XP,n
[0022]其中,n为正整数,表示当前时刻,Xr,n表示当前时刻的观测值,XP, n表示当前时刻的 预测值,乂_,"表示当前时刻的差值。
[0023] 可选地,在根据本发明的异常检测方法中,根据所述当前时刻的差值,采用增量的 方式更新差值序列Xgap在当前时亥Ijn的均值mean n和标准差stdn;在设定的显著性水平a下,计 算当前时刻的临界值根据所述当前时刻的差值X gap,n、所述均值meann和所述标准差stdn 确定离群度G;判断离群度G与临界值A的大小,若G>A,则乂1"是异常值,若G<A,则Xr,n不是异 常值。
[0024] 可选地,在根据本发明的异常检测方法中,采用以下公式更新差值序列Xgap在当前 时刻的均值mean n:
[0026] 可选地,在根据本发明的异常检测方法中,采用以下公式更新差值序列Xgap在当前 时刻的标准差stdn:
[0027] Sn - Sn-l'l'(Xgap,n-HlGailn-l) (Xgap,n-HlGailn)
[0029]可选地,在根据本发明的异常检测方法中,临界值A按照如下公式计算:
[0031]其中,tp,n-2表示自由度为n-2的t分布的第100*p百分位数,其中,p = l-a/(2n)。
[0032]可选地,在根据本发明的异常检测方法中,离群度G按照如下公式确定:
[0034] 可选地,在根据本发明的异常检测方法中,在所述采用增量的ESD算法判断所述当 前时刻的观测值是否为异常值的步骤之后,还包括:将异常值和各异常值的离群度以文本 和/或图形界面的形式在监控设备的屏幕上显示。
[0035] 根据本发明的一个方面,提供一种异常检测应用,在监控设备中执行,适于对被监 控设备的一个或多个性能指标进行实时异常检测,所述应用包括:数据获取模块,适于获取 被监控设备的某个性能指标在当前时刻的观测值;数据预测模块,适于根据前一时刻的预 测值和所述当前时刻的观测值确定当前时刻的预测值;差值求取模块,适于根据所述当前 时刻的观测值与所述当前时刻的预测值确定当前时刻的差值;异常检测模块,适于根据所 述当前时刻的差值,采用增量的ESD算法判断所述当前时刻的观测值是否为异常值。
[0036] 可选地,在根据本发明的异常检测应用中,数据预测模块进一步适于采用卡尔曼 滤波算法来根据前一时刻的预测值和当前时刻的观测值确定当前时刻的预测值。
[0037] 可选地,在根据本发明的异常检测应用中,卡尔曼滤波算法包括:根据前一时刻的 预测值确定当前时刻的学习值;根据前一时刻的预测值的协方差确定当前时刻的学习值的 协方差;根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益;根据所述当前 时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔曼增益确定当前时刻的预测 值;根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时刻的预 测值的协方差。
[0038] 可选地,在根据本发明的异常检测应用中,根据前一时刻的预测值确定当前时刻 的学习值的步骤采用以下公式:
[0039] Xs,n = Xp,n-l;
[0040] 所述根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差的步骤采 用以下公式:
[0041] Ps;n = Pp;n-i+Qn
[0042]所述根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益的步骤采 用以下公式:
[0044] 所述根据所述当前时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔 曼增益确定当前时刻的预测值的步骤采用以下公式:
[0045] XP)n = Xs,n+Kn(Xr>n-Xs>n)
[0046] 所述根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当 前时刻的预测值的协方差的步骤采用以下公式:
[0047] PP)n = Ps,n(l-Kn)
[0048] 其中,n为正整数,表示当前时刻,(n-1)表示前一时刻,表示前一时刻的预测 值,Pp, n-1表不前一时刻的预测值的协方差,Xs, !!表不当前时刻的学习值,Xr, !!表不当前时刻的 观测值,XP,n表示当前时刻的预测值,Ps, n表示当前时刻的学习值的协方差,Pp,n表示当前时 刻的预测值的协方差,K n表示当前时刻的卡尔曼增益,Qn为观测值序列Xr在当前时刻的标准 差,Rn为观测值序列Xr在当前时刻的方差。
[0049] 可选地,在根据本发明的异常检测应用中,XP,0取值为0,PP,o取值为1。
[0050] 可选地,在根据本发明的异常检测应用中,差值求取模块适于按照以下公式根据 所述当前时刻的观测值与所述当前时刻的预测值确定当前时刻的差值:
[0051] Xgap,n = Xr,n-Xp,n
[0052]其中,n为正整数,表示当前时刻,Xr,n表示当前时刻的观测值,XP, n表示当前时刻的 预测值,乂_,"表示当前时刻的差值。
[0053] 可选地,在根据本发明的异常检测应用中,异常检测模块进一步适于:采用增量的 方式更新差值序列Xgap在当前时刻的均值meanr^P标准差std n;在设定的显著性水平a下,计 算当前时刻的临界值根据所述当前时刻的差值Xgap, n、所述均值meann和所述标准差stdn 确定离群度G;判断离群度G与临界值A的大小,若G>A,则乂1"是异常值,若G<A,则Xr,n不是异 常值。
[0054] 可选地,在根据本发明的异常检测应用中,异常检测模块适于按照以下公式更新 差值序列Xgap在当前时刻的均值mean n:
[0056]可选地,在根据本发明的异常检测应用中,异常检测模块适于按照以下公式更新 差值序列Xgap在当前时刻的标准差Stdn:
[0059]可选地,在根据本发明的异常检测应用中,异常检测模块适于按照以下公式计算 临界值h
[0061]其中,tp,n-2表示自由度为n-2的t分布的第100*p百分位数,其中,p = l-a/(2n)。
[0062]可选地,在根据本发明的异常检测应用中,异常检测模块适于按照以下公式计算 离群度G:
[0064]可选地,在根据本发明的异常检测应用中,还包括结果输出模块,适于将异常值和 各异常值的离群度以文本和/或图形界面的形式在监控设备的屏幕上显示。
[0065] 根据本发明的一个方面,提供一种监控设备,包括如上所述的异常检测应用。
[0066] 根据本发明的技术方案,采用卡尔曼滤波算法学习某个性能指标的状态,并输出 当前时刻的预测值。计算当前时刻的观测值与预测值的差值,采用增量的ESD算法判断该差 值是否为异常值。此外,本发明还可以计算出异常值的离群度,用来标记各异常值的异常程 度。卡尔曼滤波算法使得本发明的异常检测方法无须设置阈值,减少了人为设置阈值等参 数带来的误差,提高了异常检测的准确性。增量的ESD算法采用增量的方式实时更新差值序 列的方差和均值,节省了存储空间和运算时间,更好地实现了的实时的异常检测。
【附图说明】
[0067] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方 面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面 旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述 以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的 部件或元素。
[0068] 图1示出了根据本发明一个实施例的性能监控系统100的示意图;
[0069] 图2示出了根据本发明一个实施例的监控设备200的结构图;
[0070] 图3示出了根据本发明一个实施例的异常检测应用300的结构图;
[0071]图4示出了根据本发明一个实施例的采用卡尔曼滤波算法输出各时刻的预测值的 示意图;
[0072]图5示出了根据本发明一个实施例的增量的ESD算法500的流程图;
[0073] 图6示出了根据本发明一个实施例的异常检测结果的示意图;以及
[0074] 图7示出了根据本发明一个实施例的异常检测方法700的流程图。
【具体实施方式】
[0075] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0076] 图1示出了根据本发明一个实施例的性能监控系统100的示意图。如图1所示,性能 监控系统包括1个监控设备200和多个被监控设备。监控设备200可以是桌面计算机、笔记本 计算机、服务器或工作站。监控设备200还可以实现为小尺寸便携(或者移动)电子设备的一 部分,这些电子设备可以是诸如手机、平板电脑、个人媒体播放器设备、无线网络浏览设备、 可穿戴设备(如智能手表、智能眼镜等)、应用专用设备、或者可以包括上面任何功能的混合 设备。被监控设备包括桌面电脑、笔记本电脑、平板电脑、手机等具有运算能力的设备。虽然 图1中仅示出了一个监控设备200,但是本领域技术人员可以意识到,性能监控系统100中还 可以包括多个监控设备,这些监控设备可以驻留在多个地理位置中。
[0077]监控设备200中部署了异常检测应用300,可以对多个被监控设备的多项性能指标 进行监控,实时获取被监控设备的运行状态并排查异常。具体来说,首先获取性能指标的实 时观测值,然后采用卡尔曼滤波算法确定当前时刻的预测值,计算当前时刻的观测值与预 测值的差值,根据上述差值,采用增量的ESD算法判断当前时刻的观测值是否为异常值并计 算各异常值的离群度,最后,将异常检测结果以文本和/或图形界面的形式在监控设备200 的屏幕上进行显示。
[0078]图2示出了根据本发明一个实施例的监控设备200的结构图。在基本配置202中,监 控设备200典型地包括系统存储器206和一个或者多个处理器204。系统存储器206可以包括 操作系统220、一个或者多个应用222以及程序数据226,应用222可以布置为在操作系统上 利用程序数据226进行操作。
[0079]根据一种实施例,应用222可以被配置为包括异常检测应用300,相应地,程序数据 226中存储有实时采集到的一个或多个被监控设备的一个或多个性能指标数据,性能指标 数据实际上是一个时间序列。异常检测应用300从程序数据226中获取性能指标在每个时刻 的观测值,并分别检测各观测值是否异常。
[0080]图3示出了根据本发明一个实施例的异常检测应用300的结构图。该应用在监控设 备中执行,适于对被监控设备的一个或多个性能指标进行实时异常检测。实时异常检测就 是,每当监控设备200采集到某个性能指标的新的观测值,异常检测应用300均进行一次异 常检测,判断该观测值是否为异常值。如图3所示,异常检测应用300包括数据获取模块310、 数据预测模块320、差值求取模块330、异常检测模块340。
[0081]数据获取模块310适于获取被监控设备的某个性能指标在当前时刻的观测值。性 能指标可以是CHJ利用率、吞吐量、响应时间,但不限于此。当然,数据获取模块210也可以获 取多个性能指标在当前时刻的观测值。对于上述多个性能指标,需要分别判断每个性能指 标在当前时刻的观测值是否为异常值。因此,多个性能指标的实时异常检测与单个性能指 标的实时异常检测的原理相同,为了叙述方便,此处以单个性能指标的实时异常检测为例 对本发明的技术方案进行说明。
[0082]数据获取模块310可以直接采集被监控设备的性能指标数据,也可以先由监控设 备200的其他应用224来采集数据并存储至程序数据226(参考图2),然后数据获取模块310 再从程序数据226处读取性能指标数据。性能指标数据的采集方法是本领域的公知技术,例 如通过向被监控设备中部署探针、注入脚本,或通过被监控设备本身提供的接口,等等,此 处对性能数据的采集方法不做赘述。
[0083]若数据获取模块310未能成功获取到某个性能指标在当前时刻的观测值,则由数 据填充模块350(图3中未示出)对当前时刻的观测值进行填充,以使后续的异常检测过程能 够正常进行。根据一种实施例,若数据获取模块310未能成功获取当前时刻的观测值,则数 据填充模块350将当前时刻的观测值自动设置为0。根据另一种实施例,若数据获取模块310 未能成功获取当前时刻的观测值,则数据填充模块350将当前时刻的观测值设置为与前一 时刻的观测值相同。当然,除上述方法之外,还可以采用其他方法来填充缺失的数据,本发 明对填充缺失数据的具体算法不做限制。
[0084] 在获取了当前时刻的观测值后,数据预测模块320根据该观测值和前一时刻的预 测值确定当前时刻的预测值。根据一种实施例,当前时刻的预测值可以采用卡尔曼滤波算 法来确定。
[0085] 卡尔曼滤波算法由匈牙利数学家Rudolf Emil Kalman于1960年在其论文《A New Approach to Linear Filtering and Prediction Problems》(线型滤波与预测问题的新 方法)中提出。卡尔曼滤波算法是一种最优化自回归数据处理算法。卡尔曼滤波算法包括以 下5个核心公式:
[0086] Xn|n-l = FnXn-l|n-l+BnUn (1)
[0087] Pn|n-l = FnPn-l|n-lFnT+Qn (2)
[0088] Kn = Pn | n-lHnT ( HnPn | n-lHnT+Rn ) (3)
[0089] Xn|n = Xn|n-l+Kn(zn-HnXn|n-l) (4)
[0090] Pn|n = Pn|n-1-KnHnPn|n-l (5)
[0091] 其中,式(1)中,n为正整数,表示当前时刻,n-1表示前一时刻。Xn-Urrf是前一时刻 的预测值,为当前时刻的学习值,u n为当前时刻的控制量,F4PBn为系统参数。
[0092] 式⑵中,Pn-l I n-l为前一时刻的预测值的协方差,Pn I n-l为当前时刻的学习值的协方 差,Qn为系统参数,其他参数的含义与式(1)中相同。
[0093]式(3)中,Kn为当前时刻的卡尔曼增益,H4PRn均为系统参数,其他参数的含义与式 (1)-(2)中相同。
[0094]式(4)中,Xn|n为当前时刻的预测值,zn为当前时刻的观测值,其他参数的含义与式 (1)_(3)中相同。
[0095]式(5)中,Pn|n为当前时刻的预测值的协方差,他参数的含义与式(1)_(4)中相同。 [0096]以上5个公式中,涉及到三种值,即观测值、学习值、预测值。其中,观测值即为系统 测量得到的值,预测值是采用卡尔曼滤波算法算出的最优预测值,学习值是根据上一时刻 的预测值计算得出的并用于计算下一时刻的预测值的中间变量。为了区分方便,我们用Xr 表示观测值序列,X s表示学习值序列,知表示预测值序列。考虑到异常检测的实际情况(性能 指标的时间序列为一维),并为了节省计算时间,将u n设为0,Fn、Hn均设为l,Qn为观测值序列 Xr在当前时刻的标准差,R n为观测值序列Xr在当前时刻的方差。当然,un、Bn、F n、Hn、Qn&&Rn 均可以设为其他数值,本发明对各参数的取值并无限制。
[0097]采用以上参数设置,上述式(1)_(5)将转化为以下5个公式:
[0098] Xs,n = XP)n-l (6)
[0099] Ps;n = Pp;n-i+Qn (7)
[0100] Kn = Ps,n/(Ps,n+Rn) (8)
[0101] XP)n = Xs,n+Kn(Xr>n-Xs>n) (9)
[0102] PP)n = Ps,n(l-Kn) (10)
[0103]其中,n为正整数,表示当前时刻,(n-l)表示前一时刻,表示前一时刻的预测 值,Pp, n-1表不前一时刻的预测值的协方差,Xs, !!表不当前时刻的学习值,Xr, !!表不当前时刻的 观测值,XP,n表示当前时刻的预测值,Ps, n表示当前时刻的学习值的协方差,Pp,n表示当前时 刻的预测值的协方差,K n表示当前时刻的卡尔曼增益,Qn为观测值序列Xr在当前时刻的标准 差,Rn为观测值序列Xr在当前时刻的方差。
[0104]当数据获取模块310获取到当前时刻的观测值乂1"后,数据预测模块320即可根据 当前时刻的观测值Xr,n、前一时刻的预测值Xp,n-4P前一时刻的预测值的协方差Pppi,采用 式(6)-(10)计算得出当前时刻的预测值X P,n。预测值的计算是一个递推的过程。对于异常检 测应用获取的第一个观测值Xr>1,由于其对应于异常检测的初始时刻,卡尔曼滤波模型尚未 建立,缺少Xp,(^PPp,o的值。因此,对于异常检测应用获取的第一个观测值Xr>1,需要给X P,o和 Pp, 0赋值;对于接下来获取的观测值Xr, 2,Xr, 3,…,则可以按照式(6 )-(10 )依次计算。根据一 种实施例,将XP,0设置为0,将匕,〇设置为1。当然,XP,dPP P,()也可以设置为其他值,本发明对 Xp,(^PPp,o的取值不做限制。
[0105] 图4示出了根据本发明一个实施例的采用卡尔曼滤波算法输出各时刻的预测值的 示意图。图4中,横坐标表示观测值的时间序号,左边的纵坐标表示观测值的大小,右边的纵 坐标表示采用卡尔曼滤波算法得出的预测值的大小。图4中有上下两条曲线,上面的曲线即 为观测值序列,下面的曲线为预测值序列。如图4所示,两条曲线的形状很相似,表明卡尔曼 滤波算法算出的预测值可以很好地拟合采集到的性能指标的观测值。
[0106] 数据预测模块320确定了当前时刻的预测值XP,n后,差值求取模块330根据当前时 亥IJ的预测值X P, n和当前时刻的观测值Xr, n确定当前时刻的差值Xgap, n,即:
[0107] XgaP>n = Xr>n-XP)n (11)
[0108] 随后,异常检测模块340根据当前时刻的差值xgap,n,采用增量的ESD算法判断观测 值Xr, n是否为异常值。现有技术中的ESD(Extreme Studentized Deviate,极端学生化偏差) 算法能够确定一组数据中的异常点,在本发明中,对现有技术中的ESD算法做了改进,即提 出一种增量的 ESD算法,在该算法中,采用增量的方式计算均值、方差等参数,节省了存储空 间和运算时间,更好地实现了的实时的异常检测。
[0109]异常检测模块340采用增量的ESD算法判断当前时刻的差值Xgap,n是否为异常值。当 前时刻的差值Xgap, n与当前时刻的观测值Xr, "是一一对应的关系,差值Xgap, "为异常值即表明 观测值Xr,n是异常值。
[0110] 图5示出了根据本发明一个实施例的增量的ESD算法500的流程图。如图5所示,该 算法始于步骤S510。
[0111] 在步骤S510中,采用增量的方式更新差值序列xgap在当前时刻的均值meann和标准 差std n。其中,均值meann可以按照以下公式来计算:
(12)
[0113]对于标准差stdn的计算,可以采用以下公式:
[0116] 上述标准差stdn的更新过程可以用以下伪代码表示: Let n 1, mean 0, old_mearH- 0, S 0 For each datum X^.p^ : old-mean - mean
[0117] mean 一 mean + (Xgap.丨,一.mean) / n S S + (X^p^-mean) * ( X,;;,P.n - old_mean) n=n+l std - (S / (li-2))八0.5
[0118] 由以上分析,当前时刻的标准差^4采用的是一种增量的计算方式,避免了每次 获取新的差值后根据差值序列Xgap中的所有元素重新计算X gap的标准差,节省了存储空间和 运算时间,更好地实现了的实时的异常检测。
[0119] 随后,在步骤S520中,计算当前时刻的临界值A。在现有技术的能够检测出j个异常 点的ESD算法中,临界值\按照以下公式计算: (15) L0121」式(15)中,tP,n-i-1
表示自由度为n-i-1的t分布的第100*p百分位数4 = 1-〇/(2(11-i+1 )),a为显著水平,一般设定为一个较小的数,例如,a = 〇. 05。当然,a也可以取其他值,本 发明对a的取值并无限制。i = 1,2,…,j。
[0122]在本发明中,每个时刻分别采用增量的ESD算法判断当前时刻的差值Xgap,n是否为 异常值,即每次算法仅需计算一个临界值A,且至多检测出一个异常点。这种情况下,式(15) 中的i取值为1,相应地,式(15)转化为以下公式:
(16)
[0124] 式(16)中,tP,n-2表示自由度为n-2的t分布的第100*p百分位数,其中,p=l_a/ (2n),根据一种实施例,a = 〇.〇5。
[0125] 随后,在步骤S530中,根据当前时刻的差值Xgap,n、均值rneandP标准差std n确定离 群度G。离群度G采用以下公式确定:
(17)
[0127] 在图5所示的算法示例中,先执行步骤S520计算临界值A,再执行步骤S530计算离 群度G。显然,步骤S520和步骤S530的顺序可以互换,即先计算离群度G,再计算临界值A。步 骤S520和步骤S530的执行先后顺序对本发明并无影响。
[0128] 随后,在步骤S540中,判断离群度G与临界值A的大小,若GH,则Xgap,"是异常值,相 应地,Xr, n也是异常值;若GSA,则xgap,n不是异常值,相应地,Xr,n&不是异常值。
[0129] 根据一种实施例,异常检测应用300还包括结果输出模块360(图3中未示出),当异 常检测模块340完成异常值的检测后,结果输出模块360适于将异常值和各异常值的离群度 以文本和/或图形界面的形式在监控设备的屏幕上显示。图6示出了根据本发明一个实施例 的异常检测结果的示意图。图6中,横坐标表示观测值的时间序号,左边的纵坐标表示差值 的大小,右边的纵坐标表示离群度的大小。图6中有上下两条曲线,上面的曲线即为差值序 列X gap,下面的曲线是异常检测结果曲线。尽管在前面的步骤中计算了差值序列Xgap中每一 个元素的离群度,但是,异常检测结果曲线中仅示出了异常值的离群度,而对于非异常值, 其离群度均记为0。即,在异常检测结果曲线上,非〇点即为异常点,离群度越高,则该点的异 常程度越大。
[0130] 图7示出了根据本发明一个实施例的异常检测方法700的流程图。该方法在监控设 备中执行,适于对被监控设备的一个或多个性能指标进行实时异常检测。如图7所示,该方 法始于步骤S710。
[0131 ]在步骤S710中,获取被监控设备的某个性能指标在当前时刻的观测值。
[0132] 随后,在步骤S720中,根据前一时刻的预测值和当前时刻的观测值确定当前时刻 的预测值。根据一种实施例,采用卡尔曼滤波算法来确定当前时刻的预测值。卡尔曼滤波算 法的具体过程参见前述对数据预测模块320的描述,此处不再赘述。
[0133] 随后,在步骤S730中,根据当前时刻的观测值与当前时刻的预测值确定当前时刻 的差值。根据一种实施例,当前时刻的差值=当前时刻的观测值-当前时刻的预测值。
[0134] 随后,在步骤S740中,根据当前时刻的差值,采用增量的ESD算法判断当前时刻的 观测值是否为异常值。实际上,本发明中采用增量的ESD算法判断当前时刻的差值是否为异 常值,因为当前时刻的差值与当前时刻的观测值有一一对应的关系,差值为异常值即表明 观测值为异常值。增量的ESD算法的流程参见图5以及前述对异常检测模块340的描述,此处 不再赘述。
[0135] 此外,在步骤S740之后,还可以包括步骤S750 (图7中未示出),将异常值和各异常 值的离群度以文本和/或图形界面的形式在监控设备的屏幕上显示。
[0136] 根据本发明的技术方案,采用卡尔曼滤波算法学习某个性能指标的状态,并输出 当前时刻的预测值。计算当前时刻的观测值与预测值的差值,采用增量的ESD算法判断该差 值是否为异常值。此外,本发明还可以计算出异常值的离群度,用来标记各异常值的异常程 度。卡尔曼滤波算法使得本发明的异常检测方法无须设置阈值,减少了人为设置阈值等参 数带来的误差,提高了异常检测的准确性。增量的ESD算法采用增量的方式实时更新差值序 列的方差和均值,节省了存储空间和运算时间,更好地实现了的实时的异常检测。
[0137] A6:A1所述的异常检测方法,其中,所述根据所述当前时刻的观测值与所述当前时 刻的预测值确定当前时刻的差值的步骤采用如下公式:
[0138] XgaP>n = Xr>n-XP)n
[0139] 其中,n为正整数,表示当前时刻,Xr,n表示当前时刻的观测值,XP,n表示当前时刻的 预测值,乂_,"表示当前时刻的差值。
[0140] A7:A6所述的异常检测方法,其中,根据所述当前时刻的差值,采用增量的ESD算法 判断所述当前时刻的观测值是否为异常值的步骤包括:
[0141 ]采用增量的方式更新差值序列Xgap在当前时刻n的均值meann和标准差stdn;
[0142]在设定的显著性水平a下,计算当前时刻的临界值入;
[0143 ]根据所述当前时刻的差值Xgap, n、所述均值meann和所述标准差s tdn确定离群度G;
[0144] 判断离群度G与临界值A的大小,若G>A,则乂1"是异常值,若G彡A,则Xr,nf是异常 值。
[0145] A8:A7所述的异常检测方法,其中,采用以下公式更新差值序列Xgap在当前时刻的 均值mean n:
[0147] A9:7所述的异常检测方法,其中,采用以下公式更新差值序列Xgap在当前时刻的标 准差Stdn:
[0150] A10:A7所述的异常检测方法,其中,临界值A按照如下公式计算:
[0152]其中,tP,n-2表示自由度为n-2的t分布的第100*p百分位数,其中,p = l_a/(2n)。 [0153] All :7所述的异常检测方法,其中,离群度G按照如下公式确定:
[0155] A12:A1所述的异常检测方法,其中,在所述采用增量的ESD算法判断所述当前时刻 的观测值是否为异常值的步骤之后,还包括:将异常值和各异常值的离群度以文本和/或图 形界面的形式在监控设备的屏幕上显示。
[0156] B17:B16所述的异常检测应用,其中,XP,o取值为0,PP,o取值为1。
[0157] B18:B13所述的异常检测应用,其中,所述差值求取模块适于按照以下公式根据所 述当前时刻的观测值与所述当前时刻的预测值确定当前时刻的差值:
[0158] Xgap,n = Xr,n-Xp,n
[0159] 其中,n为正整数,表示当前时刻,Xr,n表示当前时刻的观测值,XP,n表示当前时刻的 预测值,乂_,"表示当前时刻的差值。
[0160] B19:B18所述的异常检测应用,其中,所述异常检测模块进一步适于:
[0161 ]采用增量的方式更新差值序列Xgap在当前时刻的均值meandP标准差stdn;
[0162]在设定的显著性水平a下,计算当前时刻的临界值入;
[0163 ]根据所述当前时刻的差值Xgap, n、所述均值meann和所述标准差s tdn确定离群度G;
[0164] 判断离群度G与临界值A的大小,若G>A,则乂1"是异常值,若G彡A,则Xr,nf是异常 值。
[0165] B20:B19所述的异常检测应用,其中,所述异常检测模块适于按照以下公式更新差 值序列Xg ap在当前时刻的均值meann:
[0167] B21:19所述的异常检测应用,其中,所述异常检测模块适于按照以下公式更新差 值序列Xgap在当前时刻的标准差stdn:
[0170] B22:19所述的异常检测应用,其中,所述异常检测模块适于按照以下公式计算临 界值夂:
[0172]其中,tP,n-2表示自由度为n-2的t分布的第100*p百分位数,其中,p = l_a/(2n)。
[0173] B23:B19所述的异常检测应用,其中,所述异常检测模块适于按照以下公式计算离 群度G:
[0175] B24:B13所述的异常检测应用,其中,还包括结果输出模块,适于将异常值和各异 常值的离群度以文本和/或图形界面的形式在监控设备的屏幕上显示。
[0176] 在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它 设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类 系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可 以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为 了披露本发明的最佳实施方式。
[0177] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结 构和技术,以便不模糊对本说明书的理解。
[0178]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的 权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵 循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都 作为本发明的单独实施例。
[0179]本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组 件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备 不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个 子模块。
[0180] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何 组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任 何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权 利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代 替。
[0181] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0182] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行 所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法 元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在 此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行 的功能。
[0183] 如在此所使用的那样,除非另行规定,使用序数词"第一"、"第二"、"第三"等等来 描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必 须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0184] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域 内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意, 本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限 定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本 技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本 发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
【主权项】
1. 一种异常检测方法,在监控设备中执行,适于对被监控设备的一个或多个性能指标 进行实时异常检测,所述方法包括: 获取被监控设备的某个性能指标在当前时刻的观测值; 根据前一时刻的预测值和所述当前时刻的观测值确定当前时刻的预测值; 根据所述当前时刻的观测值与所述当前时刻的预测值确定当前时刻的差值; 根据所述当前时刻的差值,采用增量的ESD算法判断所述当前时刻的观测值是否为异 常值。2. 如权利要求1所述的异常检测方法,其中,所述根据前一时刻的预测值和所述当前时 刻的观测值确定当前时刻的预测值的步骤采用卡尔曼滤波算法实现。3. 如权利要求2所述的异常检测方法,其中,所述卡尔曼滤波算法包括: 根据前一时刻的预测值确定当前时刻的学习值; 根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差; 根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益; 根据所述当前时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔曼增益确 定当前时刻的预测值; 根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时刻的 预测值的协方差。4. 如权利要求3所述的异常检测方法,其中,所述根据前一时刻的预测值确定当前时刻 的学习值的步骤采用以下公式: Xs, η - Xp, η-1 所述根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差的步骤采用以 下公式: Ps, η - Pp,n-1+Qn 所述根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益的步骤采用以 下公式:所述根据所述当前时刻的观测值、所还当丽时刻的字·>」值和所述当前时刻的卡尔曼增 益确定当前时刻的预测值的步骤采用以下公式: Xp, η - Xs,n+Kn ( Xr,n_Xs,η ) 所述根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时 刻的预测值的协方差的步骤采用以下公式: Pp,n = Ps,n(l-Kn) 其中,η为正整数,表不当前时刻,(η-1 )表不前一时刻,Χρ, η-1表不前一时刻的预测值, Pp,H表示前一时刻的预测值的协方差,Xs,η表示当前时刻的学习值,Xr,η表示当前时刻的观 测值,Χ Ρ,η表示当前时刻的预测值,Ps,η表示当前时刻的学习值的协方差,ΡΡ,η表示当前时刻 的预测值的协方差,K n表示当前时刻的卡尔曼增益,Qn为观测值序列Xr在当前时刻的标准 差,Rn为观测值序列Xr在当前时刻的方差。5. 如权利要求4所述的异常检测方法,其中,将Xp, ο设置为O,Pp, ο设置为1。6. -种异常检测应用,在监控设备中执行,适于对被监控设备的一个或多个性能指标 进行实时异常检测,所述应用包括: 数据获取模块,适于获取被监控设备的某个性能指标在当前时刻的观测值; 数据预测模块,适于根据前一时刻的预测值和所述当前时刻的观测值确定当前时刻的 预测值; 差值求取模块,适于根据所述当前时刻的观测值与所述当前时刻的预测值确定当前时 刻的差值; 异常检测模块,适于根据所述当前时刻的差值,采用增量的ESD算法判断所述当前时刻 的观测值是否为异常值。7. 如权利要求6所述的异常检测应用,其中,所述数据预测模块进一步适于采用卡尔曼 滤波算法来根据前一时刻的预测值和当前时刻的观测值确定当前时刻的预测值。8. 如权利要求7所述的异常检测应用,其中,所述卡尔曼滤波算法包括: 根据前一时刻的预测值确定当前时刻的学习值; 根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差; 根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益; 根据所述当前时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔曼增益确 定当前时刻的预测值; 根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时刻的 预测值的协方差。9. 如权利要求8所述的异常检测应用,其中,所述根据前一时刻的预测值确定当前时刻 的学习值的步骤采用以下公式: Xs, η - Xp, η-1 所述根据前一时刻的预测值的协方差确定当前时刻的学习值的协方差的步骤采用以 下公式: Ps, η - Pp,n-1+Qn 所述根据所述当前时刻的学习值的协方差确定当前时刻的卡尔曼增益的步骤采用以 下公式:所述根据所述当前时刻的观测值、所述当前时刻的学习值和所述当前时刻的卡尔曼增 益确定当前时刻的预测值的步骤采用以下公式: Xp, η - Xs,n+Kn ( Xr,n_Xs,η ) 所述根据所述当前时刻的学习值的协方差和所述当前时刻的卡尔曼增益确定当前时 刻的预测值的协方差的步骤采用以下公式: Pp,n = Ps,n(l-Kn) 其中,η为正整数,表不当前时刻,(η-1 )表不前一时刻,Χρ, η-1表不前一时刻的预测值, Pp,H表示前一时刻的预测值的协方差,Xs,η表示当前时刻的学习值,Xr,η表示当前时刻的观 测值,Xp,η表示当前时刻的预测值,Ps,η表示当前时刻的学习值的协方差,Pp,η表示当前时刻 的预测值的协方差,Kn表示当前时刻的卡尔曼增益,Qn为观测值序列Xr在当前时刻的标准 差,Rn为观测值序列Xr在当前时刻的方差。10.-种监控设备,包括如权利要求6-9中任一项所述的异常检测应用。
【文档编号】G06F11/30GK105893213SQ201610460968
【公开日】2016年8月24日
【申请日】2016年6月22日
【发明人】阮松松, 吴海珊
【申请人】北京蓝海讯通科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1