×

解读:时间卷积神经网络用于时间序列的异常检测

minsx minsx 发表于2021-01-20 11:41:26 浏览1163 评论0

抢沙发发表评论

写在前面

下面这篇文章的内容主要是来自发表于Journal of Physics: Conference Series 的一篇文章《Temporal Convolutional Networks for Anomaly Detection in Time Series》。这篇文章提出了一种基于时间卷积神经网络的时间序列异常检测方法,也是首篇将TCN应用于时间序列异常检测的文章。实验验证了提出的方法的有效性。原论文在文末进行获取。


1
摘要


卷积网络已被证明在提取结构化数据中的高级特征方面具有不错的效果。而时间卷积网络(TCN)是一种利用因果卷积空洞卷积的神经网络模型,它可以适应时序数据的时序性并可以提供视野域用于时序建模。在这篇文章中,作者提出了一种新颖的思路,将TCN应用于时间序列的异常检测中。其中,文中通过正常序列进行训练TCN,并用它来预测若干时间步长的趋势。然后,采用多元高斯分布来拟合预测误差,计算每个时间点的数据的异常分数。此外,作者还提出了一种多尺度特征混合方法以提高性能。最后,通过三个实际数据集验证了该方法的有效性。

时间序列异常检测是指发现序列数据中与正常行为显著不同的潜在模式。由于其在实际工程问题中作为一个广泛存在的现实问题,引起了社会各界的广泛关注。在过去的几年里,深度学习已经成为最受欢迎的机器学习方法之一,因为它在广泛的任务中有着突出的效果。深度学习成功的一个主要原因是它能够自动从结构数据中提取高级特征。而对于序列数据,提取序列数据的固有模式进行分析具有重要意义,深度学习具有强大的表示能力,是一种有效的方法。在处理时序数据时,卷积网络通常通过在数据上滑动一个一维的卷积滤波器来预测序列的未来元素。递归神经网络(RNN)由于能够存储时间序列中的历史信息,在序列任务中得到了广泛应用。长短期记忆(LSTM)神经网络和门控循环单元克服了RNN中的消失梯度问题,并成功地应用于语音和自然语言处理中。


在这篇文章中,作者考虑到通过神经网络的方法解决异常检测问题时,由于正常和异常实例的数量极不平衡,因此通过训练一个预测网络来模拟正常行为,利用预测误差来识别异常行为。预测网络对正常行为进行了很好的训练后,由于缺乏对异常模式的理解,异常行为区域的预测结果将偏离实际情况。


本文采用一种无监督学习的方式来解决时间序列异常检测问题,其中使用时间卷积网络框架作为预测模型,使用多元高斯分布来识别时间序列中的异常点。另外,TCN中的空洞和因果卷积操作,使其具有时间性和灵活的接收域,从而适合于时序数据建模。除此之外,跳跃式连接也被用到,它可实现对不同尺度模式的多尺度特征混合预测。


2
模型介绍


模型的整体架构主要包括两个方面,分别是卷积序列模型异常检测模块。

其中卷积序列模块主要包括以下几个部分:

1、时间卷积网络

训练时间卷积网络预测输入时间序列的下  个值时,假设输入序列为  ,希望预测一些相应的输出  ,它的值等于输入值向前移动  个单位。在进行预测的时候主要的限制是,当预测某个时间步长t的输出  时,它只能使用前面观察到的输入  。


因此,TCN有两个主要约束:网络的输出应该与其输入具有相同的长度,并且网络只能使用过去时间步长的信息。为了满足这些时间性原则,TCN中使用了一个1维全卷积网络结构,即它的所有卷积层具有相同的长度,并带有零填充,以确保更高的层与之前的层相同的长度。此外,TCN使用因果卷积,即每一层的时间步长t的输出只计算不晚于前一层时间步长t的区域,如下图所示。对于一维数据,通过将常规卷积的输出移动几个时间步长,可以很容易地实现因果卷积。

2、空洞卷积

一般来说,在处理时间序列时,人们期望网络能够记住长期信息。然而,在我们前面展示的因果卷积中,除非叠加很多层,否则接收域的大小是有限的。因此,为了克服这些问题,这里使用了空洞卷积来实现有限层网络具有指数级别大小的接收域。空洞卷积是一种卷积,通过跳过给定步骤的大小,然后在一个比它的大小更大的区域上应用滤波器。这类似于池化或跨步卷积,因为它增强了接收区域的大小,但它使输出大小等于输入。当使用空洞卷积时,通常会随着网络的深度指数增加空洞夸张因子d。这保证了历史记录中每个输入的接收域,并通过使用深度网络获得一个非常大的接收域作为有效的历史记录。下图是一个因果空洞卷积的图示。

3、残差连接

由于TCN的接收域大小取决于网络深度n、滤波器大小k和空洞扩张因子d,因此使TCN变深变大是获得足够大的接收域的关键。从经验上看,使网络变深变窄,即叠加大量的层,选择较细尺度的过滤器尺寸,是一种有效的架构。残差连接已被证明是非常有效的训练深度网络。在残差网络中,整个网络采用跳跃连接,以加快训练过程,避免深度模型的梯度消失问题。

4、用于预测的多尺度映射

时间序列预测模型是为了从过去的输入中学习固有模式而设计的。通常,时间序列包含不同的尺度模式,例如,电力需求数据呈现每日重复和每周重复。直观上,不同接收域卷积网络中不同深度的特征层可以重点学习不同的尺度模式。受多尺度目标检测网络的启发,与其只使用最后一层,不如提取多层特征并将它们结合在一起进行预测。为了方便每个feature map在所有层中包含相同的长度,通过跳跃连接可以很容易地完成这种feature的合并,如下图所示。即从不同的层中加入分支,并将它们连接在一起,得到一个包含多尺度特征的层,并对这一层进行1  1卷积,进行预测。

除了时间卷积模块之外,还需要介绍异常检测的模块:

异常检测模块以预测误差为异常指标,从而逐点实现异常检测。其中,预测误差是预测值和真值的残差。训练数据的预测误差分布采用多元高斯分布建模,其中误差向量的高斯分布的均值和方差采用最大似然估计(MLE)计算。


异常分数来描述一个点的异常概率,观测的异常分数预测误差向量被定义为下面方式,其中  表示预测误差,  和  分别表示预测误差分布的均值和协方差。如果一个点的异常分数  大于一个阈值  ,则将这个点分类为异常点,否则的话分类为正常点,其中分类阈值的选取是根据模型在验证集上的表现决定的。


因此,异常检测模型主要分为下面几个步骤:

1、通过训练集训练预测模型,并通过验证集进行early stop以防止模型在训练集出现overfitting的现象。

2、通过多变量高斯分布模型来拟合模型在训练集的的预测误差。

3、通过训练好的模型在验证集上进行预测,通过得到的多变量高斯分布模型在验证集上进行计算异常分数,以此来确定异常分数的阈值。

4、用得到的模型以及异常分数阈值对模型在测试集上进行验证。


3
实验验证


提出的模型在不同的真实数据集上进行了测试,包括心电图、航天飞机和二维手势数据集。其中,对于每个数据集,异常按照窗口进行标记,即如果一个窗口包含异常模式,整个窗口被标记为异常。在将数据输入网络之前,对每个通道的数据进行归一化处理,以避免不同尺度数据的干扰。


在实验中,作者比较了有无多尺度特征的TCN的预测效果(即下表中的TCN和TCN-ms)。其中,使用相同的网络,最后一层使用1  1卷积得到预测结果。为了跳过连接来获得多尺度特征映射,最后3层被连接在一起。Adam Optimizer用于最小化真值和预测之间的MSE。实验的结果如下表所示:

下图展示了包含异常序列的样本序列以及对应的异常分数序列。其中,第一行序列表示原始序列,第二行红色序列表示异常分数值,红色的虚线表示异常阈值。


4
总结


在这篇文章中,作者基于TCN提出了一种异常检测的方法,它通过TCN学习序列数据的正常模式,然后基于多变量高斯分布来拟合预测残差,进而根据预测误差的偏离程度以及预设的阈值来进行异常检测。总而言之,这篇文章提出了一种TCN应用的新场景,为相关研究者提供了一些研究思路和借鉴。


参考文献:

He Y ,  Zhao J . Temporal Convolutional Networks for Anomaly Detection  in Time Series[J]. Journal of Physics: Conference Series, 2019,  1213:042050-.


关注《人工智能量化实验室》公众号,后台发送066可获取原论文。

赠书活动

【书籍推荐】本书先从量化交易的基本概念讲起,然后讲解Python的基本语法及常见库的使用,在每章节的学习中都以金融量化为实例,并在后结合实战项目来进行学习和巩固,读者不但可以系统地学习Python编程的相关知识,而且还能学习到Python在量化交易场景下的应用。本书内容通俗易懂,案例丰富,适合零基础并对Python量化感兴趣的读者,以及想学习量化交易实战项目的Python初学者。此外,本书也适合作为相关培训机构的培训教材。

【活动说明】截至至下周一,以公众号后台统计的阅读最多分享最多的排行榜中取第一名分别包邮赠送一本《python量化金融编程从入门到精通》,结果将在下一篇推文中公布。





了解更多人工智能与
量化金融知识

<-请扫码关注



让我知道你在看

米斯云

访客