发明内容
本发明提供了一种配电终端异常检测模型的建立方法及装置,在自编码模型中引入注意力机制,有效避免处理长数据时的信息丢失问题,模型性能较好。
一种配电终端异常检测模型的建立方法,包括:
采集配电终端的状态数据;
对所述状态数据进行预处理,获得训练集和测试集;
建立基于注意力机制的自编码模型,所述基于注意力机制的自编码模型包括第一编码器、第一注意力运算层、解码器、第二注意力运算层、第二编码器以及判别器;
根据所述训练集对所述基于注意力机制的自编码模型进行训练;
将所述测试集输入至训练后的基于注意力机制的自编码模型进行异常检测。
进一步地,对所述状态数据进行预处理,包括:
对所述状态数据进行归一化处理;
分别对各个归一化的状态数据进行分段处理,得到分段状态数据;
将所述分段状态数据进行划分,获得训练集和测试集。
进一步地,根据所述训练集对所述基于注意力机制的自编码模型进行训练,包括:
将所述训练集中原始的分段状态数据输入至所述第一编码器进行编码处理,生成潜在空间数据;
所述解码器对所述潜在空间数据进行重构,生成原始重构数据;
所述判别器将所述原始重构数据与原始的分段状态数据进行误差判别;
所述第二编码器将所述原始重构数据进行编码处理,获得潜在重构数据;
在每一轮训练中,计算关于原始重构数据的误差、判别器的误差判别损失以及潜在重构数据的误差的三重重构损失函数的值,直到所述三重重构损失函数的值小于第一预设值时停止训练。
进一步地,所述三重重构损失函数通过以下公式表示:
Loss=αlx+βlz+(1-α-β)lD;
其中,Loss表示三重重构损失函数,lx表示关于原始重构数据的误差,α表示有关原始重构数据的参数,lz表示潜在重构数据的误差,β表示有关潜在重构数据的参数,lD表示判别器的误差判别损失。
进一步地,所述训练集中的分段状态数据包括部分有标记的分段状态数据以及无标记的分段状态数据;
根据所述训练集对所述基于注意力机制的自编码模型进行训练,还包括:
在每一轮训练中,根据有标记的分段状态数据训练对应的三重重构损失函数以及无标记的分段状态数据训练对应的三重重构损失函数,计算总损失函数的值,直到所述总损失函数的值小于第二预设值时停止训练。
进一步地,所述总损失函数通过以下公式表示:
其中,F表示总损失函数,m表示有标记的分段状态数据的数量,n表示无标记的分段状态数据的数量,lue表示无标记的分段状态数据训练对应的三重重构损失函数,lle表示有标记的分段状态数据训练对应的三重重构损失函数,δ表示有标记的分段状态数据的权重参数,yj表示有标记的分段状态数据的标签。
进一步地,所述方法还包括:
第一注意力运算层计算原始的分段状态数据与原始重构数据的匹配程度,并将匹配程度大于预设匹配程度的原始重构数据定义为注意力集中点。
进一步地,所述方法还包括:
第二注意力运算层计算原始重构数据与潜在重构数据的匹配程度,并将匹配程度大于预设匹配程度的潜在重构数据定义为注意力集中点。
一种应用于上述方法的配电终端异常检测模型的建立装置,包括:
采集模块,用于采集配电终端的状态数据;
预处理模块,用于对所述状态数据进行预处理,获得训练集和测试集;
模型建立模块,用于建立基于注意力机制的自编码模型,所述基于注意力机制的自编码模型包括第一编码器、第一注意力运算层、解码器、第二注意力运算层、第二编码器以及判别器;
训练模块,用于根据所述训练集对所述基于注意力机制的自编码模型进行训练;
检测模块,用于将所述测试集输入至训练后的基于注意力机制的自编码模型进行异常检测。
一种电子设备,包括处理器和存储装置,所述存储装置存储有多条指令,所述处理器用于读取所述多条指令并执行上述方法。
本发明提供的配电终端异常检测模型的建立方法及装置,至少包括如下有益效果:
(1)采用两个编码器、解码器及判别器进行数据重构、误差判别和数据增强,通过计算原始重构数据的误差、判别器的误差判别损失以及潜在重构数据的误差的三重重构损失函数直接实现异常状态检测,模型性能较好。
(2)采用主动学习的方式对数据进行自动标注,根据不确定性判定标注的价值,减轻了人工标注的压力,优化了标注的效果,从而提高了模型训练的准确性。
(3)在自编码模型中引入注意力机制,将模型的注意力集中在与当前状态相关的信息上,解决了自编码器自身存在的有损重构问题,提高了自编码器重构的效果,进一步提高了模型的性能。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
参考图1,在一些实施例中,提供一种配电终端异常检测模型的建立方法,包括:
S1、采集配电终端的状态数据;
S2、对所述状态数据进行预处理,获得训练集和测试集;
S3、建立基于注意力机制的自编码模型,所述基于注意力机制的自编码模型包括第一编码器、第一注意力运算层、解码器、第二注意力运算层、第二编码器以及判别器;
S4、根据所述训练集对所述基于注意力机制的自编码模型进行训练;
S5、将所述测试集输入至训练后的基于注意力机制的自编码模型进行异常检测。
具体地,步骤S2中,对所述状态数据进行预处理,包括:
S21、对所述状态数据进行归一化处理;
S22、分别对各个归一化的状态数据进行分段处理,得到分段状态数据;
S23、将所述分段状态数据进行划分,获得训练集和测试集。
具体地,步骤S21中,将步骤S1中得到的状态数据表示为T={x1,x2,…,xn},该状态数据为时间序列数据,其中数据的最大值为xmax,最小值为xmin。由于不同时间段的时间序列数据取值范围不同,为了避免数据单位不一致导致的数据分布学习能力下降,在一些实施例中,采用min-max标准化的方式对所有状态数据的取值范围进行归一化,归一化采用的转换函数通过以下公式表示:
其中,T'为归一化后的数据集,xi为第i个状态数据的原始值,为第i个状态数据归一化后的数值,xmax为状态数据中的最大值,xmin为状态数据中的最小值,n为状态数据的数据总数。
步骤S22中,由于时间序列数据具有长持续性,因此对归一化的状态数据进行分段处理,将一条长时间序列分为很多条长度较短的时间片段。在一些实施例中,分段操作采用滑动窗口将时间序列数据进行分段,具体为,取长度为k的滑动窗口,将滑动步长设置为1,将归一化的状态数据T'进行分段操作,得到分段状态数据。
其中,所述分段状态数据通过以下公式表示:
S={(si,ri,yi),(s2,y2,y2),......,(sn-k,rn-k,yn-k)};
其中,si为第i个分段状态数据,ri为第i个分段状态数据的预测数据(经预测模型预测输出后获得),yi为第i个分段状态数据的异常标记,n为分段状态数据的总数,k为滑动窗口的长度,S为归一化后的状态数据。
在一些实施例中,根据状态数据的标记情况,对所述分段状态数据进行标记,具体为:当状态数据无标记时,将分段状态数据标记为-1;当所述状态数据有标记时,分段状态数据标记为源数据集中的对应标记。
步骤S3中,所述第一编码器和第二编码器均包括双层的长短记忆神经网络、dropout层、隐藏层、全连接层以及输出层。
其中,每一层长短记忆神经网络后都添加dropout层,dropout层用于在自编码模型的训练过程中按照一定的概率暂时将某部分神经网络单元从网络中丢弃,从而降低计算量,在避免模型过拟合的同时缩减训练消耗的时长。
参考图2,在一些实施例中,第一编码器201和解码器202共同构成生成器205,所述生成器205与所述判别器204均由长短期记忆网络构成,结构相同,参数不同。其中,第一编码器201与解码器202结构相同且相互对称,模型采用sigmoid函数作为激活函数。
参考图2,步骤S4中,根据所述训练集对所述基于注意力机制的自编码模型进行训练,包括:
S41、将所述训练集中原始的分段状态数据X输入至所述第一编码器201进行编码处理,生成潜在空间数据Z;
S42、所述解码器202对所述潜在空间数据Z进行重构,生成原始重构数据
S43、所述判别器204将所述原始重构数据与原始的分段状态数据X进行误差判别;
S44、所述第二编码器203将原始重构数据进行编码处理,获得潜在重构数据/>
S45、在每一轮训练中,计算关于原始重构数据的误差、判别器204的误差判别损失以及潜在重构数据的误差的三重重构损失函数的值,直到所述三重重构损失函数的值小于第一预设值时停止训练。
其中,第一编码器202用于将原始的分段状态数据转化为潜在空间数据,解码器202用于将潜在空间数据转化为原始重构数据,第二编码器203用于将原始重构数据转化为潜在重构数据。
具体地,给定一个训练集X,M表示训练集数据的特征维数,t表示训练集分段状态数据的长度;对应的,每个测试集/> N表示测试集数据的特征维数,t表示测试集分段状态数据的长度。
训练过程中,需要对原始重构数据的误差、潜在重构数据的误差、判别器的误差判别损失进行计算,其中,原始重构数据的误差lx通过以下公式计算:
其中,x表示原始的分段状态数据,t表示分段状态数据的长度,fG(x)表示生成器输出层的激活函数。
原始的分段状态数据经过归一化后在[0,1]范围内,其特征值在平方后会越来越小,原始重构误差通过上述公式进行计算,可以有效减小模型受到噪声带来的影响。
计算所述潜在重构数据的误差的目的是为通过潜在重构数据在较小的取值区间范围内发现样本之间的不同,潜在重构数据的误差lz通过以下公式计算:
其中,x表示原始的分段状态数据,t表示分段状态数据长度,fEnc1(x)表示第一编码器输出的一对原始的分段状态数据的推算结果,即潜在空间数据,G(x)表示原始的分段状态数据的重构,即原始重构数据,fEnc2(G(x))表示第二编码器的输出,即潜在重构数据。
计算所述判别器204的误差判别损失的目的是为以较高的敏捷度来判别解码器202所重构的原始重构数据,将异常数据判别出来,从而得到一个能够直接对异常进行检测的自编码模型,判别器204的误差判别损失lD通过以下公式计算:
其中,xi表示第i个分段状态数据,zi表示第i个分段状态数据的原始重构数据,m表示分段状态数据的数量,D(xi)表示对分段状态数据的判别,D(G(zi))表示对原始重构数据的判别。
通过获得的原始重构数据的误差、潜在重构数据的误差、判别器的误差判别损失,进一步计算得到三重重构损失函数,所述三重重构损失函数通过以下公式表示:
Loss=αlx+βlz+(1-α-β)lD;
其中,Loss表示三重重构损失函数,lx表示关于原始重构数据的误差,α表示有关原始重构数据的参数,lz表示潜在重构数据的误差,β表示有关潜在重构数据的参数,lD表示判别器的误差判别损失。其中,α>0且β>0,经多次实验测试决定。
所述三重重构损失函数作为所述自编码模型的训练目标函数,训练的目标即为使该函数最小化,训练执行多次直到所述三重重构损失函数的值小于第一预设值时停止训练。
作为一种优选的实施方式,训练过程中模型采用基于Adam优化器和梯度下降优化器的小批量随机优化方法对模型参数进行更新。
在一些实施例中,所述训练集中的分段状态数据包括部分有标记的分段状态数据以及无标记的分段状态数据。
对应地,步骤S4中,根据所述训练集对所述基于注意力机制的自编码模型进行训练,还包括:
S46、在每一轮训练中,根据有标记的分段状态数据训练对应的三重重构损失函数以及无标记的分段状态数据训练对应的三重重构损失函数,计算总损失函数的值,直到所述总损失函数的值小于第二预设值时停止训练。
在一些实施例中,对训练集中的小部分无标记分段状态数据进行标记,标记方法采用不确定性标记算法,根据数据样本的不确定性来对其进行标注。具体地,不确定性越大,则该样本可能具有与正常样本相悖的异常特征的可能性越大,该样本具备的标注价值也越高,标记该数据样本更加能够直接提升模型性能。原始的训练集中无标记分段状态数据的不确定性通过以下公式表示:
Uncertainty=|P(Health)-P(Failure)|;
其中,P(Health)表示数据正常的概率,P(Failure)表示数据异常的概率。这两个概率是用基础模型——基于GAN的无监督自编码器模型对同一个样本数据经过多次的判断异常得到的。一个数据的不确定性较大,在数值上的表现是被估计为正常的概率与被估计为异常的概率相差较大。
步骤S46中,训练集中一部分分段状态数据有标记后,模型在训练阶段需要对损失函数作出调整,将有标记的分段状态数据训练对应的三重重构损失函数与无标记的分段状态数据训练对应的三重重构损失函数结合成一个总损失函数,用于判定模型收敛。其中采用一个超参数来表示有标记的数据在损失函数中的权重,从而跟踪标记数据对整个模型的影响。
具体地,对于标记状态异常的样本(yj=1),采用对损失函数的倒数进行惩罚的方法,使得异常样本按照与原有标记分段状态数据相反的方向重构,以使它的重构远远偏离原始有标记分段状态数据。在损失函数上,具体表现为如果超参数δ<1,则模型更偏向于无标记数据的分布,当δ>1,则模型更偏向于有标记数据的分布,当δ=0时,训练集中不存在有标记的分段状态数据,总损失函数等于无标记的分段状态数据训练对应的三重重构损失函数。
所述总损失函数通过以下公式表示:
其中,F表示总损失函数,m表示有标记的分段状态数据的数量,n表示无标记的分段状态数据的数量,lue表示无标记的分段状态数据训练对应的三重重构损失函数,lle表示有标记的分段状态数据训练对应的三重重构损失函数,δ表示有标记的分段状态数据的权重参数,yj表示有标记的分段状态数据的标签,yi∈{0,1},0表示分段状态数据正常,1表示分段状态数据异常。
参考图3,在一些实施例中,还包括第一注意力运算层206和第二注意力运算层207,第一注意力运算层206设置于第一编码器201和解码器202之间,第二注意力运算层207设置于解码器和第二编码器之间,所述方法还包括:
第一注意力运算层206计算原始的分段状态数据与原始重构数据的匹配程度,并将匹配程度大于预设匹配程度的原始重构数据定义为注意力集中点;
第二注意力运算层207计算原始重构数据与潜在重构数据的匹配程度,并将匹配程度大于预设匹配程度的潜在重构数据定义为注意力集中点。
解码器与编码器构成的学习结构存在一定的缺陷,即编码器会将最后一步的隐藏层向量输出给解码器,解码器利用该隐藏层向量进行数据重构,重构过程过分依赖于将整个数据压缩成固定输出的向量,这种做法不可避免地导致了信息的丢失,使得重构的结果不够准确。定义注意力集中点的目的是将模型的注意力集中在与当前状态相关的信息上,忽略其他不相关的信息,从而解决信息丢失的问题。第一注意力运算层206与第二注意力运算层207允许解码器202访问整个编码后的潜在空间向量,从而减轻信息丢失和输入输出无法对齐的问题。
具体地,定义注意力权重βij及中间层向量cj,注意力权重用于捕捉编码器隐藏层hi和解码器隐藏层之间的相关性,中间层向量cj用于读取原始输入向量的信息,并了解输入向量特征的权重的机制,从而更好的对齐编码器到解码器的高质量输出。在传输解码器的隐藏层sj和输出层yj之前,通过注意力权重构建中间层向量cj输入至解码器中,第j个解码位置的中间层向量cj是所有的编码器隐藏层向量hi及其相应的注意力权重βij的加权和,中间层向量的计算通过以下公式表示:
其中,βij为位置j的第i个注意力权重,hi为第i个隐藏层,T表示特征维度。
编码器使用函数映射将输入向量转换为隐藏层向量,解码器通过隐藏层向量执行重构输出重构结果。长短记忆网络自动编码器结合了长短记忆网络和注意力运算层,通过将编码和解码过程交给长短记忆网络执行,编码器从输入向量中提取时间特征,编码器执行从特征映射到输出的转换。进一步地,注意力运算层又使模型在数据分类时将注意力集中在与当前数据相关的特征上,从而解决了自编码器自身存在的有损重构问题,提高了自编码器重构的效果。
步骤S5中,作为一种较优的实施方式,采用潜在重构数据的误差lz作为异常分数来检测测试样本的异常。将潜在重构数据的误差lz归一化到[0,1]范围内。
通过以下公式进行归一化处理:
其中,A(x)为归一化后的值,lz为潜在重构数据的误差,min(lz)为潜在重构数据的误差中的最小值,max(lz)为潜在重构数据的误差中的最大值。
归一化后的值为A(x),用A(x)与阈值s进行比较,根据A(x)大于阈值s或小于阈值s最终给予测试样本是异常和正常的结果。其中x表示某个样本。
参考图4,在一些实施例中提供一种应用于上述方法的配电终端异常检测模型的建立装置,包括:
采集模块101,用于采集配电终端的状态数据;
预处理模块102,用于对所述状态数据进行预处理,获得训练集和测试集;
模型建立模块103,用于建立基于注意力机制的自编码模型,所述基于注意力机制的自编码模型包括第一编码器、第一注意力运算层、解码器、第二注意力运算层、第二编码器以及判别器;
训练模块104,用于根据所述训练集对所述基于注意力机制的自编码模型进行训练;
检测模块105,用于将所述测试集输入至训练后的基于注意力机制的自编码模型进行异常检测。
其中,所述预处理模块102还用于:
对所述状态数据进行归一化处理;
分别对各个归一化的状态数据进行分段处理,得到分段状态数据;
将所述分段状态数据进行划分,获得训练集和测试集。
所述模型建立模块103中,所述第一编码器和第二编码器均包括双层的长短记忆神经网络、dropout层、隐藏层、全连接层以及输出层。
所述训练模块104还用于:
将所述训练集中原始的分段状态数据输入至所述第一编码器进行编码处理,生成潜在空间数据;
所述解码器对所述潜在空间数据进行重构,生成原始重构数据;
所述判别器将所述重构数据与原始的分段状态数据进行误差判别;
所述第二编码器将所述重构数据进行编码处理,获得潜在重构数据;
在每一轮训练中,计算关于原始重构数据的误差、判别器的误差判别损失以及潜在重构数据的误差的三重重构损失函数的值,直到所述三重重构损失函数的值小于第一预设值时停止训练。
其中,所述三重重构损失函数通过以下公式表示:
Loss=αlx+βlz+(1-α-β)lD;
其中,Loss表示三重重构损失函数,lx表示关于原始重构数据的误差,α表示有关原始重构数据的参数,lz表示潜在重构数据的误差,β表示有关潜在重构数据的参数,lD表示判别器的误差判别损失。
所述训练模块104中,所述训练集中的分段状态数据包括部分有标记的分段状态数据以及无标记的分段状态数据;
所述训练模块104还用于:
在每一轮训练中,根据有标记的分段状态数据训练对应的三重重构损失函数以及无标记的分段状态数据训练对应的三重重构损失函数,计算总损失函数的值,直到所述总损失函数的值小于第二预设值时停止训练。
其中,所述总损失函数通过以下公式表示:
其中,F表示总损失函数,m表示有标记的分段状态数据的数量,n表示无标记的分段状态数据的数量,lue表示无标记的分段状态数据训练对应的三重重构损失函数,lle表示有标记的分段状态数据训练对应的三重重构损失函数,δ表示有标记的分段状态数据的权重参数,yj表示有标记的分段状态数据的标签。
所述配电终端异常检测模型的建立装置还包括注意力运算模块106,所述注意力运算模块106用于:
第一注意力运算层计算原始的分段状态数据与原始重构数据的匹配程度,并将匹配程度大于预设匹配程度的原始重构数据定义为注意力集中点;
第二注意力运算层计算原始重构数据与潜在重构数据的匹配程度,并将匹配程度大于预设匹配程度的潜在重构数据定义为注意力集中点。
参考图5,在一些实施例中,提供一种电子设备,包括处理器1和存储装置2,所述存储装置2存储有多条指令,所述处理器1用于读取所述多条指令并执行上述方法。
本实施例提供的配电终端异常检测模型的建立方法及装置,采用编码器、解码器及判别器进行数据重构、误差判别和数据增强,通过计算原始重构数据的误差、判别器的误差判别损失以及潜在重构数据的误差的三重重构损失函数直接实现异常状态检测,模型性能较好;采用主动学习的方式对数据进行自动标注,根据不确定性判定标注的价值,减轻了人工标注的压力,优化了标注的效果,从而提高了模型训练的准确性;在自编码模型中引入注意力机制,将模型的注意力集中在与当前状态相关的信息上,解决了自编码器自身存在的有损重构问题,提高了自编码器重构的效果,进一步提高了模型的性能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。