一种异常检测方法及装置与流程

文档序号:11147707
一种异常检测方法及装置与制造工艺

本发明涉及网络安全技术领域,特别是涉及一种异常检测方法及装置。



背景技术:

当今社会经济正处于持续快速发展的阶段,人类社会生产活动对稳定的电力供应的依赖越来越强。因此保证电网稳定运行显得尤为重要。为了保证电网稳定运行,其中一个主要的方面即为能够及时发现电网中的故障,防止整个电网的失稳导致大面积停电事故的发生。由此可见,如何及时检测电网故障,以保障电网安全稳定运行十分重要。

现有的异常检测方法,主要依赖电力系统专业人员通过大量计算、分析来评估电网异常。这种方法不仅消耗大量的人力,而且随着电网格局愈加复杂,电力系统运行数据大量产生,从而导致异常检测效率较低。因此,如何减少电力系统异常检测工作中的人工工作量,提高异常检测效率,是一个亟待解决的技术难题。



技术实现要素:

本发明实施例公开了一种电网异常检测方法及装置,以提高异常检测效率。

为达到上述目的,本发明实施例提供了一种异常检测方法,所述方法包括:

获得电网系统的目标时间序列数据,并将所述目标时间序列数据转换成第一矩阵;

将所述第一矩阵输入到预先训练得到的编解码模型中,获得第二矩阵;

计算所述第二矩阵相对于所述第一矩阵的第一误差,并在所述第一误差超出预设的误差范围时,确定所述目标时间序列数据为异常序列数据。

可选的,所述获得电网系统的目标时间序列数据的步骤,包括:

采集预设时长内的电网系统的第一数据,并将所述第一数据转换成第二数据,其中,所述第一数据为电压幅值和电压相角值,第二数据为实电压和虚电压;

将所述第二数据组合成所述目标时间序列数据。

可选的,所述编解码模型包括编码器模型和解码器模型,其中,所述编码器模型和所述解码器模型均为循环神经网络模型。

可选的,预先训练所述编解码模型的步骤包括:

获取正常时间序列数据;

将所述正常时间序列数据作为训练样本,输入到初始编码器模型,获得初始编码器模型隐含层的初始状态值;

将所述初始状态值输入到初始解码器模型,得到满足训练结束条件的编解码模型。

可选的,预先设定所述误差范围的步骤包括:

获取正常时间序列数据,并将所述正常时间序列数据转换成第三矩阵;

将所述第三矩阵输入到所述编解码模型中,获得第四矩阵;

计算所述第四矩阵相对于所述第三矩阵的第二误差;

获得所述第二误差服从正态分布的平均值和方差,并设定所述误差范围为:μ±3Σ;

其中,μ为所述平均值,Σ为所述方差。

为达到上述目的,本发明实施例还提供了一种异常检测装置,所述装置包括:

第一转换模块,用于获得电网系统的目标时间序列数据,并将所述目标时间序列数据转换成第一矩阵;

第一获得模块,用于将所述第一矩阵输入到预先训练得到的编解码模型中,获得第二矩阵;

确定模块,用于计算所述第二矩阵相对于所述第一矩阵的第一误差,并在所述第一误差超出预设的误差范围时,确定所述目标时间序列数据为异常序列数据。

可选的,所述第一转换模块,包括:

采集子模块,用于采集预设时长内的电网系统的第一数据,并将所述第一数据转换成第二数据,其中,所述第一数据为电压幅值和电压相角值,第二数据为实电压和虚电压;

转换子模块,用于将所述第二数据组合成所述目标时间序列数据,并将所述目标时间序列数据转换成第一矩阵。

可选的,所述编解码模型包括编码器模型和解码器模型,其中,所述编码器模型和所述解码器模型均为循环神经网络模型。

可选的,所述装置还包括:

获取模块,用于获取正常时间序列数据;

训练模块,将所述正常时间序列数据作为训练样本,输入到初始编码器模型,获得初始编码器模型隐含层的初始状态值;

第二获得模块,用于将所述初始状态值输入到初始解码器模型,得到满足训练结束条件的编解码模型。

可选的,所述装置还包括:

第二转换模块,用于获取正常时间序列数据,并将所述正常时间序列数据转换成第三矩阵;

第三获得模块,用于将所述第三矩阵输入到所述编解码模型中,获得第四矩阵;

计算模块,用于计算所述第四矩阵相对于所述第三矩阵的第二误差;

设定模块,用于获得所述第二误差服从正态分布的平均值和方差,并设定所述误差范围为:μ±3Σ;

其中,μ为所述平均值,Σ为所述方差。

由上述的技术方案可见,本发明实施例提供的异常检测方法及装置,可以获得电网系统的目标时间序列数据,并将目标时间序列数据转换成第一矩阵;然后将第一矩阵输入到预先训练得到的编解码模型中,获得第二矩阵,之后计算第二矩阵相对于所述第一矩阵的第一误差,并在第一误差超出预设的误差范围时,确定目标时间序列数据为异常序列数据。应用本发明实施例,利用预先训练得到的编解码模型检测异常,减少了电力系统异常检测工作中的人工工作量,提高了异常检测效率。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种异常检测方法的流程示意图;

图2为本发明实施例提供的一种异常检测装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种异常检测方法及装置,以下分别进行详细说明。

参见图1,图1为本发明实施例提供的一种异常检测方法的流程示意图,包括如下步骤:

S101,获得电网系统的目标时间序列数据,并将目标时间序列数据转换成第一矩阵。

本发明实施例提供的方法可以应用于电网系统的中央控制节点。具体地,中央控制节点为可以获得电网系统中各个节点的时间序列数据,并可以对时间序列数据进行分析处理的节点。中央控制节点的型号可以根据用户需求设定,本发明对此不作限定。

具体的,中央控制节点获得电网系统的目标时间序列数据的步骤可以为:采集预设时长内的电网系统的第一数据,并将第一数据转换成第二数据,其中,第一数据可以为电压幅值和电压相角值,第二数据可以为实电压和虚电压;将第二数据组合成目标时间序列数据。

需要说明的是,中央控制节点采集的第一数据可以是各个节点的电压幅值和电压相角值,然后令采集到的电压幅值为v,电压相角值为θ,利用公式vr=vcosθ,vi=vsinθ,将其转换为实电压vr和虚电压vi的形式,以此将第一数据转换成第二数据,保留了采集数据的全部信息。

由于第二数据由实电压和虚电压组成,而实电压和虚电压的取值范围相同,因此,将第一数据转换成第二数据消除了电压幅值与电压相角值取值范围不一致带来的缺点,使得第二数据各个特征的权重不受取值范围的影响。并且,可以将预设时长内的预设数量个第二数据组合成目标时间序列数据,并将目标时间序列数据转换成第一矩阵,第二数据的维数为:节点个数*特征个数;第一矩阵的维数为:第二数据的维数*预设数量。

示例性的,电力系统采用IEEE39节点的电网拓扑结构,采集到的第一数据是39个节点的电压幅值和电压相角值,第二数据为39个节点的实电压和虚电压,则第二数据的特征个数为2,第二数据的维数为39*2=78,采集时间长度为10个时刻的第二数据,t5时刻的采集的第二数据是x(5),x(5)是78维向量,则第一矩阵为X={x(1),x(2),…,x(10)},并且第一矩阵的维数为:78*10。

由此可见,本发明实施例可以将整个电网系统的各个节点的时间序列数据,整合成多维的时间序列数据。因此,本发明实施例提供的异常检测方法不仅可以适用于单维时间序列,还可以适用于多维时间序列。

S102,将第一矩阵输入到预先训练得到的编解码模型中,获得第二矩阵。

具体的,编解码模型包括编码器模型和解码器模型,其中,编码器模型和解码器模型均为循环神经网络模型。中央控制节点预先训练编解码模型的步骤可以为:获取正常时间序列数据;将正常时间序列数据作为训练样本,输入到初始编码器模型,获得初始编码器模型隐含层的初始状态值;将初始状态值输入到初始解码器模型,得到满足训练结束条件的编解码模型。

在本发明实施例中,将正常时间序列数据作为训练样本,输入初始的编码器模型,获得编码器模型隐含层的状态值,然后解码器模型获得编码器模型隐含层的状态值,并经过反复训练,可以得到满足训练结束条件的循环神经网络,将满足训练结束条件的循环神经网络作为编解码模型。训练结束条件可以根据用户需求设定,本发明实施例对此不做限定。编解码模型接收的输入值经过编码器模型和解码器模型的共同作用,可以获得输出值,从而,将第一矩阵输入到编解码模型中,可以获得编解码模型输出的第二矩阵。

正常情况下,在电网系统收集的大量数据中,只有小部分的数据是异常数据。现有的基于机器学习算法的异常检测方法,需要正负训练样本的比例近似相等。在不相等的情况下,则需要通过过采样或欠采样等手段来达到样本的均衡,而这种做法往往会过分加重某些特征的权重或造成某些重要信息的损失,使得异常检测效果不佳。本发明实施例在模型训练过程中只需要正常的样本,解决了正负样本不均衡的问题。

在本发明实施例中,循环神经网络可以由输入层、隐含层和输出层组成,输入层神经元的个数为第一矩阵中第二数据的个数,输出神经元的个数与输入层神经元的个数相同,一般来说,循环神经网络的准确性主要受隐含层影响,隐含层的合理设计是构建循环神经网络的关键。

本发明实施例的隐含层结构可以采用LSTM(Long Short-Term Memory,长短时记忆)结构或GRU(Gated Recurrent Unit,门控循环单元)结构,也可以由tanh(Hyperbolic tangent function,双曲正切)函数,或者sigmoid函数,或者relu(Rectified linear unit,修正线性单元)函数等激活函数构成的隐含层结构。

一般来说,LSTM结构与GRU结构更加适用于时间序列长度较长的情况。优选的,本发明实施例可以选择LSTM结构或GRU结构来构建隐含层结构,编码器模型循环神经网络的隐含层结构可以是LSTM结构或者GRU结构,解码器模型循环神经网络的隐含层结构可以是LSTM结构或者GRU结构,编码器模型和解码器模型中的隐含层结构可以相同也可以不同。并且,解码器模型中的隐含层的初始状态值可以由编码器模型的各个隐含层的状态值的加权值决定,因此,可以最大可能的保留第一矩阵的所有有用的信息。

LSTM结构由三个特殊的门组成隐含层单元,分别为输入门、忘记门和输出门。输入门决定输入层传输到隐含层的信息,忘记门决定之前学习到的信息将被存储的时间,输出门决定隐含层传输到输出层的信息。采用LSTM结构时,隐含层的状态值的计算公式为:

h(i)=o*δ(c(i))

其中,

o=σ(x(i)Uo+h(i-1)Wo+bo);f=σ(x(i)Uf+h(i-1)Wf+bf);

i=σ(x(i)Ui+h(i-1)Wi+bi);

其中,x(i)表示ti时刻的输入值,h(i)表示ti时刻隐含层的状态值,o表示输出门的状态值,f表示忘记门的状态值,i表示输入门的状态值,σ()表示更新状态的激活函数,δ()示计算状态的激活函数,Uc表示输入层到记忆单元的连接边的权重矩阵,Uo表示输入层到输出门的连接边的权重矩阵,Uf表示输入层到忘记门的连接边的权重矩阵,Ui表示输入层到输入门的连接边的权重矩阵,Wc表示记忆单元自连接边的权值矩阵,Wo表示输出门自连接边的权值矩阵,Wf表示忘记门自连接边的权值矩阵,Wi表示输入门自连接边的权值矩阵,bc表示记忆单元的偏置向量,bo表示输出门的偏置向量,bf表示忘记门的偏置向量,bi表示输入门的偏置向量。

GRU结构由两个特殊的门组成隐含层单元,分别为重置门和更新门。重置门过滤掉之前不相干的隐含层的状态信息。更新门决定之前的隐含层的状态将会传输到现在的隐含层的状态的信息。采用GRU结构时,隐含层的状态值的计算公式为:

其中,

z=σ(x(i)Uz+h(i-1)Wz+bz);

其中,x(i)表示ti时刻的输入值,h(i)表示ti时刻隐含层的状态值,z表示更新门的状态值,r表示重置门的状态值,表示ti时刻记忆单元的状态值,h(i-1)表示ti-1时刻隐含层的状态值,Uh表示输入层到记忆单元的连接边的权重矩阵,Ur表示输入层到重置门的连接边的权重矩阵,Uz表示输入层到更新门的连接边的权重矩阵,Wh表示记忆单元自连接边的权值矩阵,Wr表示重置门自连接边的权值矩阵,Wz表示更新门自连接边的权值矩阵,bh表示记忆单元的偏置向量,br表示重置门的偏置向量,bz表示更新门的偏置向量,σ()表示更新状态的激活函数,φ()表示计算状态的激活函数。

仅采用激活函数时,隐含层的状态值的计算公式为:

h(i)=φ(Wh(i-1)+Ux(i)+b)

其中,x(i)表示ti时刻的输入值,h(i)表示ti时刻隐含层的状态值,W表示隐含层自连接边的权值矩阵,h(i-1)表示ti-1时刻隐含层的状态值,U表示输入层到隐含层的连接边的权重矩阵,b表示隐含层的偏置向量,φ()表示隐含层的激活函数。

示例性的,输入层的输入向量为第一矩阵X={x(1),x(2),…,x(L)},x(i)表示ti时刻的输入值,输出层的输出向量为第二矩阵X′={x′(1),x′(2),…,x′(L)},x′(i)表示ti时刻的输出值,编码器模型和隐含层模型都采用激活函数,则编码器模型的隐含层的状态值可以为:

其中,表示ti时刻的编码器模型的隐含层状态值,Wencodet表示编码器模型的隐含层自连接边的权值矩阵,表示ti-1时刻编码器模型的隐含层状态值,Uencoder表示输入层到编码器模型的隐含层的连接边的权重矩阵,bencoder表示编码器模型的隐含层偏置向量,φ()表示编码器模型的隐含层的激活函数,可以为tanh函数,或者sigmoid函数,或者relu函数等。

需要说明的是,编码器模型隐含层的维度可以根据用户需求定义,假设编码器模型隐含层的维度为m,则是m维向量。的状态值受ti时刻的输入值x(i)和ti-1时刻隐含层状态值影响。在实际应用中,一般采用随机初始化的方法获得Wencoder、Uencoder以及bencoder

初始时刻编码器隐含层的状态值为:

第一时刻的隐含层的状态值为:

第二时刻的隐含层的状态值为:

依次类推,可以获得各个时刻编码器模型隐含层的状态值。

解码器模型的隐含层的状态值可以为:

其中,表示tn时刻解码器模型的隐含层状态值,α(i)表示的权重值。

根据计算输出值,计算公式可以为:

其中,A表示解码器模型的隐含层自连接边的权值矩阵,b表示解码器模型的隐含层的偏置向量。

然后由后向前更新解码器模型的隐含层的状态值,计算公式如下:

其中,表示ti时刻的解码器模型的隐含层的状态值,Wdecoder表示解码器模型的隐含层自连接边的权值矩阵,表示ti+1时刻的解码器模型的隐含层的状态值,Udecoder表示输出层到解码器模型的隐含层的连接边的权重矩阵,bdecoder表示解码器模型的隐含层偏置向量,表示解码器模型的隐含层的激活函数,可以为tanh函数,或者sigmoid函数,或者relu函数等。

从而,根据计算ti时刻的输出值为:

其中,A表示解码器模型的隐含层自连接边的权值矩阵,b表示解码器模型的隐含层的偏置向量。

S103,计算第二矩阵相对于第一矩阵的第一误差,并在第一误差超出预设的误差范围时,确定目标时间序列数据为异常序列数据。

具体的,中央控制节点预先设定误差范围的步骤可以为:获取正常时间序列数据,并将正常时间序列数据转换成第三矩阵;将第三矩阵输入到编解码模型中,获得第四矩阵;计算第四矩阵相对于第三矩阵的第二误差;获得第二误差服从正态分布的平均值和方差,并设定误差范围为:μ±3Σ;其中,μ为平均值,Σ为方差。

需要说明的是,可以预先定义误差的计算公式为:e(i)=|x(i)-x′(i)|,其中,x(i)表示ti时刻的输入值,x′(i)表示ti时刻的输出值,当输入为第一矩阵,输出为第二矩阵时,可以根据误差的计算公式,计算第二矩阵相对于第一矩阵的第一误差;类似的,当输入为第三矩阵,输出为第四矩阵时,可以根据误差的计算公式,计算第四矩阵相对于第三矩阵的第二误差。

由于第二误差能够反映出正常时间序列数据的误差分布规律,假设,第二误差满足正态分布,则可以利用最大似然法估计第二误差服从正态分布的平均值和方差,从而获得误差范围为:μ±3Σ;其中,μ为平均值,Σ为方差。当异常的目标时间序列数据作为第一矩阵,输入到编解码模型中时,其得到的第一误差必会不属于该误差范围,因此,可以判断该目标时间序列数据为异常序列数据。具体的利用最大似然法估计第二误差服从正态分布的平均值和方差的方法,属于现有技术,本发明在此不再赘述。

示例性的,μ为3,Σ为0.2,则误差范围为:3±3*0.2,即误差范围为:2.4~3.6,如果第一误差为2.3,则不属于误差范围,则可以确定目标时间序列数据为异常序列数据。

当确定第二矩阵相对于第一矩阵的第一误差不属于预设的误差范围内时,则可以确定目标时间序列数据为异常序列数据,进而可以确定电力系统存在异常。

可见,应用本发明实施例提供的异常检测方法,利用预先训练得到的编解码模型检测异常,减少了电力系统异常检测工作中的人工工作量,提高了异常检测效率。

与上述的方法实施例相对应,本发明实施例还提供一种异常检测装置。

参见图2,图2为本发明实施例所提供的一种异常检测装置的结构示意图,包括:

第一转换模块201,用于获得电网系统的目标时间序列数据,并将所述目标时间序列数据转换成第一矩阵;

第一获得模块202,用于将所述第一矩阵输入到预先训练得到的编解码模型中,获得第二矩阵;

确定模块203,用于计算所述第二矩阵相对于所述第一矩阵的第一误差,并在所述第一误差超出预设的误差范围时,确定所述目标时间序列数据为异常序列数据。

应用本发明实施例提供的异常检测装置,利用预先训练得到的编解码模型检测异常,减少了电力系统异常检测工作中的人工工作量,提高了异常检测效率。

其中,第一转换模块201,包括:

采集子模块(图中未示出),用于采集预设时长内的电网系统的第一数据,并将所述第一数据转换成第二数据,其中,所述第一数据为电压幅值和电压相角值,第二数据为实电压和虚电压;

转换子模块(图中未示出),用于将所述第二数据组合成所述目标时间序列数据,并将所述目标时间序列数据转换成第一矩阵。

其中,所述编解码模型包括编码器模型和解码器模型,其中,所述编码器模型和所述解码器模型均为循环神经网络模型。

其中,所述装置还包括:

获取模块(图中未示出),用于获取正常时间序列数据;

训练模块(图中未示出),将所述正常时间序列数据作为训练样本,输入到初始编码器模型,获得初始编码器模型隐含层的初始状态值;

第二获得模块,用于将所述初始状态值输入到初始解码器模型,得到满足训练结束条件的编解码模型。

在实际应用中,该装置还可以包括:

第二转换模块(图中未示出),用于获取正常时间序列数据,并将正常时间序列数据转换成第三矩阵;

第三获得模块(图中未示出),用于将第三矩阵输入到所述编解码模型中,获得第四矩阵;

计算模块(图中未示出),用于计算第四矩阵相对于所述第三矩阵的第二误差;

设定模块(图中未示出),用于获得第二误差服从正态分布的平均值和方差,并设定误差范围为:μ±3Σ;

其中,μ为平均值,Σ为方差。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1