发明内容
为了解决现有技术中存在的问题,本发明提供一种时序数据异常检测的去噪方法,使异常样本的更高重建误差,允许更精确地定义异常样本,摆脱离群值带来的负面影响。
为了实现上述目的,本发明采用的技术方案是:一种时序数据异常检测的去噪方法,采用去噪模型对采集的时序数据进行检测,得到去除离群值的时序数据;
所述去噪模型包括自动编码器和解码器,自动编码器包括两个循环神经网络层,每个循环神经网络层之后都添加一个概率为p的dropout层,每个循环神经网络层有多个节点;在每个dropout层生成一个随机数r;在网络训练期间,如果当前dropout层的随机数r小于概率p,则此循环神经网络层的输出设为0,反之则不进行变化;
编码器用于通过循环神经网络层将长度为L的输入时序数据编码为若干组向量表示;解码器用于通过循环神经网络层和输出转换层将所述若干组向量表示解码为长度为L’的输出时序数据并输出,所述输出时序数据为去除离群值的时序数据。
具体包括以下步骤:
采集的时序数据从自动编码器输入,自动编码器生成输入时序数据的固定长度的向量表示;自动编码器的最终隐藏层的最终状态输出数据的潜在表示用作解码器的初始状态;
解码器基于所述固定长度的向量表示,利用当前的隐藏状态和上一个时间步长上的估计值重建时间序列,将解码器第一隐藏层输出输入到下一隐藏层,直到最后一层,输出去除离群值的时序数据。
自动编码器生成输入时序数据的固定长度的向量表示时,对将长度为L的时间序列信号进行重构,计算每个节点的重构误差,通过指定重构误差阈值,如果重构误差超过所述指定阈值,则标记异常值。
采用历史时序数据训练去噪模型的模型参数,训练过程中自动调整模型参数,所述参数包括节点数u、网络深度以及超参数,将训练所得模型参数作为检测时所用。
自动编码器训练时最小化重建损失:
为此时刻输入x在监督学习情境下对应的真实值,
为此时刻输入x在监督学习情境下对应的预测值。
随机数r采用蒙特卡洛或随机数生成函数生成。
dropout层中使用标准dropout、DropConnect和Standout方法中的一种或两种结合。
所述循环神经网络为GRU、BiLSTM或LSTM网络结构。
另外,本发明还提供一种计算机设备,包括处理器以及存储器,存储器用于存储计算机可执行程序,处理器从存储器中读取所述计算机可执行程序并执行,处理器执行计算可执行程序时能实现所述时序数据异常检测的去噪方法。
同时可以提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时,能实现所述的时序数据异常检测的去噪方法。
与现有技术相比,本发明至少具有以下有益效果:
模型将能够有效地重建正常样本,同时努力重建异常样本,使异常样本的更高重建误差,允许更精确地定义异常样本,摆脱离群值带来的负面影响;每个LSTM层之后都添加一个dropout层,以切断两层之间的协同适应关系,使不稳定性质存在于所有特定隐藏单元中,进而防止循环神经网络层过拟合现象的产生,同时提升神经网络的整体性能;通过应用针对时序数据异常值鲁棒的优化算法,提升数据集内的离群值精准判断,对于光伏故障诊断领域广泛存在的时序数据提供具有更强泛用性的神经网络处理方案。
具体实施方式
针对离群值进行的异常检测应用广泛,包括传感器网络故障检测、网络入侵检测等各行业各方面。在光伏场景产出的时间序列数据中,一个离群值或异常值是一个明显偏离数据的总体趋势、季节性或周期性模式的数据点。识别时间序列数据中的离群值尤其具有挑战性,这样的离群值定义不精确,经常缺少标签,且此类数据中存在的复杂时间相关性对网络的所需数据数量质量、数据处理能力、运算速度、处理时序数据的能力和算法经济性等各方面都提出了极高的要求。
本发明使用基于LSTM的自动编码器-解码器对光伏场景产出的时序数据进行处理,采用包含异常检测和处理的去噪模型对光伏电站的故障诊断提供支持。本发明提出的去噪模型在训练过程中随机地将模型暴露于极端情况,即上层LSTM层输出为0,允许其更准确地概括正常样本,而不受异常样本的显著影响,从而其权重在异常样本存在时不会显著变化。在训练之后,模型将能够有效地重建正常样本,同时努力重建异常样本,使异常样本的更高重建误差(等式2),从而允许更精确地定义异常样本,摆脱离群值带来的负面影响。
LSTM:长短期记忆网络(Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的循环神经网络存在的长期依赖问题设计而来,一般用于解决时间序列数据的学习问题。离群值:又称异常值,是一个与其他数据有显著不同的数据点。瓶颈层:神经网络层的一种,通过改变网络维度,提升网络灵活度,并且减小计算量。Dropout策略:一种减少神经网络过拟合的策略,当使用dropout时,神经网络将删除包括隐藏和可见在内的一些单元。
本发明所述神经网络为一个具有两个LSTM层的LSTM自动编码器,在每个LSTM层之后都添加了一个dropout层,每个LSTM层有u个节点,后面是一个概率为p的dropout层。
自动编码器是一种生成式无监督深度学习模型,利用具有狭窄瓶颈层的神经网络重构高维输入数据,进而使该神经网络学习到编码器和解码器之间的数据的潜在表示;自动编码器训练过程包括尝试最小化重建损失,重建损失可以看作对离群值的处理情况,而重建损失的大小则可等同于检测离群的情况。
在训练过程中,数据从自动编码器输入,自动编码器生成输入时序数据的固定长度的向量表示。然后,LSTM解码器使用此向量表示,利用当前的隐藏状态(hidden state)和上一个时间步长上的估计值重建时间序列。设输入进神经网络的时间序列长度为L,
其中
属于n维向量空间,
是编码器的第k层在时间t∈{1,……,L}的隐藏状态,其中k∈{1,……,H};H表示每个编码器和解码器中的隐藏层数,
u是编码器隐藏层k中的LSTM单位数。编码器的最终隐藏层
的最终状态输出数据的潜在表示将用作解码器的初始状态。
解码器使用输入x
(i)重构原始输入以获得隐藏状态
然后进行第一层的所有隐藏状态的计算,然后将解码器第一隐藏层输出
输入到下一隐藏层,直到最后一层,当解码器利用
导出最终的隐藏状态
然后估计与x
i-1对应的x′
i-1;自动编码器的目的是最小化以下内容:
x
i为此时刻输入x在监督学习情境下对应的真实值,x′
i为此时刻输入x在监督学习情境下对应的预测值,
为解码器在第H-1隐藏层时间i时的输出。
在训练自动编码器后,将长度为L的时间序列信号I={x1,x2,……,xN}传递给解码器以重构向量表示,然后使用方程xi∈Xi计算每个节点的重构误差,Xi∈I可以用作异常分数,并且指定重建误差阈值,如果重建误差,如式(2),超过值指定阈值,则可以标记异常值。
其中,
是重建误差,
为此时刻输入x在监督学习情境下对应的真实值,
为此时刻输入x在监督学习情境下对应的预测值。
综上所述,本发明在LSTM自动编码器中的每个LSTM层之后都添加一个dropout层,以切断两层之间的协同适应关系,使不稳定性质存在于所有特定隐藏单元中,进而防止LSTM网络过拟合现象的产生,同时提升神经网络的整体性能,编码器将会选择一个合适的概率p,并在每个dropout层生成一个随机数r;在网络训练期间,如果当前dropout层的随机数r小于概率p,则此LSTM层的输出被设为0,反之则不进行变化,如式3所示。
对于随机数r的取值,本发明使用蒙特卡洛算法,进行伪随机模拟数生成。对于概率p的取值,本发明可以做到训练过程中对此数值的自动调参,最终选出最优概率p输出针对当前光伏场景的最优解。
网络架构为图1所示,本发明所述神经网络包括一个具有两个LSTM层的LSTM自动编码器,每个LSTM层有u个单位,LSTM层后面是一个概率为p的dropout层。
本发明所述dropout方法可以只使用一种dropout方法类型,或用其他的组合方式,其他的dropout方法类型可以是标准dropout、DropConnect或Standout。
另外,本发明还可以提供一种计算机设备,包括处理器以及存储器,存储器用于存储计算机可执行程序,处理器从存储器中读取部分或全部所述计算机可执行程序并执行,处理器执行部分或全部计算可执行程序时能实现本发明所述时序数据异常检测的去噪方法。
另一方面,本发明提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时,能实现本发明所述的时序数据异常检测的去噪方法。
所述计算机设备可以采用笔记本电脑、桌面型计算机或工作站。
处理器可以是中央处理器(CPU)、图形处理器(GPU)/数字信号处理器(DSP)、专用集成电路(ASIC)或现成可编程门阵列(FPGA)。
对于本发明所述存储器,可以是笔记本电脑、桌面型计算机或工作站的内部存储单元,如内存、硬盘;也可以采用外部存储单元,如移动硬盘、闪存卡。
计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance Random Access Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。