Timeseries Anomaly Detection usingTemporal Hierarchical One-Class Network

目录

摘要

一、引言

二、相关工作

2.1、引入库

三、相关工作

3.1、引入库

四、相关工作

4.1、引入库

五、相关工作

5.1、引入库

总结


摘要

        真实世界的时间序列具有复杂的潜在时间动力学,异常现象的检测具有挑战性。本文提出了一种用于时间序列异常检测的时域单类分类模型——时域单类分层网络(THOC)。它通过使用一个扩展的有跳跃连接的递归神经网络来捕捉多尺度的时间动态。利用层次聚类过程获得的多个超球体,定义了一个称为多尺度向量数据描述的一类目标。这使得一组多分辨率的时间簇能够很好地捕捉到时间动态。为了进一步促进表示学习,该算法鼓励超球中心相互正交,并在时域中增加了一个自监督任务。整个模型可以端到端训练。对各种真实时间序列的大量实证研究表明,提出的THOC网络在时间序列异常检测方面优于最近的强深度学习基线。


一、引言

        在电厂、数据中心和智能工厂等复杂的信息物理系统中,有大量的传感器持续运行并产生大量的测量数据。为了帮助监控系统的实时工作状态,关键是能够发现异常情况,从而避免潜在的风险和经济损失。在时间序列数据的每个时间步中识别系统的异常状态的问题称为时间序列异常检测[31]。对传统工艺的全面考察可以在[6]中找到。

        一种有效的时间序列异常检测方法应该能够模拟底层系统正常行为的复杂非线性时间动力学,同时具有鲁棒性和可推广到不可见的异常。然而,这种技术的发展是非常具有挑战性的。首先,真实世界的时间序列具有高度非线性的时间相关性和变量之间的复杂交互。此外,异常现象通常很少见。在实践中,发现和标记这些异常是非常耗时和昂贵的。因此,时间序列异常检测通常在无监督学习设置[28]中表示,这也是本文的重点。

        单类分类[19]是一种常用的异常检测方法。其思想是,通过假设大多数训练数据是正常的,它们的特征被一个模型捕获和学习。当当前观测值不能被模型很好地拟合时,检测出一个离群值。两种著名且密切相关的单类分类模型是单类支持向量机(OC-SVM)[26],它使用超平面来分离正常数据和异常数据;支持向量数据描述(SVDD)[29],使用超球体封装正常数据。虽然它们已经成功地在许多真实世界的应用程序中使用[3,15,32],但它们通常仅限于数据丰富的场景,因此可以充分捕获正常的模式。

        OC-SVM和SVDD依靠内核技巧[27]将输入特征映射到高维空间进行数据分离。由于深度学习在计算机视觉、语音识别和自然语言处理等各种应用中取得了巨大成功[12,25],最近的研究试图将深度网络强大的表示学习能力集成到传统的一类分类器中。例如,deep SVDD[22]将SVDD中的内核诱导特征空间替换为深度网络中学习到的特征空间。DAGMM[34]是一种基于密度的单类分类器,它集成了深度自编码器和高斯混合模型(GMM),使GMM能够在低维潜在空间中很好地捕获正态数据。与其他深度网络一样,这些模型都可以通过端到端反向传播的方式方便地进行训练。

        上述传统/深度一类分类器是针对固定维输入数据设计的。如何将其扩展到时间序列异常检测中仍然是一个未解决的问题。一种简单的方法是在时间序列数据上运行滑动窗口。然后提取包含历史信息的固定维向量,并将其提供给一类分类器。然而,这不能充分捕获底层的时间依赖关系。为了缓解这一问题,近年来人们提出了许多基于循环网络的时间序列异常检测模型。早期的尝试是基于lstm的编码器-解码器模型[17],并且根据时间序列上的重构错误定义异常分数。但在解码较长的序列时,存在误差积累的问题。其他更强大的深层生成模型,如循环变分自编码器[28]和生成对抗网络(GAN)的变体(如MADGAN[13]和BeatGAN[33])也被提出。然而,GAN的训练通常是困难的,需要在鉴别器和生成器[10]之间进行仔细的平衡。

        受深度SVDD的启发,本文提出了时域分层单类网络(THOC)。首先,利用扩展递归神经网络(RNN)[2]与跳跃连接有效提取时间序列的多尺度时间特征;与只使用在扩展的RNN的顶层获得的最低分辨率的特征不同,THOC通过一种可微分的分层聚类机制将所有中间层的特征融合在一起。在每个分辨率下,正常行为由多个超球表示。这捕获了真实世界时间序列数据中的复杂特征,比在深度SVDD中使用单个超球更强大。多尺度支持向量数据描述(MVDD)是一种基于融合的多尺度特征和超球中心的区别定义的单类目标,可以端到端地对整个模型进行训练。最后,一个异常分数,用来衡量当前的观察如何偏离由超球表示的正常行为,用于对一个看不见的观察进行异常检测。在一些真实世界的时间序列数据集上进行的实验表明,提出的模型优于最新的技术水平。



二、相关工作

        在本节中,我们将简要回顾支持向量数据描述(SVDD)[29],以及最近的深度SVDD[22]。给定一组N个数据样本,其中大部分是正常的,但也有一些是异常的(离群值),SVDD试图找到一个小的超球(圆心c,半径R)来包围正常数据。这可以表述为以下优化问题:

        其中oO为核诱导的特征图。

        深度SVDD通过用深度网络学习的表示替换来改进SVDD。与(1)类似,其优化问题变为

         其中为参数的深度网络,为正则化器(如l_2正则化器)。根据经验,我们发现以下简化的目标可以获得更好的性能:

        然后对整个模型进行端到端学习。


三、时态层次单类网络(THOC)

        在时间序列异常检测中,给出了一组时间序列的长度为,在 t 时刻的观测值为,任务是根据目前观测到的部分时间序列判断是否为异常。在[17,28,13,31]之后,我们考虑无监督学习设置,在训练过程中不使用任何标签信息。这是更实际的,因为标记异常是罕见的,往往难以识别。

3.1、架构

        图1显示了建议的体系结构。在左侧,从时间序列中提取了多个时间尺度上的时间特征(章节3.1.1)。在右侧,特征被一个分层网络融合和处理,它在顶部输出一个异常分数(章节3.1.2)。

3.1.1、多尺度时态特征

        为了从时间序列中提取多尺度的时间特征,我们使用了一个L层扩展的递归神经网络(RNN)[2]与多分辨率递归跳跃连接。也可以使用其他能够提取多尺度特征的网络(如WaveNet[20])。为了简化符号,我们在本节中去掉下标s。在时刻 t,设到目前为止观察到的(部分)时间序列为。对于特定层 l,循环细胞的隐态为:

        其中为任何RNN单元(如普通RNN 单元, LSTM或GRU), 为跳跃长度为的跳跃连接的输入。跳跃连接的使用有助于对时间序列中的长期依赖关系进行建模,并缓解梯度消失的问题。越大,依赖层 l 捕获的时间越长。与WaveNet[20]相似,这里采用指数增长的跳跃膨胀:(在图1中,)。由于具有多层,膨胀的RNN可以提取丰富的多尺度时间特征,较短的信息在下层学习,较长的信息在上层学习。

3.1.2、融合多尺度特征

        与仅仅使用扩展的RNN最后一层的特征不同,中间层的特征也可能包含有用的信息。在本节中,我们提出一个可区分的层次聚类过程来融合所有这些不同尺度的信息。

        对于特定的尺度,则对应的聚类层有聚类,其中心为。在 t 时刻,这一层的输入是前一层(详情见(8))。当 l = 1时,我们使用来自(4)的时间特征作为输入(因此)。层次聚类过程交替进行以下两个步骤。

        Step 1 (分配):根据与每个中心的相似性,将以概率赋值给这些中心:

        其中为温度参数,得分(·,·)为相似得分函数。当τ→∞时,被分配给所有概率相等的中心。当时,软分配变为硬分配。对于评分函数,我们使用简单余弦相似度:

        还可以使用其他相似函数。

        步骤2 (更新):在获取分配概率后,所有特征融合转化为每个簇

        其中,权值和偏置都通过其他模型参数端到端学习(将在第3.2节中讨论)。如果与从扩张的RNN相应的尺度(l+1)特征连接,并进一步由全连接层变换,输出具有与相同的维数。注意,直接用作最后一层的输出。

3.2、多尺度支持向量数据描述(MVDD)

        与深度SVDD一样,我们测量特征和中心在最后一层。当我们在(6)中使用余弦相似度时,余弦距离(即1 -余弦相似度)被用作。设W为网络中所有可学习的权值。我们的目标是:

        其中?(W)是l_2-正则化器。请注意,我们已经明确地为示例添加了下标s。此外,深SVDD只有一个超球体,但该模型涉及多个层,每个层都有多个中心。因此,(9)中的RL t,j,s表示当前观测与中心的关联程度。

        如下所示,可以用递归的方式很容易地计算出来。为了简化符号,我们在这里省略下标s。在第一层,唯一的输入是,因此in(5)。对于第 l 层,是通过同一层所有中心的softmax得到的:

        取决于与前一层(l ?1)的中心关联的度 和将输出赋给的赋值概率

        为了使每一层中的中心尽可能多样化,我们添加以下损失:

        其中为单位矩阵,为Frobenius范数。这鼓励彼此正交。

        此外,自监督[4]构建相关的辅助任务,以帮助学习信息特征,最近在许多实际应用中显示出一种有效的无监督表示学习方法[4,11,7]。对于时间序列数据,自然的自我监督学习任务是多步提前预测。在这里,为了鼓励在扩展rnn的所有层学习有用的特征,我们使用一个线性模型(在每一层 l 中都有可学习的权值从相应的层 l 隐藏状态时刻预测。这将导致以下时间自我监督损失(TSS):

        结合这三种损失,我们得到以下多尺度支持向量数据描述(MVDD)目标:

        其中是权衡超参数。所有参数都可以通过端到端方式学习。整个过程如算法1所示。

        对于训练过的模型,令 t 时刻的时间序列 X 的观测值为。如(9)所示,我们将其异常得分定义为:。给定一个预定义的阈值,如果,则将标记为异常,否则为正常。


四、相关工作

4.1、引入库

代码如下(示例):


五、相关工作

5.1、引入库

代码如下(示例):


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。