深度学习在时间序列数据异常检测中的应用:回顾、分析和指南 Deep Learning for Anomaly Detection in Time

您所在的位置:网站首页 检测到车窗状态异常 深度学习在时间序列数据异常检测中的应用:回顾、分析和指南 Deep Learning for Anomaly Detection in Time

深度学习在时间序列数据异常检测中的应用:回顾、分析和指南 Deep Learning for Anomaly Detection in Time

2024-07-11 13:15| 来源: 网络整理| 查看: 265

论文名称:Deep Learning for Anomaly Detection in Time-Series Data: Review, Analysis, and Guidelines

文章目录 摘要 I. 引言II. 背景A. 时间序列数据中的异常1) 点异常2) 上下文异常3) 集体异常4) 其他异常类型 B. 时间序列数据的特性1) 时间性2) 维度性3) 非平稳性4) 噪声 III. 工业应用A. 智能制造1) 生产设备2) 基础设施设施3) 物流自动化系统 B. 智能能源管理1) 电力2) 处理水 C. 云计算系统1) 服务器机器2) 网络和框架3) 网络安全 D. 结构健康监测 IV. 传统方法的挑战A. 传统方法1) 时间/频率域分析2) 统计模型3) 基于距离的模型4) 预测模型 5) 聚类模型B. 挑战性问题1) 缺乏标签2) 数据的复杂性 V. 用于异常检测的深度学习A. 变量之间的相互关系1) 维度缩减 2) 2D矩阵3) 图4) 其他B. 建模时间上下文1) RNN2) CNN3) 混合4) 注意力5) 其他 C. 异常标准1) 重构误差2) 预测误差3) 不相似度 VI. 比较评价A. 实验设置B. 结果与分析1) 建模时间依赖性 2) 长序列的并行处理3) 数据集的维度4) 属性之间的相互关系 VII. 从业者指南2) 滑动窗口 vs. 增量更新 B. 训练和预处理技术1) 损失函数2) 批量学习 vs. 在线更新3) 降噪 VIII. 结论

摘要

随着工业自动化和连接技术的发展,各种系统持续产生大量数据。已经提出许多方法,从海量数据中提取主要指标以代表整个系统状态。利用这些指标在时间上检测异常可以预防潜在事故和经济损失。在多变量时间序列数据中检测异常具有特殊挑战,因为它需要同时考虑时间依赖性和变量之间的关系。最近基于深度学习的工作在这一领域取得了令人瞩目的进展。它们能够以无监督的方式学习大规模序列的表示,并从数据中识别异常。然而,大多数方法对于个别用例非常具体,因此需要领域知识来进行适当部署。本综述提供了时间序列数据异常检测的背景,并审查了现实世界中的最新应用。此外,我们对用于时间序列的最先进深度异常检测模型进行了比较分析。最后,我们为基于深度学习的时间序列异常检测提供了适当的模型选择和训练策略的指南。

关键词 异常检测, 深度学习, 故障诊断, 工业应用, 物联网, 时间序列分析.

I. 引言

地球上的一切都是信号源。人类不断测量和收集自然界发生的信号,如温度、风速、降雨量和太阳黑子强度,以适应环境。此外,几十年来,各种工业活动在大多数领域生成了大量数据,如商业(例如销售和市场趋势)、金融(例如股价)、生物医学(例如心脏和脑活动)和制造业(例如产量)。在每个工业领域,数据所有者积极收集并利用这些数据来改进产品、流程和服务。特别是随着工业4.0的到来,各行业开始密集利用大量传感器同时监测其设施和系统,从而提高效率、安全性和安全性 [1]。

在各种数据类型中,时间序列数据在学术界已经研究了很长时间,如医学、气象学和经济学,并且现在是大多数实际应用中分析的重点。时间序列分析是指一系列旨在从时间顺序数据中提取有意义知识的任务;提取的知识不仅可以用于诊断过去的行为,还可以用于预测未来。时间序列分析的广为人知的例子包括分类、聚类、预测和异常检测。

异常检测,即从数据中识别意外项或事件的过程,已成为许多研究人员和从业者关注的领域,现在是数据挖掘和质量保证中的主要任务之一 [2]。它已在各种应用领域进行了研究,并取得了显著进展。经典方法包括基于线性模型的方法 [3]、基于距离的方法 [4]、基于密度的方法 [5] 和支持向量机 [6],仍然是一种可行的算法选择。然而,随着目标系统变得更大更复杂,这些方法面临限制,即无法处理多维数据或解决标记异常不足的问题。特别是,在时间序列数据中检测异常是具有挑战性的,因为需要同时考虑沿时间轴的观测之间的顺序和因果关系。最近,许多方法已被开发来解决这些挑战。例如,胡等人 [7] 提出了一种新颖的计算方法,使用循环图(RP),一个由动态系统状态重复的时间组成的方阵。他们通过使用滑动窗口扫描RP来测量局部重现率(LREC),并通过比较LREC曲线的统计量之间的相似性来检测异常。

(a) 点异常

(b) 上下文异常

© 集体异常

图1. 时间序列数据中的异常类型。

深度学习是受大脑结构和功能启发的机器学习算法的一个子领域,近年来备受关注。深度学习方法学习数据中的复杂动态,同时不对数据中的基本模式做任何假设。这一特性使它们成为当今时间序列分析最具吸引力的选择。例如,闫等人 [8] 提出将集成的长短期记忆(LSTM)神经网络,这些网络可以记忆时间序列中的长期模式,与静止小波变换(SWT)相结合,用于预测能源消耗。他们的实验结果表明,所提出的深度学习方法优于经典计算方法。

本研究的目标是回顾基于深度学习的时间序列数据异常检测方法的最新进展。据我们所知,先前的综述 [1],[2],[9]-[14] 在这一主题上不过是根据它们的机制对模型进行简单分类并描述其特征。在本文中,除了根据其方法对模型进行分类外,我们还详细分析了它们如何定义变量之间的相互关系、学习时间上下文以及在多变量时间序列中识别异常。此外,我们根据使用几个基准数据集进行的比较实验分析,为从业者提供指导。我们的分析为从业者选择最适合解决问题的方法提供了有益的见解。

本文的其余部分组织如下:在第二节中,我们提供关于异常检测和时间序列的基础知识。在第三节中,我们介绍各种工业用例。在第四节中,我们介绍了值得注意的传统方法,并讨论了使它们在最近的应用中不再足够的潜在因素。在第五节中,我们深入审查了最近的异常检测方法,根据它们如何定义变量之间的相互关系、建模时间上下文和设置异常标准。通过第六节-A到第六节-B,我们评估了几个基准数据集上基于深度学习的异常检测方法,并提供了比较审查。最后在第七节,我们提供了适用于根据给定条件和问题选择模型的一般指南。

II. 背景 A. 时间序列数据中的异常

我们从异常的定义入手。已经有多次尝试描述异常数据(即统计异常值)的性质。Hawkins [15] 将异常值描述为一个偏离其他观测值如此之远,以至于引起怀疑它是由不同机制生成的观测值。在这个背景下,我们可以将时间序列数据中的异常描述为在时间步骤上显示与先前时间步骤明显不同的意外行为的数据点。根据以前的文献工作,我们将与时间序列数据相关的异常类型分类如下。

1) 点异常

点异常是突然偏离正常的数据点或序列(图1(a))。这种异常可能看起来像是时间上的噪音,通常是由传感器错误或异常系统操作引起的。为了检测,操作员传统上根据先前数据设定上限和下限控制限,通常称为UCL和LCL。存在于这些限制之外的值被视为点异常。

表1. 时间序列数据中异常的详细分类描述。

2) 上下文异常

类似于点异常,上下文异常表示在短时间内观察到的数据点或序列,但在形状上不像预定义的UCL和LCL限定的异常那样偏离正常范围。然而,考虑到给定的上下文(图1(b)),数据点不符合预期的模式或形状。因此,这些异常可能难以检测。

3) 集体异常

这种异常类型指的是一组数据点,它们应被视为异常,因为它们随着时间逐渐展示出与正常数据不同的模式(图 1©)。在这种异常中,单个数值看起来可能没有问题,但整体上却引起怀疑。由于一开始不容易被识别,长期的上下文在检测它们时尤为重要。

4) 其他异常类型

异常是指超出正常状态的事物,什么是异常取决于我们如何定义正常。一般来说,异常可以分为前面提到的三种类型之一,但其他观点可能会将异常细分为更具体的类别。表1展示了异常模式的分类及其示例,取自文献[16],[17]。

总之,异常是指数据点的出现在过去要么极为罕见,要么逻辑上不可能。然而,在多变量时间序列数据中,将异常分类为前面的例子中那样可能并不合适。多变量时间序列数据需要额外考虑变量之间以及时间轴之间的关系。随着变量数量的增加,会出现更多样化的模式。因此,异常模式可能是不规则的,正常和异常状态之间的差异可能模糊不清。扫描单个单变量时间序列数据并将它们聚合以识别异常并不能保证检测结果的准确性,因为少数异常点可能会被其他正常变量掩盖,并严重影响整个目标系统。通过提取清晰的变量或特征来降低维度,或者使用足够复杂的模型来检测各种模式,可以解决这些问题。

B. 时间序列数据的特性

尽管时间在几乎所有任务中都是一个重要概念,但处理时间敏感数据需要仔细考虑。然而,如果对时间序列数据的特征有很好的理解,就可以通过利用信号的上下文信息有效地检测异常。因此,我们简要描述时间序列数据的基本原理。这里讨论的因素包括时间性、维度性、非平稳性和噪声。

1) 时间性

时间序列通常被认为是按时间顺序索引的一系列观测值[18]。数据以等间隔捕获,系列中的每个连续数据点取决于其过去的值。因此,每个连续观测之间存在一定的时间相关性或依赖关系[19]。观测序列的联合分布可以使用链式乘法规则表示为 (1)。

p ( x 1 , x 2 , … , x T ) = p ( x 1 ) ∏ t = 2 T p ( x t ∣ x 1 , x 2 , … , x t − 1 ) , \begin{equation*} p\left(x^{1}, x^{2}, \ldots, x^{T}\right)=p\left(x^{1}\right) \prod_{t=2}^{T} p\left(x^{t} \mid x^{1}, x^{2}, \ldots, x^{t-1}\right), \tag{1} \end{equation*} p(x1,x2,…,xT)=p(x1)t=2∏T​p(xt∣x1,x2,…,xt−1),​(1)​

其中 x t x^{t} xt 是在时间 t ∈ T ⊆ Z + t \in T \subseteq \mathbb{Z}^{+} t∈T⊆Z+ 观察到的数据点,每个条件概率 p ( ⋅ ⋅ ⋅ ) p(\cdot \cdot \cdot) p(⋅⋅⋅) 表示当前状态与先前状态之间的时间依赖关系。

2) 维度性

维度性指每个观测值中捕获的个体数据属性的数量[9]。根据维度性,时间序列数据主要分为单变量和多变量两种类型。时间序列数据的维度性影响计算成本和分析方法选择。

单变量:描述有序的实值观测值集合,其中每个数据点在特定时间 t ∈ T ⊆ Z + t \in T \subseteq \mathbb{Z}^{+} t∈T⊆Z+ 进行测量。因此, x t ∈ R x^{t} \in \mathbb{R} xt∈R 是在时间 t t t 测量的数据点,是某个随机变量 X t X^{t} Xt 的实现值[2]。多变量:描述有序的多维向量集合 X = { x t } t ∈ T X=\left\{\mathbf{x}^{t}\right\}_{t \in T} X={xt}t∈T​,每个向量记录在特定时间 t ∈ T ⊆ Z + t \in T \subseteq \mathbb{Z}^{+} t∈T⊆Z+,包含实值观测值。在实际情况下,这可以看作是表示目标系统状态的一组单变量时间序列数据流。

单变量时间序列的异常检测仅考虑当前状态与先前状态之间的关系,即时间依赖关系。但对于多变量数据流,既应考虑时间依赖关系,也应考虑观测值之间的相关性。尽管增加了复杂性,多变量时间序列数据现在已成为分析由多个变量组合产生的各种行为的典型数据类型。

3) 非平稳性

如果时间序列的统计特性随时间不变,则称其为平稳的。更明确地说,对于任何 τ ∈ N \tau \in \mathbb{N} τ∈N,连续随机过程 x = { x t } t ∈ T ⊂ Z + \mathbf{x}=\left\{x^{t}\right\}_{t \in T \subset \mathbb{Z}^{+}} x={xt}t∈T⊂Z+​ 如果满足以下条件,则称其为强平稳的,如 (2) 所示。

F X ( x 1 + τ , … , x t + τ ) = F x ( x 1 , … , x t ) , \begin{equation*} F_{\mathbf{X}}\left(x^{1+\tau}, \ldots, x^{t+\tau}\right)=F_{\mathbf{x}}\left(x^{1}, \ldots, x^{t}\right), \tag{2} \end{equation*} FX​(x1+τ,…,xt+τ)=Fx​(x1,…,xt),​(2)​

其中 F x F_{\mathbf{x}} Fx​ 表示联合分布函数。理想情况下,我们希望时间序列是平稳的以进行建模,但在现实场景中,许多期望的特性并不成立。季节性、概念漂移和变点等不稳定特征使时间序列数据变得非平稳。

季节性:这是由天气、假期、营销促销和经济主体行为等因素引起的周期性和重复模式[20]。简而言之,它是在有限时间尺度上的周期性波动。例如,白天用电量高,夜间用电量低。同样,网上销售在黑色星期五周末迅速增加,然后再次减少。概念漂移:许多真实环境的非稳定性可能导致数据流的潜在统计分布随时间发生变化。这种现象在文献中有许多名称,其中最常见的是概念漂移[21]。这是一个核心问题,因为它可能会影响从历史数据中学习的模型的性能[22]。变点:在制造业中,设备的正常状态经常因多种原因而发生变化。例如,随着操作停止并以不同设置重新启动,工艺条件会发生变化。

由于大多数时间序列数据是非平稳的,表明在某些时间戳指示虚假异常的数据点在较大尺度上可能并不是真正的异常。因此,需要适应数据结构变化的检测方法以进行长期部署。

4) 噪声

在信号处理中,噪声是指信号在捕获、存储、传输、处理或转换过程中不希望的变化的通用术语[23]。在现实世界的系统中,噪声被认为是一个常见问题。在许多情况下,噪声是由传感器灵敏度的微小波动引起的,对整体数据结构基本上没有影响。然而,在嘈杂系统中噪声与异常之间的区分困难时,噪声会严重影响检测模型的性能[24]。因此,在预处理阶段了解噪声的性质并减少噪声是至关重要的。

III. 工业应用

各行各业通过利用最新的数字技术来适应不断变化的环境,提高了竞争力。云计算、大数据、移动设备、物联网和人工智能 (AI) 导致了工业现场的超连接和超智能化。将数字组件与物理世界现象相结合有助于降低运营成本,提高业务敏捷性和灵活性,并创造新的收入模式。利用这些技术进行异常检测对工业尤为重要,因为它在现实应用中需求量很大,例如制造业中的故障检测、气化学过程中的泄漏检测、网络入侵检测以及基础设施结构健康监测。

A. 智能制造

智能工厂的概念将设施和设备高度数字化和连接起来,通过自动化和自我优化提高生产效率和质量。在自动化制造过程中,设备状态与质量和生产效率密切相关。稳定的运行导致更好的质量,高效的运行减少制造时间并提高生产效率。因此,及时检测故障或预测设备可能出现的异常至关重要。

智能工厂中应用的设备包括生产设备、基础设施设施和物流自动化设备 (图2)。生产设备在保持质量的同时高效制造产品。基础设施设施向制造过程提供电力、水、气体和化学品;它还净化废水和化学废物。物流自动化设备将产品从一个地方运送到另一个地方。

虽然已经利用了多种机器学习技术来检测这些类型的工业设备中的损坏、故障和异常[25]-[28],深度学习模型显示出了巨大的潜力。

1) 生产设备

数据驱动模型帮助大型制造工厂中的设备运行,因为它们可以在不需要广泛领域知识的情况下检测可能的故障。Hsieh等人[29]采用基于长短期记忆 (LSTM) 的自编码器 (AE) 来学习设备的正常状态,并检测在生产设备组件中发生的多变量流中的异常。基于 LSTM 的 AE 包含编码器和解码器,每个都由 LSTM 网络组成,是递归神经网络 (RNN) 的变体。

在大多数制造工作区域,计算机数控 (CNC) 用于通过切割、钻孔、磨削、剪切或其他变形来加工金属和其他刚性材料。Luo等人[30]提出了一种 CNC 机床的早期故障检测模型。他们采用堆叠自编码器 (SAE) 从长期运行期间的大规模振动数据中挖掘敏感的故障特征。他们使用余弦相似度函数作为预测性维护的健康指标。 (a) 蚀刻机

(b) CCSS ⁡ 2 \operatorname{CCSS}^{2} CCSS2

© A G V 3 \mathrm{AGV}^{3} AGV3 图2. 设备类型示例:(a) 半导体制造中称为蚀刻机的生产设备通过选择性去除晶圆上的介质和金属材料来创建芯片特征;(b) 中央化学供应系统是一种基础设施设施,安全地向半导体制造过程提供高纯度化学品;© 自动引导车是一种物流自动化设备,在工作区域内运输产品组件。

在卷积神经网络(CNN)改变了计算机视觉领域之后[31],研究人员也开始将CNN应用于时间序列数据分析[32]。基于CNN的故障检测和诊断模型展示了它们在处理从半导体制造过程中捕获的多变量时间序列数据方面的能力[33]-[35]。

2) 基础设施设施

泵、冷却器和洗涤器是维持环境条件(如温度、净化和压力)的代表性基础设施设施。特别是,工业泵用于各种原因,例如在设备或管道中维持真空状态和排放气体和污泥。泵通常并联驱动。因此,即使一个泵表现异常,另一个泵也可以进行补偿,使操作员不会察觉。这种情况提供了对异常的容忍度,但负载较重的泵将不可避免地磨损更快。因此,需要准确检测和预测异常,以增强制造过程的稳定性。在这方面,Lindermann等人[36]采用了离散小波变换(DWT)和LSTM-AE来检测多个泵的异常。另一种方法使用CNN来识别从泵振动信号转换的图像中的故障[37]。

供暖、通风和空调(HVAC)是通过温度控制、补充氧气和去除湿气和污染物来提供室内环境舒适度的代表性系统。最近,针对该系统的基于深度学习的异常检测和诊断模型已在[38],[39]中提出。

在化学过程中,空气供应或污染水平的突然变化可能会严重损害产品质量。因此,多年来进行了几项异常检测研究。吴和赵引用wu2020fault采用了一个预训练的AlexNet,其中[^0]是CNN模型之一,从数据中提取一般特征,并使用联合最大均值差异进行迁移学习。所提出的模型在各种化学过程中表现出很好的泛化性能。另一个例子[41]使用LSTM对化学环流系统中的颗粒磨损进行早期故障检测。在废水处理(WWT)中,污染物的检测和处理至关重要。最近的一项研究利用LSTM来监测和检测WWT过程中的故障,表现出显著的性能[42]。

3) 物流自动化系统

制造业对高度灵活的生产系统的兴趣与对更个性化产品需求的增加有关[43]。这种情况需要生产灵活性,而自动引导车(AGV)在制造过程中在工作区域之间运输产品组件,增强了生产灵活性[44]。AGV降低了人为干预的成本,并允许根据产品类型进行即时更改。

尽管有许多优点,但在使用AGV时必须克服一些关键障碍。例如,如果其中一辆车辆损坏或发生故障,可能会造成瓶颈,其他车辆必须继续前进,导致重大经济损失。为了在出现此类问题时采取适当的行动,必须始终监视车辆的状况。Acosta和Kanarachos[45]提出了一种基于车辆信号估计非线性车辆动力学的方法。他们采用了由扩展卡尔曼滤波器(EKF)和神经网络组成的结构,以预测侧向轮胎力和路面抓地潜力。EKF假设不确定性的分布是非线性高斯的,并通过重复预测和校正来估计这一点。Gräber等人[46]提出了使用带门控循环单元(GRU)的RNN来估计侧滑角的方法。因为RNN,特别是带有GRU的RNN,明确地建模长期依赖关系,所以在不同条件下实现了出色的估计质量。尽管像EKF这样的传统方法在行业中仍然占主导地位,但设计良好的RNN结合足够的数据可以成为一个有竞争力的解决方案,因为它依赖的模型假设较少,如底层物理方程。

另一种解决方案是监视AGV行驶的路线,而不是监视AGV本身或避开拥挤的区域。自2000年初以来,在半导体制造厂,成千上万辆AGV沿着天花板轨道运输晶圆(即高架吊运)。在这些系统中,已经提出了基于神经网络的方法[47],[48]用于轨道条件诊断。它们监视上下轨电缆和电缆支架的位置。另一种方法使用决策树[49]来检测工厂中车辆的非计划停止或减速。

B. 智能能源管理

稳定供应和高效消耗能源对应对快速气候变化和资源短缺至关重要。因此,能源供应和消耗过程中的异常检测变得越来越重要。在供应方面,如果发生停电,将给消费者带来重大损失。相反,如果能源被不必要地消耗,将支付更高的价格并浪费能源。

图3. 智能能源管理系统从能源供应和消耗过程中收集数据。它提供实时监控以警示可能的故障(如泄漏、过载、网络入侵),帮助利益相关者分析数据,并有时提供远程控制。

如图3所示,智能能源管理系统收集并报告大量数据。这使所有相关人员有机会更好地理解和预测消费模式。自动收集设备反过来减少了手动抄表的要求[11]。此外,实时早期检测可能的故障使能源供应商能够提前处理问题,而不是依赖于反应性的努力。智能能源系统在电力部门的成功使得智能电网范式在水和天然气领域得以充分体现[50]。

1) 电力

已经提出了几种应用程序[51]-[53],用于检测发电厂生成的多变量时间序列数据中的异常。它们利用各种深度神经网络模型(如卷积LSTM、CNN和注意力层),取得了显著的结果。除了异常识别,收集的指标数据用于诊断问题的严重程度。

还提出了各种方法来检测消费侧损失,如异常消费模式、不必要浪费和盗窃[54]-[56]。诊断结果通过能源管理系统报告给消费者,以预防问题并制定未来策略。

2) 处理水

水处理和分配系统决定了饮用水和工业用水供应的质量。水处理设施主要存在于安全区域,但分配网络由遍布大面积的无数管道组成。由于分配网络广泛且常常容易受到攻击,物理攻击的风险总是存在。更糟糕的是,网络入侵构成了更大的威胁,相关的损害具有重大影响。在这方面,已经发布了几个真实世界数据集(如SWaT和WADI)[57],[58],以便研究人员可以在不需要亲自收集大量数据的情况下使用它们。

李等人[59]采用生成对抗网络(GAN)来检测多变量时间序列数据中的异常,并在上述数据集上验证了他们的方法。最近,一种使用时间分层单类网络(THOC)[60]的方法,这是一个由几层扩张RNN和多尺度支持向量数据描述(MVDD)组成的结构,已经显示出比其他最先进的网络更优越的性能。

还存在几种检测消费模式异常的工具。例如,Vercruyssen等人[61]利用基于约束的聚类和标签传播的主动学习策略来监控水消费。

C. 云计算系统

在云计算中,客户数据由服务提供商存储和管理在远程数据中心中 [65]。这些提供商需要实时为用户分配适当的资源,同时安全地存储敏感信息。随着云服务变得越来越受欢迎,入侵检测变得至关重要。因此,提供商现在利用日志和时间序列数据来监视服务器和网络的状态,以便检测与正常模式的偏差。每天通过这种监控系统连续检测到数十万个可疑事件。因此,在云系统上进行时间序列异常检测,随后诊断当前状态并追踪根本原因对于保持高服务可用性至关重要 [66],[67]。

1) 服务器机器

在服务器上,提供了多变量时间序列指标,例如处理器负载、网络使用情况和内存状态。苏等人 [68] 提出了一种名为 OmniAnomaly 的监控服务器机器的变分 A E \mathrm{AE} AE (VAE) 与门控循环单元 (GRU) 结合的方法。他们在 qnet 中将 GRU 的隐藏状态 e t \mathbf{e}_{\mathbf{t}} et​ 和上一个时间步的随机变量 z t − 1 \mathbf{z}_{\mathbf{t}-\mathbf{1}} zt−1​ 结合起来,作为编码器。然后将得到的值馈送到密集层以对当前的随机变量 z t \mathbf{z}_{\mathbf{t}} zt​ 进行采样。这个变量通过平面正则化流,以便能够很好地学习复杂的后验分布,并且通过 pnet 中的线性高斯状态空间模型与 z t − 1 \mathbf{z}_{\mathbf{t}-\mathbf{1}} zt−1​ 相连,后者充当解码器,以获得时间依赖性。之后,通过重建过程从估计的分布中对值 x t ′ \mathbf{x}_{\mathbf{t}}^{\prime} xt′​ 进行采样。为了类似的目的,已经提出了基于分层时间记忆 (HTM) 和贝叶斯网络的方法 [69]。同时,基于 CNN 的方法 [70],[71] 已经在来自全球云企业的几个数据集上被证实是有效的。

2) 网络和框架

此外,随着网络流量的呈指数增长,不断监视网络系统和分布式处理框架变得愈发必要。Audibert 等人 [72] 提出了 AE,其中训练了一个编码器和两个解码器对抗性地,以识别网络异常。此外,赵等人 [73] 最近提出了一种基于图注意力网络的方法,用于检测大数据处理框架中的异常。他们通过注意力层明确地对传感器之间的相关性进行建模,用 GRU 捕获时间依赖性,并通过联合应用预测和重建结果来提高性能。

3) 网络安全

除了普通的物理威胁,恶意网络攻击已经成为云系统可靠性和安全性的关键问题。因此,已经提出了许多方法来保护客户的敏感信息 [74]-[76]。

D. 结构健康监测

包括建筑物、桥梁、防洪堤、管道在内的土木基础设施由大型复杂结构组成,在恶劣环境中承载大量荷载。这些结构被设计为在预期的荷载范围内安全运行,但由于反复暴露于运行中,可能会发生腐蚀和损坏。如果损坏没有及时被检测到,结构就会变得更容易发生故障或导致安全事故。结构健康监测 (SHM) 评估它们的荷载和响应,并识别异常行为以维护这些结构 [77]。由于由于传感器不完善和数据传输质量差引起的 SHM 数据中的一些异常必须被消除,因为它们可能导致误报并影响结构性能评估。然而,消除它们需要专业知识,非常耗时。

在这方面,最近提出了几种方法。鲍等人 [16] 模仿人类的识别过程,将数据转换为图像文件,并将它们馈送到堆叠自动编码器 (SAE) 进行异常分类。他们逐层训练网络的每一层,这种训练方案被称为贪婪逐层训练。完成这个阶段后,他们微调所有层以改进结果。他们使用来自中国一座长跨度斜拉桥的真实数据验证了所提出框架的性能。

类似地,唐等人 [17] 利用可视化数据的可解释性,将原始时间序列数据转换为图像,并通过窗口化数据而不重叠地将连续数据分割。之后,他们将预处理后的数据馈送到基于 CNN 的分类模型中。每个段被分解为时域和频域,通过快速傅里叶变换 (FFT) 并堆叠时域响应图像和频域响应图像作为图像融合。

IV. 传统方法的挑战

即使在深度学习变得流行之前,人们已经开发了各种数学和统计模型来分析时间序列数据,并广泛应用于各个领域。在这里,我们介绍一些代表性方法,并描述尚未解决的挑战。

A. 传统方法 1) 时间/频率域分析

时间序列数据可以通过在测量阈值的宽度和高度之间进行时间域分析来分析。另一种直观但高效的方法是应用傅立叶分析来检查具有频率域表示的数据。根据傅立叶定理,任何周期函数,无论多么复杂,都可以表示为正弦或余弦的组合。傅立叶分析是从这些分量中恢复函数的过程。离散傅立叶变换 (DFT) 是其中一种流行的方法,其形式如下:

X k = ∑ t = 0 T − 1 x t e − i 2 π k t / T , k = 0 , … , T − 1 \begin{equation*} X_{k}=\sum_{t=0}^{T-1} x_{t} e^{-i 2 \pi k t / T}, \quad k=0, \ldots, T-1 \tag{3} \end{equation*} Xk​=t=0∑T−1​xt​e−i2πkt/T,k=0,…,T−1​(3)​

其中 X k X_{k} Xk​ 是从给定输入数据 x t x_{t} xt​ 转换得到的第 k k k 个频率值。一旦将原始时间序列转换为频谱,如 (3) 所示,并按系数排序,就可以通过反转最高频率来获取季节周期。在实践中,快速傅里叶变换 (FFT) 是 DFT 的一种加速版本,是首选的选择。

2) 统计模型

为了对时间序列数据进行数学分析,我们可以通过计算统计量,如均值、方差、中位数、分位数、峰度、偏度等,生成统计模型。通过生成的模型,可以检查新添加的时间序列数据,以确定它们是否属于正常边界 [78]。

3) 基于距离的模型

许多算法使用两个时间序列之间的显式距离来量化两者之间的相似性。根据获得的相似性度量,如果新获得的序列与正常序列的距离超出预期范围,则将其标记为异常。距离的最常见度量是欧氏距离,如 (4) 所示,它计算为连接两点的线段的长度。

D ( x , y ) = ∑ t = 1 T ( x i − y i ) 2 \begin{equation*} D(\mathbf{x}, \mathbf{y})=\sqrt{\sum_{t=1}^{T}\left(x_{i}-y_{i}\right)^{2}} \tag{4} \end{equation*} D(x,y)=t=1∑T​(xi​−yi​)2 ​​(4)​

动态时间规整 (DTW) 是一种流行的距离度量,允许两个局部不同步的序列之间的非线性对齐 [79]。假设我们有两个长度分别为 M \mathrm{M} M 和 N \mathrm{N} N 的序列 X \mathrm{X} X 和 Y \mathrm{Y} Y。两个序列之间的 DTW 如下计算:

使用动态规划算法创建成本矩阵 C C C,如 (5) 所示。

C ( i , j ) = D ( i , j ) + min ⁡ { C ( i − 1 , j − 1 ) C ( i − 1 , j ) C ( i , j − 1 ) , (5) C(i, j)=D(i, j)+\min \left\{\begin{array}{l} C(i-1, j-1) \tag{5}\\ C(i-1, j) \\ C(i, j-1), \end{array}\right. C(i,j)=D(i,j)+min⎩ ⎨ ⎧​C(i−1,j−1)C(i−1,j)C(i,j−1),​(5)

其中 i i i 是 X \mathrm{X} X 的数据点, j j j 是 Y \mathrm{Y} Y 的数据点, D ( i , j ) D(i, j) D(i,j) 是 i i i 和 j j j 之间的距离, C ( i , j ) C(i, j) C(i,j) 是两个序列的最小弯曲距离。

从 C M , N C_{M, N} CM,N​ 回溯到 C 1 , 1 C_{1,1} C1,1​,以获取最佳弯曲路径 W ( w 1 , w 2 , … , w L ) W\left(w_{1}, w_{2}, \ldots, w_{L}\right) W(w1​,w2​,…,wL​),选择具有最低累积距离的先前点。最后,使用 W W W 计算最终距离,如 (6) 所示。

Dist ⁡ ( W ) = ∑ k = 1 k = L w k \begin{equation*} \operatorname{Dist}(W)=\sum_{k=1}^{k=L} w_{k} \tag{6} \end{equation*} Dist(W)=k=1∑k=L​wk​​(6)​

4) 预测模型

预测模型用于根据过去和当前状态预测未来状态。我们可以根据预测值与真实值之间的差异的严重程度推断异常。例如,自回归积分移动平均 (ARIMA) [80] 经常被用来预测时间序列。ARIMA 模型由三部分组成:

自回归 (AR) 模型由滞后值的加权和组成,因此我们可以将时间步 t t t 的随机变量 X X X 的值建模为 (7)。

AR ⁡ ( p ) : X t = ϕ 1 X t − 1 + ϕ 2 X t − 2 + … + ϕ p X t − p + ϵ t \begin{equation*} \operatorname{AR}(p): X_{t}=\phi_{1} X_{t-1}+\phi_{2} X_{t-2}+\ldots+\phi_{p} X_{t-p}+\epsilon_{t} \tag{7} \end{equation*} AR(p):Xt​=ϕ1​Xt−1​+ϕ2​Xt−2​+…+ϕp​Xt−p​+ϵt​​(7)​

其中 { ϕ i } i = 1 p \left\{\phi_{i}\right\}_{i=1}^{p} {ϕi​}i=1p​ 是自相关系数, ϵ \epsilon ϵ 是白噪声, p p p 是 AR 模型的阶数。

移动平均 (MA) 模型计算滞后预测误差的加权和,并表示为 (8)。

MA ⁡ ( q ) : X t = ϵ t − θ 1 ϵ t − 1 − θ 2 ϵ t − 2 − … − θ q ϵ t − q \operatorname{MA}(q): X_{t}=\epsilon_{t}-\theta_{1} \epsilon_{t-1}-\theta_{2} \epsilon_{t-2}-\ldots-\theta_{q} \epsilon_{t-q} MA(q):Xt​=ϵt​−θ1​ϵt−1​−θ2​ϵt−2​−…−θq​ϵt−q​,

其中 { θ i } i = 1 1 \left\{\theta_{i}\right\}_{i=1}^{1} {θi​}i=11​ 是移动平均系数, ϵ t \epsilon_{t} ϵt​ 表示时间步 t t t 的模型预测误差, q q q 是 MA 模型的阶数。

差分 (I) 表示使用差分来表示时间序列,因此在 d = 1 d=1 d=1 时,时间步 t t t 的数据点为 X ^ t = X t − X t − 1 \hat{X}_{t}=X_{t}-X_{t-1} X^t​=Xt​−Xt−1​,其中 d d d 表示差分的阶数。

因此,具有阶参数的 ARIMA 模型如下所示:

− θ 1 ϵ t − 1 − θ 2 ϵ t − 2 − … − θ q ϵ t − q ⏟ MA ⁡ ( q ) , \begin{aligned} & \underbrace{-\theta_{1} \epsilon_{t-1}-\theta_{2} \epsilon_{t-2}-\ldots-\theta_{q} \epsilon_{t-q}}_{\operatorname{MA}(q)}, \end{aligned} ​MA(q) −θ1​ϵt−1​−θ2​ϵt−2​−…−θq​ϵt−q​​​,​

其中 μ \mu μ 是一个常数,当 d = 1 d=1 d=1 时, y t = Y t − Y t − 1 y_{t}=Y_{t}-Y_{t-1} yt​=Yt​−Yt−1​。如式 (9) 中所述,每个特定时间步的数值受到先前观测值和预测误差的影响,因此 ARIMA 模型了时间序列的时间性。此外,差分过程使时间序列变得平稳,使得 ARIMA 对于非平稳时间序列非常有效。如果时间序列数据具有季节性或周期性变化,我们可以使用季节性 ARIMA(SARIMA)[81] 模型。在这种情况下,我们引入额外的参数: P , D P, D P,D 和 Q Q Q,用于处理季节性。这些参数的使用方式与 p , d p, d p,d 和 q q q 相同。

基本上,ARIMA 不能对多变量数据进行建模。取而代之的是,具有额外解释变量的自回归积分移动平均外生(ARIMAX)[82] 模型或使用向量来容纳多变量术语的向量自回归(VAR)[83] 模型用于替代 ARIMA。

5) 聚类模型

在无监督设置中,基于聚类的方法是将数据分组和检测异常的简单而有效的选择。一旦将时间序列数据映射到多维空间中,聚类算法会根据它们的相似性将它们分组到每个群集的中心附近。如果新接收的数据样本远离预定义的群集或属于任何群集的概率很低,则模型会将其分类为异常。

图 4. MapReduce 模型的流程图。

流行的数据聚类方法包括 k k k-means 算法[84]、单类支持向量机(OCSVM)[85]、高斯混合模型(GMM)[86] 和带有噪声的基于密度的空间聚类(DBSCAN)[87]。上述方法在数据具有混合属性(例如数值和分类值)时可能不足以应用。为解决这个问题,提出了 k k k-prototypes 算法[88],这是 k k k-means 和 k k k-modes 算法的简单组合。 k k k-prototypes 算法衡量了由属性 A 1 r , A 2 r , … , A p r , A p + 1 c , … , A m c A_{1}^{r}, A_{2}^{r}, \ldots, A_{p}^{r}, A_{p+1}^{c}, \ldots, A_{m}^{c} A1r​,A2r​,…,Apr​,Ap+1c​,…,Amc​ 描述的两个混合类型对象 X X X 和 Y Y Y 之间的不相似度,计算公式如下 [88, 公式 (10)]。

d 2 ( X , Y ) = ∑ j = 1 p ( x j − y j ) 2 ⏟ 数值属性  + γ ∑ j = p + 1 m δ ( x j , y j ) ⏟ 分类属性  , \begin{equation*} d_{2}(X, Y)=\underbrace{\sum_{j=1}^{p}\left(x_{j}-y_{j}\right)^{2}}_{\text {数值属性 }}+\underbrace{\gamma \sum_{j=p+1}^{m} \delta\left(x_{j}, y_{j}\right)}_{\text {分类属性 }}, \tag{10} \end{equation*} d2​(X,Y)=数值属性  j=1∑p​(xj​−yj​)2​​+分类属性  γj=p+1∑m​δ(xj​,yj​)​​,​(10)​

其中第一项是数值属性之间的欧氏距离,第二项是分类属性之间的简单匹配不相似度。

上述聚类方法仍然是代表性的基准,但已经有些过时。最近,数据变得更加大规模,因此需要能够处理顺序和并行计算环境中大量数据的聚类算法。为了有效处理大量数据,我们可以考虑两种方法;一种是通过减少数据量来增加计算速度,另一种是将数据分割成小块并并行处理它们。

网络结构聚类算法(SCAN)[89] 是一种成功的基于密度的图聚类算法,图是一种基本的数据结构。一些工作[90]-[92] 使用节点/边修剪技术来减少结构相似性比较的数量,从而提高 SCAN 的效率,而不会牺牲对具有数百万甚至数十亿边的图的聚类质量。这些方法跳过邻居之间共享的顶点或在更新群集之前移除异常值。

图 5. 最近基于深度学习的时间序列异常检测方法的分类法。HTM,分层时间记忆;RNN,循环神经网络;TCN,时间卷积网络;GNN,图神经网络;GAN,生成对抗网络;VAE,变分自编码器。大多数模型不仅使用一种结构或方法,而是结合几种。我们根据每个模型的主要结构特征对模型进行分类,并用彩色圆圈表示异常分数的类型。 是一个例外,因为 Transformer 和 GNN 的角色和影响是明确分开的。*

类似地,Li [93] 改进了 DBSCAN,这是一种用于数值数据的基于密度的聚类算法,以防止冗余计算,利用了利用三角不等式的快速最近邻查询。

第二种方法是将数据分布在多台机器或处理器之间,以加速处理大量数据。MapReduce [94] 是用于数据密集型应用的最常用的并行处理模型之一。如 [95, 图 4] 所示,该模型由两个主要函数组成:Map 和 Reduce 函数。以 k k k-means 为例,MapReduce 任务遵循以下过程:

数据集被分割成多个块,并以 的形式提供给映射器。Map 函数计算每个样本与中心的距离,然后将样本分配给最近的群集: 。Reduce 函数计算具有相同中心的样本的部分总和,并以 的形式绑定它们。同步阶段通过将总和除以 #samples 顺序计算新中心并更新中心: 。重复直至收敛。

在过去几年中,引入了使用 MapReduce 进行 k k k-means 聚类的各种变体[96]-[98]。与此同时,可扩展的 k k k-means++ [99] 在初始化阶段使用 MapReduce,而不是在后初始化阶段。

B. 挑战性问题

尽管传统方法在时间序列数据的异常检测方面取得了很大进展,但由于以下挑战,仍有改进空间。

1) 缺乏标签

大多数工业环境中的故障模式非常罕见,因此它们不足以作为标记训练数据。故障模式的稀缺性使得收集足够的标记训练数据需要耗费大量时间和资源。即使获得了标记数据,正常和异常数据之间的类别不平衡也会妨碍模型训练。

2) 数据的复杂性

分析单变量时间序列数据在需要较少计算的应用中仍然是一个关键话题,比如边缘计算。然而,随着更多工业应用的自动化和控制系统复杂性的增加,单独监测单个单变量时间序列数据变得不切实际。随着维度的增加,传统方法通常由于维度灾难而经历性能下降。此外,单变量时间序列分析无法推断变量之间的相关性,这些相关性也可以用来指示异常。

V. 用于异常检测的深度学习

在本文中,我们专注于最近用于克服第 IV 节中提到的挑战性问题的异常检测模型。因此,我们的调查基于以下假设。

半监督/无监督学习:对于半监督学习,所有数据被视为正常类别,而对于无监督学习,不考虑正常和异常类别之间的明确区分。这两种策略都学习数据结构以克服标记数据不足的问题。

表 2. 变量之间的相互关系。

CategoryMethodPublicationDim. reductionIndependent univariateShahriar et al. [100], ODCA [101], R-PCA [102]Reduced multivariateMAD-GAN [59], DAGMM [103], SPREAD [104]2D matrixPairwise inner-productMSCRED [51], RSM-GAN [74], Zhou et al. [105]Pairwise phaseChoi et al. [53]GraphGraph neural networkMTAD-GAT [73], AddGraph [106], MTAD-TF [107], GDN [108],GTA [109]OthersTHOC [60], OmniAnomaly [68], LSTM-NDT [110], LGMAD [111], 多变量数据:模型应能够提取和利用纠缠在多变量时间序列数据中的信息。深度学习:探索深度学习方法以处理复杂和大规模数据量。

最近发表的时间序列数据异常检测方法的整体分类如图 5 所示。我们根据它们的架构选择对方法进行分类,并用彩色圆圈表示它们如何从给定数据计算异常分数。两个或更多分数可以联合考虑。

在本节中,我们从三个角度分析这些方法:它们如何定义变量之间的相互关系;它们如何建模时间上下文信息;以及它们如何定义异常分数或阈值。

A. 变量之间的相互关系

大多数用于多变量时间序列数据的深度学习模型在每个时间步建立多个变量之间的关系。这种时空信息不仅考虑了时间上下文,还考虑了变量之间的相关性。表 2 显示了最近作品中如何建立多变量变量的相关性。

1) 维度缩减 2) 2D矩阵

2D矩阵直接捕捉了变量之间的形态相似性和相对尺度。此外,它联合考虑了多变量,使其在特定时间点的动荡中更加稳健。两种代表性的 2 D 2D 2D矩阵定义, m t ∈ R n × n m^{t} \in \mathbb{R}^{n \times n} mt∈Rn×n,如下所示:

图6. 图注意力层的机制。红色圆圈是最终输出。

m i j t = 1 w ∑ δ = 0 w x i t − δ x j t − δ m i j t = 1 w ∑ δ = 0 w ∥ x i t − δ − x j t − δ ∥ \begin{align*} & m_{i j}^{t}=\frac{1}{w} \sum_{\delta=0}^{w} x_{i}^{t-\delta} x_{j}^{t-\delta} \tag{11}\\ & m_{i j}^{t}=\frac{1}{w} \sum_{\delta=0}^{w}\left\|x_{i}^{t-\delta}-x_{j}^{t-\delta}\right\| \tag{12} \end{align*} ​mijt​=w1​δ=0∑w​xit−δ​xjt−δ​mijt​=w1​δ=0∑w​ ​xit−δ​−xjt−δ​ ​​(11)(12)​

其中 X = { x 1 , x 2 , ⋯   , x T } X=\left\{\mathbf{x}^{1}, \mathbf{x}^{2}, \cdots, \mathbf{x}^{T}\right\} X={x1,x2,⋯,xT}是具有长度为 T T T的 n n n个变量的多变量时间序列数据,即 X ∈ R n × T X \in \mathbb{R}^{n \times T} X∈Rn×T, x t = ( x 1 t , x 2 t , ⋯   , x n t ) \mathbf{x}^{t}=\left(x_{1}^{t}, x_{2}^{t}, \cdots, x_{n}^{t}\right) xt=(x1t​,x2t​,⋯,xnt​)是一个 n n n维向量。一方面,如果整个变量的相位突然升高或下降,(11)可以检测到异常,但(12)则不能。另一方面,当整体相位因概念漂移或变化点而改变时,(12)将认为这是正常的,而(11)则会发出不必要的警报。

3) 图

图可以定义明确的拓扑结构并学习个体变量之间的因果关系。最近,一些将注意力机制应用于GNN的方法[73],[108],[109]已被提出以提高识别根本原因的性能。有向图被定义为 G = ( V , E ) \mathcal{G}=(\mathcal{V}, \mathcal{E}) G=(V,E),其中 V = { 1 , 2 , … , N } \mathcal{V}=\{1,2, \ldots, N\} V={1,2,…,N}是 N N N个节点的集合, E ⊆ V × V \mathcal{E} \subseteq \mathcal{V} \times \mathcal{V} E⊆V×V是边的集合。这里, e i j e_{i j} eij​表示从节点 i i i到 j j j的边。通常,给定一个图,注意力层为每个节点输出表示如下:

y i = σ ( ∑ j = 1 L α i j v j ) \begin{equation*} y_{i}=\sigma\left(\sum_{j=1}^{L} \alpha_{i j} v_{j}\right) \tag{13} \end{equation*} yi​=σ(j=1∑L​αij​vj​)​(13)​

其中 y i y_{i} yi​表示节点 i i i的特征表示。 σ \sigma σ对应于sigmoid激活函数, α i j \alpha_{i j} αij​表示注意力分数,衡量节点 j j j对节点 i i i的影响,其中 j j j是 i i i的 L L L个相邻节点之一, v j v_{j} vj​表示节点 j j j的特征向量。我们可以通过以下方程计算注意力分数 α i j \alpha_{i j} αij​:

e i j = LeakyReLU ⁡ ( w ⊤ ⋅ ( v i ⊕ v j ) ) α i j = exp ⁡ e i j ∑ l = 1 L exp ⁡ e i l \begin{align*} e_{i j} & =\operatorname{LeakyReLU}\left(w^{\top} \cdot\left(v_{i} \oplus v_{j}\right)\right) \tag{14}\\ \alpha_{i j} & =\frac{\exp e_{i j}}{\sum_{l=1}^{L} \exp e_{i} l} \tag{15} \end{align*} eij​αij​​=LeakyReLU(w⊤⋅(vi​⊕vj​))=∑l=1L​expei​lexpeij​​​(14)(15)​

其中 ⊕ \oplus ⊕连接两个节点特征。 w w w表示一组可学习参数,LeakyReLU是一个对负值具有温和斜率的非线性激活函数。图6展示了图注意力背后的直觉。

表3. 建模时间上下文。

类别方法发表论文RNN长短期记忆网络 (LSTM)LSTM-NDT [110], LGMAD [111], LSTM-AE [29], MAD-GAN [59],OmniAnomaly [68], SPREAD [104], LSTM-VAE [112]门控循环单元 (GRU)THOC [60], GGM-VAE [113], S-RNNs [114]CNN卷积神经网络 (CNN)Choi等人 [53], MU-Net [62], BeatGAN [115]时序卷积网络 (TCN)HS-TCN [116], TCN-GMM [117, TCN-ms [118]混合卷积LSTM (ConvLSTM)MSCRED [51], RSM-GAN [74]注意力自注意力或TransformerMTAD-GAT [73], SAnD [119], MTSM [120], GTA [109]其他分层时间记忆 (HTM)RADM [69], Wu等人 [121] 4) 其他

一些使用原始数据的方法[60],[68],[72],[110]可以直接识别数据中的异常。同时,Ding等人[111]采用多变量高斯分布来定义数据属性之间的相关性。

B. 建模时间上下文

序列的历史包含了关于其行为的大量知识,并可以提示未来的变化。因此,仅估计分布在检测上下文和集体异常方面存在局限性。在时间序列应用中,建模正常状态时应考虑时间上下文。表3显示了在建模时间上下文方面的模型分类。

1) RNN

有几种基于深度学习的方法用于建模时间上下文。其中最常见的基准之一是使用RNN来识别模式序列并预测预期值。因此,我们可以通过识别预测值与实际信号之间的差异来确定异常。RNN已经扩展为其他变体,如LSTM [122]和GRU [123]。

LSTM和GRU解决了梯度消失或梯度爆炸问题,即随着网络深度增加,梯度变得太小或太大。在LSTM和GRU单元中有多个门,它们可以通过确定要在每个时间步保留或忘记的先前状态数量来学习长期依赖关系。同时,如[124, 图7]所示,扩张RNN被提出以提取多尺度特征,同时通过隐藏状态之间的跳跃连接建模长期依赖关系。Shen等人[60]采用了三层扩张RNN,并从每一层提取特征以共同考虑长期和短期依赖关系。

基于RNN的方法通常用于两种异常检测方式。一种是预测未来值并将其与预定义的阈值或观察值进行比较。这种策略在[60],[110],[111],[114]中应用。另一种是构建AE或VAE来恢复观察值并评估重构值与观察值之间的差异。这种策略在[29],[59],[68],[104],[112],[113]中使用。

2) CNN

尽管RNN是建模时间序列数据的主要选择,但在一些应用中,CNN有时表现更好,如处理短期数据的几种应用[53],[62],[115]。通过堆叠卷积层,每一层从像素到对象学习更高级别的特征。此外,池化层引入了非线性到CNN,使其能够捕捉序列中的复杂特征。

CNN模型并非明确捕捉时间上下文,而是学习分段时间序列中的模式。因此,其缺点之一是难以理解长时间内出现的行为。作为替代,提出了时序卷积网络(TCN),这是CNN的一个变体,已在[125]中提出。TCN有三个独特的特性。首先,模型中的卷积是因果的,这意味着它们确保未来不会泄漏到过去的信息。其次,它可以处理任意长度的序列,就像RNN一样。第三,它可以通过深度网络和扩张卷积远距离地查看过去,以预测未来。

(a)

(b)

©

图8. 每种异常标准的示例:(a) 重构误差;(b) 预测误差;© 差异。

3) 混合

在使用滑动窗口监视时间序列数据时,可检测的异常模式会根据窗口大小而变化。例如,假设我们有30个传感器数据的三个不同窗口,并为每个窗口定义一个协方差矩阵。然后,数据的形状在时间 t t t变为 ( 30 , 30 , 3 ) (30,30,3) (30,30,3),类似于图像。如果将从 t − 4 t-4 t−4到 t t t的协方差矩阵堆叠到时间轴上,则数据的形状变为 ( 5 , 30 , 30 , 3 ) (5,30,30,3) (5,30,30,3),类似于视频,此时应同时考虑空间信息和时间依赖关系。

Shi等人[126]首次提出了ConvLSTM模型来解决时空序列预测问题。他们用卷积运算符替换了LSTM单元中的点积,因此,单元中的所有门和状态都被重塑为可以捕获时空信息的3D张量。此外,该模型使用更少的参数学习状态转换。在[51],[74]中,整体架构基于AE和GAN。在它们的编码器中,ConvLSTMs从先前时间步的特征图中捕获时空上下文。此外,一个时间注意力机制[127]调整先前特征图对更新当前特征图的贡献。

4) 注意力

注意力机制最初被用作模型的辅助工具。然而,基于注意力层的新方法,如Transformer [128]和双向编码器表示来自Transformer的(BERT) [129],已成为自然语言处理(NLP)中的主流。通过关注对输出贡献更多的输入权重,基于注意力的模型可以捕捉相对重要的每个数据点的长程依赖关系。在NLP取得的显著成就已经引领到时间序列异常检测领域。在这方面,最近提出了几项使用Transformer的作品[73],[109],[120]。

5) 其他 C. 异常标准

上述讨论的模型通过最小化定义的目标(损失)函数以无监督或半监督的方式学习给定数据的表示。目标根据模型架构而异,通常与异常决策标准相关。

一旦模型训练完成,它们就会被应用于系统和机械状态的诊断。一般来说,诊断结果以数字形式表达,以帮助理解给定状态。我们将这个数字指标称为异常分数。分数越高,状态越可能异常。具体来说,当分数超过一定阈值时,相应的数据点被确定为异常。过去,领域专家根据经验决定这个阈值,但现在根据模型训练结果来决定。一些模型[68],[69],[110]-[112],[120],[121]采用连续调整以适应数据随时间变化的自适应阈值。推导异常分数的方案可以分为三种类型,如图8所示:重构误差,预测误差和不相似度。

1) 重构误差

一般来说,自编码器(AE)、变分自编码器(VAE)、生成对抗网络(GAN)和变换器使用重构误差作为异常分数。基于自编码器的模型包括[29],[51],[62],[72],[104],[114]通过从中提取特征来重构输入数据。基于变分自编码器的模型,如[68],[112],[113],估计数据分布并从中生成与输入数据非常相似的样本。基于生成对抗网络的模型明确地使用生成器生成尽可能与输入数据相似的样本,如[53],[59],[74],[115]。最近,堆叠编码器-解码器结构的变换器,仅由注意力机制组成,被应用于几项工作[73],[109],[119],[120]。特别地,赵等人[73]在他们的模型中同时考虑了预测和重构误差。尽管这些模型使用不同的训练方案和目标函数,它们计算异常分数的方式是类似的。它们重构或生成类似于输入数据的数据,并测量输入和生成数据之间的残差。

2) 预测误差

从预测模型中导出异常分数有两种方法。一种是基于数据点被分类为正常的概率应用二进制标签,如[116],[119]中提出的。预测误差指示预期标签是否与地面实况匹配。另一种方法是预测下一个时间步的期望值,如[69],[110],[111],[121]中提出的。在这种情况下,预测误差是期望值与观察值之间的残差。第二种方法比第一种更实际,因为现实世界中标签不足。

3) 不相似度

基于不相似度的方法衡量模型产生的值与累积数据的分布或簇之间的距离。有各种方法来衡量相似度,例如欧氏距离,闵可夫斯基距离,余弦相似度和马氏距离。

在时间分层单类(THOC)网络[60]和TCN-高斯混合模型(GMM)[117]中,时间序列特征分别通过扩张RNN和TCN提取。然后,它们使用类似的深度支持向量数据描述进行聚类,或者使用GMM估计它们的分布。THOC使用余弦相似度测量特征和簇之间的相似度,而TCN-GMM使用马氏距离。从模型中获得的相似度减去一得到异常分数。相反,多阶段TCN[118]使用多变量高斯分布来估计预测误差的分布,而不是训练数据的特征。然后,通过测量当前预测误差与预先估计的误差分布之间的马氏距离来确定异常分数。

VI. 比较评价

在本节中,我们提供了各种方法在实际时间序列异常检测数据集上的实验性能。

表4. 实验中使用的数据集摘要。

数据集维度训练样本数测试样本数异常率(%)SWaT51496,800449,91911.98WADI112 1 , 048 , 571 1,048,571 1,048,571172,8015.99MSL5558,31773,72910.72 A. 实验设置

为了比较所提出方法的性能,使用以下公共时间序列数据集:

安全水处理(SWaT)[57]:从水处理测试床收集的多变量时间序列数据,历时11天,是一个小规模的网络物理系统。最后4天的数据包含36次攻击。这些攻击的目标和持续时间各不相同。要获取更多信息或请求数据集,请参考SWaT网站。 4 { }^{4} 4水配送(WADI)[58]:来自水配送管道的多变量时间序列数据,历时16天。每个序列包括各种网络流量、传感器和执行器测量。在16天中,有14天的数据处于正常状态,2天处于攻击情景下。请参考WADI网站 5 { }^{5} 5以获取更多详细信息。火星科学实验室漫游车(MSL)[110]:从火星科学实验室漫游车记录的多变量时间序列数据。训练和测试测试床是分开的,测试测试床中的异常都有标签。数据可在公共存储中获取。 6 { }^{6} 6

一些先前的研究作品已经报告了在表4中描述的数据集上异常检测方法的性能。如果有可用的报告性能,则使用这些报告性能,否则从我们的实验中获取其他性能。SWaT [57]的检测结果可在[60],[72]和[109]中找到;WADI [58]的在[72],[109]和[108]中;MSL [110]的在[72],[108]和[68]中。

对于性能评估,我们采用三个标准评估指标:精确度、召回率和F1分数。它们的形式如下:

 精确度  = T P T P + F P ,  召回率  = T P T P + F N ,  F1分数  = 2 ⋅  精确度  ⋅  召回率   精确度  +  召回率  , \begin{align*} \text { 精确度 } & =\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FP}}, \tag{16}\\ \text { 召回率 } & =\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}, \tag{17}\\ \text { F1分数 } & =2 \cdot \frac{\text { 精确度 } \cdot \text { 召回率 }}{\text { 精确度 }+ \text { 召回率 }}, \tag{18} \end{align*}  精确度  召回率  F1分数 ​=TP+FPTP​,=TP+FNTP​,=2⋅ 精确度 + 召回率  精确度 ⋅ 召回率 ​,​(16)(17)(18)​

表5. 每种方法使用的超参数值。标有 † { }^{\dagger} †的方法表示它们的论文还提供了在相同环境下测量的其他一些模型的性能。MSCRED [51] 在原始工作中同时使用三种大小的滑动窗口,我们在实验中也反映了这一点。

数据集方法下采样窗口大小Epoch点调整学习率SWaTUSAD [72]0.21270 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3GTA [109]0.16050 ✓ \checkmark ✓ 1 e − 4 1 e-4 1e−4GDN [108]0.1550 ✓ \checkmark ✓ 1 e − 3 1 \mathrm{e}-3 1e−3THOC [60] † { }^{\dagger} †, MSCRED [51], DAGMM [103], LSTM-VAE [112], OmniAnomaly [68]0.1100100 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3WADIMSCRED [51]1 10 , 30 , 60 10,30,60 10,30,6050 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3THOC [60]1100100 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3GTA [109]0.16050 ✓ \checkmark ✓ 1 e − 4 1 \mathrm{e}-4 1e−4GDN [108]0.1550 ✓ \checkmark ✓ 1 e − 3 1 \mathrm{e}-3 1e−3MAD-GAN [59]0.1550 x x x 1 e − 3 1 e-3 1e−3USAD [72] † { }^{\dagger} †, DAGMM [103], LSTM-VAE [112], OmniAnomaly [68]0.21070 ✓ \checkmark ✓ 1 e − 3 1 \mathrm{e}-3 1e−3MSLMSCRED [51]1 10 , 30 , 60 10,30,60 10,30,6050 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3THOC [60]0.1100100 ✓ \checkmark ✓ 1 e − 3 1 e-3 1e−3USAD [72]0.25250 ✓ \checkmark ✓ 1 e − 3 1 \mathrm{e}-3 1e−3GDN [108]0.1550 ✓ \checkmark ✓ 1 e − 3 1 \mathrm{e}-3 1e−3GTA [109] † { }^{\dagger} †, DAGMM [103], MAD-GAN [59], LSTM-VAE [112], OmniAnomaly [68]16050 ✓ \checkmark ✓ 1 e − 4 1 \mathrm{e}-4 1e−4

*表6. 以精确度(%)、召回率(%)和F1分数衡量的三个数据集上的异常检测准确性。在WADI数据集上未应用点调整,相对而言召回率和F1分数较差。

方法SWaTWADIMSL精确度召回率F1分数精确度召回率F1分数精确度召回率F1分数USAD98.7074.0284.6064.5132.2042.9688.1097.86 92.72 \mathbf{9 2 . 7 2} 92.72DAGMM90.6080.7285.3822.2819.7620.9454.12 99.34 \mathbf{9 9 . 3 4} 99.3470.07LSTM-VAE98.3977.0186.4046.3232.2037.9952.5795.4667.80OmniAnomaly 99.01 \mathbf{9 9 . 0 1} 99.0177.0686.6726.52 97.99 \mathbf{9 7 . 9 9} 97.9941.74 88.67 ‾ \underline{88.67} 88.67​91.1789.90MSCRED98.4377.6986.8430.2640.3534.5868.8388.5477.45MAD-GAN* 98.72 ‾ \underline{98.72} 98.72​77.6086.9041.4433.9237.385.1789.9187.47THOC98.0879.9488.0942.1263.3450.5982.7096.4889.06GTA94.83 88.10 ‾ \underline{88.10} 88.10​ 91.34 ‾ \underline{91.34} 91.34​ 83.91 ‾ \underline{83.91} 83.91​83.61 83.76 ‾ \underline{83.76} 83.76​ 91.04 \mathbf{9 1 . 0 4} 91.0491.17 91.10 ‾ \underline{91.10} 91.10​GDN95.85 91.42 \mathbf{9 1 . 4 2} 91.42 93.59 \mathbf{9 3 . 5 9} 93.59 85.62 \mathbf{8 5 . 6 2} 85.62 85.41 ‾ \underline{85.41} 85.41​ 85.52 \mathbf{8 5 . 5 2} 85.5282.92 99.19 ‾ \underline{99.19} 99.19​90.33

最佳表现加粗。次佳表现加下划线。 时间序列数据的异常检测方法需要调整各种超参数以实现最佳性能。由于每种方法的最佳超参数值不同,我们在表5中报告了使用的数值。典型的超参数包括降采样比率、窗口大小、点调整和学习率。在大多数情况下,在实验之前会对时间序列数据进行降采样,以在模型的固定容量下对长时间范围的数据进行建模。根据[72]的研究,降采样通过减少数据量加快了学习速度,同时也具有去噪效果。此外,使用固定长度的窗口切分每个序列是一种常见做法。点调整是一种提高检测模型召回率的技术。数据集中典型的异常往往是时间上相邻的。如果模型在每个时间步做出决策时成功检测到任何异常中的一个,评估过程将把整个连续的异常段视为已检测到。

图9. SWaT和MSL上的实验结果。基于RNN和Transformer的模型捕获了时间依赖关系,优于DAGMM,这是一种非时间建模方法。

B. 结果与分析

我们比较了多变量时间序列异常检测中一系列最新技术,分类如下:

AE:DAGMM [103],MSCRED [51],OmniAnomaly [68]VAE:LSTM-VAE [112],USAD [72]GAN:MAD-GAN [59]RNN:THOC [60]Transformer:GTA [109]GNN:GTA [109],GDN [108]

表6显示了基准数据集(SWaT、WADI和MSL)上各种最新技术的异常检测准确率,包括精度、召回率和F1分数。除特殊情况外,我们尽量采用相同的实验设置来公平比较性能。如果在相同设置下进行比较不可行,我们使用原始论文中报告的设置。这些方法中的每一种都将不同的指标作为优先考虑的指标,因为作者根据其目标选择了特定的阈值。因此,我们选择F1分数作为基准,并相应地对SWaT的方法进行排序。

结果显示,并没有适用于所有数据集的一揽子方法,也没有根据结构的不同在性能上有显著区别。因此,我们从几个角度解释结果。

1) 建模时间依赖性

与旨在处理没有时间信息的多变量数据的DAGMM [103]相比,基于RNN的模型表现更优(见图9)。在SWaT和MSL数据集上,基于RNN的模型的平均F1分数分别比DAGMM高1.87%和14.90%。这是因为它们可以将长序列作为输入并捕获时间依赖关系。

图10. SWaT、MSL和WADI上的实验结果。数据集的维度影响性能。

LSTM-VAE [112]用LSTM替换了VAE中的前馈网络。MSCRED [51]是一种基于CNN的AE,重建包含观测的聚合信息和固定大小滑动窗口内变量之间相互关系的特征图。在编码器和解码器之间,它使用ConvLSTMs从特征图中跨越先前时间步的时空依赖关系。MAD-GAN [59]采用LSTM-RNN作为生成器和判别器,以生成对抗训练方式学习时间上下文,并明确重建原始时间序列。THOC [60]采用多层扩张RNN来模拟具有各种长度的时间依赖关系。

大多数基于RNN的方法优于DAGMM,但除了在MSL上的LSTM-VAE。我们认为这种现象背后的主要原因在于潜变量的处理;尽管LSTM-VAE使用LSTM进行序列建模,但它忽略了潜变量之间的时间依赖关系。与此同时,OmniAnomaly [68]将编码器和解码器中间的随机潜变量与线性高斯状态空间模型连接起来,以模拟具有固有随机性的时间依赖关系。因此,没有建模时间依赖性的方法不适用于时间序列异常检测。

2) 长序列的并行处理

尽管序列建模具有强大的能力,但RNN的一个缺点是它限制了并行化,因为它按顺序计算输出。与此同时,Transformer一次处理一个序列,因此可以进行并行处理。此外,通过自注意力机制计算所有时间步之间的贡献,它可以一次反映上下文信息。这种特性对序列建模非常重要,因为较长的序列可以提供更多信息。因此,与DAGMM相比,旨在采用Transformer的GTA在SWaT和MSL数据集上的最佳F1分数分别总体提高了6.98%和30.01%。与SWaT和MSL数据集上基于RNN模型的F1分数整体均值相比,GTA也分别提高了5.11%和10.64%。

3) 数据集的维度

如图10所示,我们可以看到WADI数据集上的最佳F1分数整体表现明显低于其他数据集(SWaT和MSL),除了基于GNN的方法。请注意,WADI数据集的维度是SWaT和MSL的两倍,如表4所述。当我们将定义变量之间相关性的2D特征图(如协方差矩阵)提供给基于深度神经网络的模型时,与SWaT和MSL相比,特征表达和计算量将增加四倍以上。特别是在具有深层的基于重构的模型中,每一层的计算量都会过载。毫无疑问,WADI的糟糕结果是可以预期的。

4) 属性之间的相互关系

尽管有几个影响性能的因素,但我们可以看到,在简单比较在预处理阶段经历降维处理和未经降维处理的模型时,WADI数据集上的结果没有明显差异。我们认为可能的原因是在降维处理过程中丢失了一些重要特征。

与此同时,基于GNN的模型(GTA和GDN)在WADI数据集上实现了相对较高的F1分数。虽然GTA极大地受益于Transformer的序列建模能力,但GDN并不考虑时间依赖性,仅通过学习变量之间的图结构获得了显著结果。我们认为主要因素在于特征之间的依赖关系。SWaT和WADI提供了网络流量、传感器和执行器的测量数据,涉及几个控制过程。这些属性并不完全独立,因此在相关设备和控制过程内部的属性之间存在相互关系。因此,我们观察到,具有注意力机制的图结构学习对元素之间关系密切的数据集更有效。

VII. 从业者指南

大多数当前的异常检测方法对特定用例非常具体。这意味着没有一种适用于所有情况的方法。在这方面,我们根据每个应用的目的和情况提供了模型选择的指南。我们在图11中提供了直观的指南可视化。我们还讨论了应考虑的训练技术。

(a)

(b)

图11. 时间序列数据异常检测策略:(a) 实时 vs. 预警;(b) 滑动窗口 vs. 增量更新。

预警:制造厂的维护成本占据了总生产成本的相当大一部分。一旦设施发生严重故障,操作人员将因为未经计划的停机维修而损失大量时间和成本。在这方面,引入了一种基于条件的预防性维护(PdM)[132]方案。需要改进的时间序列异常检测算法能够预测未来的故障,以成功执行PdM。能够在模型中累积历史信息的自回归算法可以预测可能的故障。特别是,基于LSTM-[110],[111]和HTM的模型[121]已被广泛用于预测时间序列数据中的故障。异常预测中的主要挑战包括误报和漏报[133],[134]。因此,选择用于异常检测的最佳阈值尤为重要。较高的阈值将抑制误报,但可能会错过实际的异常。相反,较低的阈值将捕捉更多的异常,但会导致更多的误报。 2) 滑动窗口 vs. 增量更新

有两种命题可以从时间序列数据中推断上下文。一种时间序列模型要么处理所有的历史数据点,要么增量更新最新项目的输出。这些方法分别称为滑动窗口和增量更新。

滑动窗口:一些模型只能前馈固定大小的数据。TCN-[116]-[118]和基于CNN的方法[53],[62],[115]属于这一类别,窗口的大小会影响神经网络建模的时间依赖长度。因此,实践者应根据数据集的性质(例如多变量序列之间的时间滞后和随后异常的频率)仔细选择适当的窗口大小。过大的窗口大小可能导致忽视异常,而过小的窗口大小可能使模型无法捕捉长期依赖关系。例如,张等人[51]比较了不同窗口大小的异常检测性能,并选择显示最佳性能的最佳值。增量更新:增量模型通过边际计算更新新数据的预测。它们在流式环境中特别有益,其中数据逐个提供。此外,不应低估计算上的好处。基于滑动窗口的方法必须在内存中维护整个数据流以进行额外处理,这会导致每个时间步的更大计算量。自回归模型,如GRUs和LSTMs,本质上是增量模型,因为它们在隐藏状态中保留了过去数据的简明摘要。例如,一些基于LSTM的方法[110],[111]支持增量更新。然而,许多方法[29],[51],[69],[104]需要参考过去数据以进行预处理或后处理,使用AEs或其他网络。对于这些方法,增量特性是有限的。 B. 训练和预处理技术

除了检测阶段,异常检测方法在训练方面有许多设计选择。

1) 损失函数

时间序列异常检测模型使用不同类型的损失函数进行训练,具体取决于它们如何对数据的正常性进行建模。损失函数的类型包括对抗损失、重构损失、预测损失和负对数似然。

对抗损失:自Goodfellow等人的开创性工作以来[135],对抗式形式已被广泛应用[136],[137]以提高生成模块的建模能力。这种技术也被用于以前的时间序列异常检测研究[59],[74],[115]中。鉴别器主要作为生成组件的辅助器。训练后,它还可以用于生成异常分数,如[53],[59]中所示。典型的对抗式形式如下所示:

min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p data  ( X ) [ log ⁡ D ( x ) ] + E z ∼ p z ( Z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \begin{align*} \min _{G} \max _{D} V(D, G)= & \mathbb{E}_{x \sim p_{\text {data }}(X)}[\log D(x)] \\ & +\mathbb{E}_{z \sim p_{z}(Z)}[\log (1-D(G(z)))] \tag{19} \end{align*} Gmin​Dmax​V(D,G)=​Ex∼pdata ​(X)​[logD(x)]+Ez∼pz​(Z)​[log(1−D(G(z)))]​(19)​

其中 D D D和 G G G分别是鉴别器和生成器模块。尽管使用对抗损失训练的模型生成的结果可能显著,但最具挑战性的问题是两个竞争模型的同时动态训练本质上是不稳定的。由于不稳定的训练过程,模型可能陷入失败模式,而不是收敛到最优解。典型的失败模式是生成器总是从多个输入中输出相同的值。

重构损失:对于异常检测, A E \mathrm{AE} AE是一个首选选择,前提是 A E \mathrm{AE} AE使用正常训练数据训练时能够很好地重构正常数据。一些方法[29],[51],[104],[114]使用AEs,可选地与其他模块结合使用。它们使用重构损失作为训练损失函数,以便 A E \mathrm{AE} AE被训练以捕捉训练数据的正常性。典型的重构损失形式如下:

L ( S t , S t ′ ) = ∥ S t − S t ′ ∥ \begin{equation*} \mathcal{L}\left(S_{t}, S_{t}^{\prime}\right)=\left\|S_{t}-S_{t}^{\prime}\right\| \tag{20} \end{equation*} L(St​,St′​)=∥St​−St′​∥​(20)​

其中 S t S_{t} St​是时间步 t t t的观察数据点, S t ′ S_{t}^{\prime} St′​是时间步 t t t的重构数据点。

预测损失:基于预测的方法通过将预测与实际观察进行比较来检测异常[100],[111]。预测模型使用预测损失进行训练,以便模型被迫使用过去数据或特征之间的关系产生准确的预测。预测损失类似于(20),只是 S t ′ S_{t}^{\prime} St′​表示对实际观察 S t S_{t} St​的预测。这种训练方案在推断时间中被应用,因此对于预警系统是有益的。负对数似然:一组能够估计输入数据对数似然的生成模型通常使用负对数似然(NLL)作为训练损失。最小化NLL会最大化数据集的估计概率,使得模型捕捉数据集中存在的正常性概念。GMMs是一种包括NLL在其损失函数中的生成模型[103],[117]。请注意,NLL以不同方式进行优化。例如,TCN-GMM [117]使用期望最大化算法最大化(21)中呈现的对数似然。

J ( θ ) = ∑ k = 1 K w k 1 ( 2 π ) D / 2 ∣ Σ k ∣ 1 / 2 e − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) , \begin{equation*} J(\theta)=\sum_{k=1}^{K} w_{k} \frac{1}{(2 \pi)^{D / 2}\left|\Sigma_{k}\right|^{1 / 2}} e^{-\frac{1}{2}\left(\mathbf{x}-\mu_{\mathbf{k}}\right)^{T} \Sigma_{k}^{-1}\left(\mathbf{x}-\mu_{\mathbf{k}}\right)}, \tag{21} \end{equation*} J(θ)=k=1∑K​wk​(2π)D/2∣Σk​∣1/21​e−21​(x−μk​)TΣk−1​(x−μk​),​(21)​

其中 θ \theta θ表示GMM参数, { Σ k , μ k \left\{\Sigma_{k}, \mu_{k}\right. {Σk​,μk​, w k } k = 1 K \left.w_{k}\right\}_{k=1}^{K} wk​}k=1K​, D D D是特征向量中的维数。相反,DAGMM [103]使用梯度下降以端到端的方式最大化类似的损失项。

VAE,另一类生成模型,使用证据下界(ELBO)进行训练,如(22)所示,ELBO是对数似然的下界。基于VAE的方法[73],[112],[113]使用ELBO进行训练。 J ( θ ) = E q [ log ⁡ p ( x , z ) ] − E q [ log ⁡ q ( z ) ] \begin{equation*} J(\theta)=\mathbb{E}_{q}[\log p(x, z)]-\mathbb{E}_{q}[\log q(z)] \tag{22} \end{equation*} J(θ)=Eq​[logp(x,z)]−Eq​[logq(z)]​(22)​

它们不仅仅生成类似于输入的数据实例,还使用训练数据近似未知的先验分布。

2) 批量学习 vs. 在线更新

时间序列数据中的一个常见挑战是数据的非平稳性,如II-B节所述。随着数据分布的变化,我们建议根据以下两种方法更新模型。

批量学习:深度学习通常假定数据的分布是稳定的,并且深度神经网络模型是使用从与测试分布相同的分布中抽样的大批数据进行训练的。因此,大多数基于深度学习的方法应该提供新的一批训练数据以微调模型。当系统管理员无法在每次数据更新后重新收集数据时,这种训练方案可能会有问题。在线更新:当模型支持在线更新时,可以缓解上述问题。它使得可以在不需要从头开始重新训练模型的情况下使用新附加的数据对模型进行微调。基于HTM的方法具有这样的能力[69],[121],但在深度学习模型中很少发现在线更新,因为数据分布的非平稳假设在机器学习中相当不寻常。在基于深度学习的方法中,一些方法[110],[111]调整其用于二进制决策的阈值。

我们可以考虑持续学习作为一种替代方案。然而,持续学习面临着可塑性-稳定性困境。神经网络在前向传递上表现良好,因此参数应该是可塑的以学习新任务。同时,它们应该是稳定的,不会忘记重要特征。然而,对新任务进行微调会使参数迅速忘记它们先前学到的内容。我们称这种现象为灾难性遗忘[138]。缓解灾难性遗忘的常见方法包括基于正则化、动态网络架构和记忆重放的方法。每种方法的代表性方法包括弹性权重保持[139]、动态可扩展网络[140]和深度生成重放[141]。

3) 降噪 平滑处理:指数加权移动平均是一种递归平滑滤波器,其执行一种方案,即对当前观测赋予最大的权重,并随着向过去遍历而呈指数衰减。尽管这种方法很有效,但我们需要确定去噪的级别。转换:信号在时间域和频率域都有表示。小波变换和快速傅里叶变换将信号分解为多个分辨率,以提取频率特征。变换后的数据与原始数据的差异被视为噪音。估计:卡尔曼滤波器通过将嘈杂数据表示为状态空间模型并应用概率估计来去除噪声数据[142]。深度学习:如果训练数据集与模型容量相比较小,深度学习模型可以记忆数据集。因此,模型学习到了噪声。在这种情况下,很难区分噪声和异常。去噪自编码器是一种通用的基于深度学习的方法,用于解决这个问题。它通过添加随机噪声来训练 A E \mathrm{AE} AE 来恢复原始输入。因此,它不是简单地重建输入,而是稳健地学习特征的表示,以防止过拟合。 VIII. 结论

多年来,企业和行业一直在做出基于数据的决策,以向全球社区提供更好的产品和服务。从各种来源收集的大量数据中提取有益信息的分析技术提供了许多机会。此外,从时间序列数据中识别和排除意外事件可以帮助预防事故和财务损失。基于深度学习的方法因其解决这些问题的出色能力而受到了相当多的关注。

在本文中,我们讨论了时间序列数据的特征以及其中检测到的异常。我们还描述了异常检测在制造业、能源管理、云基础设施和结构健康监测等多个行业中的各种应用。由于时间序列数据中的异常检测一直备受关注,我们简要介绍了一些传统方法,并描述了关于这个主题的一些具有挑战性的问题。随着系统复杂性的增加,而用于分析的精炼数据和标签仍然不足,对基于无监督深度学习的时间序列异常检测的需求不断增加。在这方面,我们从多个角度对最新的基于深度学习的时间序列异常检测方法进行了回顾,并报告了三个真实世界基准数据集上的评估结果。最后,我们提供了模型选择和训练技巧的指南。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3