机器学习周记(第二十八周:文献阅读-GSTPro)2024.1.29~2024.2.4

news2024/9/21 18:55:59

目录

摘要

ABSTRACT

1 论文信息

1.1 论文标题

1.2 论文摘要 

1.3 论文背景

2 论文模型

2.1 问题描述

2.2 总体架构

2.3 动态图神经控制微分方程(Dynamic Graph Neural Controlled Differential Equations)

2.3.1 空间处理(Spatial Process)

2.3.2 时间处理(Temporal Process)

2.4 异常评分(Anomaly Scoring)

2.5 模型训练(Model Training)

3 相关代码


摘要

  本周阅读了一篇关于使用图时空神经网络和异常评分器来解决在非规则采样的多元时间序列上检测异常的论文。图时空处理主要基于神经控制微分方程,从空间和时间角度对多元时间序列进行有效建模,即使数据中包含缺失值。异常评分器主要基于高斯分布,不需要与真实值进行比较,避免了在计算异常评分时因缺失值而产生的问题,其次它完全基于预测统计,不包含可训练参数。异常评分器的主要原理是将当前预测值与历史预测值进行比较,计算异常可能性。

ABSTRACT

This week, We read a paper on using graph spatiotemporal neural network and anomaly scorers to detect anomalies in irregularly sampled multivariate time series. The graph spatiotemporal processing is primarily based on neural controlled differential equations, effectively modeling multivariate time series from spatial and temporal perspectives, even when the data contains missing values. The anomaly scorer is mainly based on Gaussian distribution, eliminating the need for comparisons with real values, thereby avoiding issues related to missing values in computing anomaly scores. Additionally, it relies entirely on predictive statistics and does not include trainable parameters. The core principle of the anomaly scorer is to compare the current predicted value with historical predicted values to calculate the likelihood of anomalies.

1 论文信息

1.1 论文标题

Graph spatiotemporal process for multivariate time series anomaly detection with missing values

1.2 论文摘要 

  多元时间序列数据中的异常检测在智能电网、交通流量预测、工业流程控制等诸多实际应用中具有重要意义。然而,现实世界的时间序列数据通常结构不完善,对后续的时间序列处理任务带来了如下挑战:(1)多元时间序列数据中缺失值的存在阻碍了对相互交织的时空依赖关系的有效建模,导致重要模式在模型训练过程中被忽略;(2)对不规则采样观测值的异常评分的探索较少,使得现有的检测机制难以用于没有完整观测值的多元序列。本文提出一种新的框架GST-Pro,利用图时空处理和异常评分器来解决上述在非规则采样的多元时间序列上检测异常的挑战。该方法由两个主要部分组成。首先,提出一种基于神经控制微分方程的图时空处理。该处理使得从空间和时间角度对多元时间序列进行有效建模成为可能,即使数据中包含缺失值。其次,提出了一种新的基于高斯分布的异常评分机制,减轻了对完全均匀观测的依赖。通过分析图时空处理的预测,该方法能够轻松检测异常。实验结果表明,无论数据中是否存在缺失值,GST-Pro方法都可以有效地检测时间序列数据中的异常,其性能优于现有方法。

1.3 论文背景

  随着技术的飞速进步,时间序列数据的广泛性和数据量呈现爆炸式的增长。从医疗保健和关键基础设施到航天器,各个行业目前正在从大量设备或传感器跨时间产生数据,形成具有数百到数千个变量的复杂多元时间序列。多元时间序列数据的激增不可避免地导致我们严重依赖通过多元时间序列数据自动检测异常事件,以识别、避免和响应灾难性事件发生之前和发生时的状况。理想情况下,检测可以通过允许大规模实施的算法来完成,并且对现实世界系统产生的噪声具有鲁棒性。因此,开发鲁棒多元时间序列异常检测模型的需求日益迫切。尽管有大量的多元时间序列数据表现出正常模式,但异常事件通常与罕见事件相关,因此收集和标记异常通常是一项艰巨的任务,也因此,无监督异常检测技术作为解决异常检测问题的一种实用方法被广泛探索。在已提出的方法中,经典的方法包括统计无监督模型,如ARIMA/VAR、基于距离或分布的方法。然而,这些方法在捕捉多元时间序列数据中存在的非线性时空关系方面存在一定的局限性。

  最近,随着深度学习(DL)的蓬勃发展,该领域目前取得了重大进展。一项早期的工作提出了一种使用长短期记忆(LSTM)网络来根据预测误差检测异常的方法。然而,LSTM框架缺乏对变量对间相互依赖关系的显式建模,限制了其在高维多变量时间序列数据中检测复杂异常事件的能力。为此,mtat-gatGDN使用时空图神经网络(STGNNs)对时空数据相关性进行建模。特别是GDN,它使用图学习层来学习成对的相关性,不需要预定义的图。到目前为止,STGNNs仍然是最先进的多元时间序列异常检测模型。尽管在多元时间序列异常检测方面取得了重大进展,但现有的深度异常检测技术依赖于以均匀频率采样的结构良好且规则的时间序列数据。然而,由于采样频率的不规则性,现实世界的多元时间序列数据往往存在随机缺失值或非均匀观测值。多变量时间序列数据中的随机缺失值通常是由于传感器限制或传输中断造成的,而非随机缺失值则可能由多模态源和过程异构造成。即使对于小规模系统,随机缺失值几乎也是不可避免的。因此,开发出能够准确检测异常事件的鲁棒技术至关重要。而现实是,不规则多元时间序列异常检测问题迄今为止还没有得到很好的研究。

  为了解决缺失的数据点,可以使用最直接的解决方案,比如零填充、插值算法、插补算法和线性预测器。这样,多元时间序列中的缺失值问题可以简单地作为预处理步骤来解决。然而,论文的实验结果所表明的,使用插补然后检测这样模块化的流水线方法可能会大大削弱异常检测性能。这需要一种替代方法来检测不规则多元时间序列中的异常事件。具有缺失值的多元时间序列中检测异常任务图示如Fig.1所示。按照标准的无监督异常检测设置,正常数据的前六个观测值用于训练模型,而测试数据包含正常(第一个和最后一个)和异常(中间四个)时间戳,用于评估模型检测异常的能力。其中红圈数据代表异常数据。

Fig.1

  首先,A1序列没有异常事件,但会间歇性地记录一个短突发值,虽然这在规则序列设置中很容易学习,但不规则多元时间序列在正常训练期间可能不会记录短突发,模型可能会认为这些短突发事件在检测测试期间是异常的。总之,在缺失值情况下,用于无监督学习的高质量训练数据是稀疏的。其次,如右图B1所示,在异常时段真实观测值可能缺失,导致数据异常检测困难。因此,不能依靠真实的观测值来实时检测异常事件。A1和B1都是一个时间序列,记录了独立移动的值。然而,在多元时间序列中,变量之间存在着错综复杂的联系。例如,C1、C2和C3是相互关联的变量,其中C1与C2呈强负相关,而C3与C2呈强正相关。因此,偏离这些关系是一种异常事件。在Fig.1的右图中,可以看到C1只在前两个早期时间点记录了与C2冲突的值,但随后的异常值没有记录。与此相反,C3记录的异常值发生在后期,而不是早期。由于在随机缺失场景下,不太可能出现所有通道同时存在缺失值的情况,因此作者推测,如果一个模型充分捕捉了变量之间的相互依赖关系,那么在不规则多元时间序列中,即使数据存在高缺失率,也能很好地检测异常事件。因此,对于异常检测模型来说,显式地捕获多元时间序列中变量之间复杂的成对关联关系(即空间依赖程度)至关重要。

2 论文模型

  为应对这些挑战,本文提出一种新的基于预测的异常评分器,利用图时空处理对多元时间序列进行建模,无论它们是否包含缺失值。具体来说,该方法涉及对输入多变量时间序列的每个变量中的缺失值进行插补,以生成完整的连续序列。设计了两个神经控制微分方程(NCDE过程,从空间和时间角度对输入数据进行建模,同时解决了上述第一和第三个挑战。通过结合这些过程,我们能够对任何多元时间序列进行建模,而不管它们是否包含缺失值。为应对第二个挑战,本文提出一种新的基于分布的异常评分器,其建立在时间序列模型之上具有两个显著优势:(1)仅基于模型预测,不需要与真实值进行比较,避免了在计算实时异常评分时因缺失值而产生的问题;(2)它完全基于预测统计,不包含可训练参数,使其成为一个即插即用模块,甚至可以与论文方法之外的其他时间序列模型集成。通过结合前文讨论的预测器和异常评分器,所提出的GST-Pro方法可以在线、无监督地有效检测现实世界任意多变量时间序列数据中的异常,如Fig.2所示。

2.1 问题描述

  具有连续等间隔观测值的多元时间序列可以定义为X=\left \{ X^{(1)},X^{(2)},...,X^{(T)} \right \},其中T表示当前时间戳的序列长度,X^{(t)}\in \mathbb{R}^{N}N个单变量通道\left \{ x_{1}^{(t)}, x_{2}^{(t)},..., x_{N}^{(t)} \right \}组成。因此,每个单变量通道也可以互换,并称为“传感器”或“节点”。对于常规的无监督多元时间序列异常检测,我们需要学习一个异常分类器或评分器A(\cdot),该分类器向每个时间戳输出一个异常分数,该分数可以清楚地区分异常观测值和非异常观测值。特别地,输出可以概念化为一个指示器,告知系统操作员时间戳是否异常,A(X^{(a)})> A(X^{(n)}),其中X^{(a)}是异常观测值,X^{(n)}不是。表示时间戳是否异常的基准值标签表示为g^{(t)}\in \left \{ 0,1 \right \},如果观测值X^{(t)}异常,则表示为g^{(t)}=1。由于异常检测是在数据实时流化时发生的,因此模型只能依靠过去的观察值在每个时间戳上做出决策,而不能逆转之前的决策。对于非规则无监督多元时间序列异常检测,作者的目标是在数据中存在缺失值的情况下达到同样的目标。注意本文考虑随机缺失场景,缺失值问题存在于用于无监督训练的训练数据和用于评估异常事件检测模型的测试数据中。这种不规则性在实际的多元时间序列中很常见,因此是本文工作的重点。

2.2 总体架构

  GST-Pro的架构,包括两个关键组件:基于DG-NCDE的预测头基于高斯评分的异常检测器。主要的处理步骤如下:(a)对缺失值对进行插补以生成连续序列;(b)利用两个神经控制微分方程从空间和时间角度处理输入信号;(c)使用基于高斯分布的评分器对任意多元时间序列进行实时异常检测,该评分器根据预测输出评估异常,而无需真实观测值。异常得分是通过使用多元正态分布评估当前预测与历史预测的偏差可能性来计算的。

Fig.2

2.3 动态图神经控制微分方程(Dynamic Graph Neural Controlled Differential Equations)

  多元时间序列通常被概念化为由规则采样的图快照组成的离散时间动态图,记为G_{t}:=(V,E,X^{(t)})。在这里,VE为序列预定义的图结构,描述了变量(传感器)之间的潜在连通性,而X^{(t)}指快照G_{t}在时间t的节点特征。由于数据采样或传感器故障,变量维度和时间维度都可能存在缺失值。本文提出的动态图神经控制微分方程(DG-NCDE对多元时间序列进行建模,可以不管数据中是否存在缺失值。神经控制微分方程(NCDEs的表述如Eq.(1)所示,其最终目标是从数据中学习一个CDE函数f(\cdot;\Theta ),参数为\Theta

2.3.1 空间处理(Spatial Process)

  首先从由连续序列\widetilde{X}(t)控制的消息传递角度对每个变量在图快照之间的隐藏状态演变进行建模。

2.3.2 时间处理(Temporal Process)

2.4 异常评分(Anomaly Scoring)

  GST-Pro可以在每个时间戳上评估异常,而不需要访问其对应的真实观测值。具体来说,在当前时间戳TGST-Pro的异常评分器所需的唯一输入是来自预测模块的当前和历史预测值\left \{ \widehat{y}^{(1)},...,\widehat{y}^{(T)} \right \}

  GST-Pro的异常评分器仅考虑预测输出,而不考虑重构或预测误差。虽然预测误差允许基于预测值与实际值之间的偏差简单地检测异常事件,但在不规则的时间序列场景下,由于缺失值和无法访问,实际观察结果不够可靠。相反,在非异常期间GST-Pro可以预测与预测值非常相似的值,而在异常期间生成与正常预测输出不同的输出。换句话说,只要输入滑动窗口的信号存在空间和或时间上的异常,GST-Pro应该生成异常的预测。相反,如果输入中没有异常信号,它应该生成类似于非异常训练数据的预测输出。这种方法不需要做任何假设,除非是为了准确地填补缺失值。作者将重要性放在GST-Pro的预测模块上,从训练数据中学习空间和时间依赖性的正常性。

2.5 模型训练(Model Training)

  虽然论文所提出的异常检测器不包含可训练参数,但所提出的DG-NCDE预测模块需要无监督训练。为了实现这一点,构建下面的增广ODE,而不是单独实现Eq.(3)、Eq.(5):

\frac{d}{dt}\begin{bmatrix} Z(t) \\ H(t) \end{bmatrix}= \begin{bmatrix} f(Z(t);\Theta )g(H(t);\Phi )\frac{d\widetilde{X}(t)}{dt} \\ g(H(t);\Phi )\frac{d\widetilde{X}(t)}{dt} \end{bmatrix},                                                                 (9)

H(0)=FC(\widetilde{X}(t_{0}))Z(0)=FC(H(0))分别为两个NCDE函数的初始化值,使用Z(\zeta )得到单步预测:\widehat{y}=FC(Z(\zeta ))\in \mathbb{R}^{N},其中NMTS中通道的数量。

  GST-Pro通过如下损失函数优化参数:L=\frac{\sum_{i=1}^{N}m_{i}^{(t)}\cdot\left \| y^{(t)}_{i}-\widehat{y}^{(t)}_{i} \right \| _{1}}{\left |N \right |}y_{(i)}\widehat{y}_{(i)}分别代表节点i的真实值和预测值。m^{(i)}_{t}\in \left \{ 0,1 \right \}表示在时间戳t是否值缺失,m^{(t)}_{i}\in MM\in \left \{ 0,1 \right \}^{N}

3 相关代码

  NCDE时间序列预测示例:

import torch
import torchcde

# 创建一个简单的时间序列
batch, length, input_channels = 1, 10, 2
hidden_channels = 3
t = torch.linspace(0, 1, length)
t_ = t.unsqueeze(0).unsqueeze(-1).expand(batch, length, 1)
x_ = torch.rand(batch, length, input_channels - 1)
x = torch.cat([t_, x_], dim=2)  # include time as a channel

# 使用自然三次样条插值法插值序列
coeffs = torchcde.natural_cubic_spline_coeffs(x)
X = torchcde.NaturalCubicSpline(coeffs)

# 创建NCDE模型
class F(torch.nn.Module):
    def __init__(self):
        super(F, self).__init__()
        self.linear = torch.nn.Linear(hidden_channels, 
                                      hidden_channels * input_channels)
    def forward(self, t, z):
        return self.linear(z).view(batch, hidden_channels, input_channels)

func = F()
z0 = torch.rand(batch, hidden_channels)

torchcde.cdeint(X=X, func=func, z0=z0, t=X.interval)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1431405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024) 会议简介 2024年清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)将在中国丽江举行。本次会议主要围绕清洁能源、环境和智慧城市等研究领域,旨在为该研究领域的专家学者提供一个国际…

怎么提取视频中的音频?多个方法告诉你(全)

在视频处理的日常中,我们经常会遇到想要单独保存或编辑视频中音频的情况。无论是为了制作音频片段、配乐,还是为了保存视频中的有趣对白,提取视频中的音频是一项实用的技能。怎么提取视频中的音频?本文将向您介绍多个简单而有效的…

放假“疯狂”玩电脑的护眼操作

引用原文:[Lenovo] 放假“疯狂”玩电脑的护眼操作 1. 开启夜间模式 有很多同学不知道,其实Win10/Win11系统本身就自带护眼模式,只要开启护眼模式,就能有效降低屏幕对眼睛的伤害。(以下以Win10系统操作步骤为例&#xf…

再识C语言 DAY13 【递归函数(超详细)】

文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言,感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 (函数自…

【机器学习】全网最全模型评价指标(性能指标、YOLOv5训练结果分析、轻量化指标、混淆矩阵详解)【基础收藏】

🥑 Welcome to Aedream同学 s blog! 🥑 文章目录 模型性能指标常见指标ROC/AUCROC & PRC多分类问题——混淆矩阵 计算结果分析——以YOLO v5为例1. confusion_matrix.png(混淆矩阵)2. F1_curve:3. labels.jpg4. labels_corrrelogram.jpg5…

STM32外部中断(红外传感器与旋转编码器计数案例)

文章目录 一、介绍部分简介中断系统中断执行流程STM32中断NVIC基本结构NVIC优先级分组外部中断外部中断简介外部中断基本结构外部中断的流程AFIOEXTI框图 相关外设介绍旋转编码器介绍硬件电路对射式红外传感器 二、代码实现对射式红外传感器计次连接电路封装红外传感器与中断函…

清华系2B模型杀出,性能吊打LLaMA-13B

2 月 1 日,面壁智能与清华大学自然语言处理实验室共同开源了系列端侧语言大模型 MiniCPM,主体语言模型 MiniCPM-2B 仅有 24 亿(2.4B)的非词嵌入参数量。 在综合性榜单上与 Mistral-7B 相近,在中文、数学、代码能力表现…

怎么把物品信息图片批量生成二维码?每张图片单独生码的制作技巧

现在通过扫码来查看人员或者物品信息的方式越来越常见,在合适的位置放置对应的二维码内容,让其他人通过扫码来获取图片信息。那么如果我们将每个信息做成一张图片后,需要将图片生成二维码时,有能够批量生成二维码的方法可以快速处…

天地伟业接入视频汇聚/云存储平台EasyCVR详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

基于深度卷积神经网络的图像配准(DeepSlice)

文章目录 一、基于DeepSlice的切片配准1.1、研究现状1.2、网络模型(DeepSlice)1.3、优化策略1.3.1、开发了一个基准数据集(GT)1.3.2、构建了阶段二的训练数据集(增强训练)1.3.3、角度集成 切割索引&#x…

[ChatGPT们】ChatGPT 如何辅助编程初探

主页:元存储的博客 全文 9000 字, 原创请勿转载。 我没有写过诗,但有人说我的代码像诗一样优雅 -- 雷军 图片来源:https://www.bilibili.com/video/BV1zL411X7oS/ 1. 引言 作为一个程序员,我们不仅要熟悉各种编程语…

ctfshow web入门 1-2 +密码签到

web1 F12源代码 web2 ctrlu cypto 签到 a}wohs.ftc{galf print(a[::-1])

使用 LoRA 在 vi​​ggo 数据集上微调 Microsoft phi-2 小语言模型

一、说明 Microsoft 的基于 Transformer 的小语言模型。它可以根据 MIT 许可在HuggingFace上使用。 它在 96 个 A100 GPU 上使用 1.4T 令牌进行了 14 天的训练。Phi-2 是一个 27 亿个参数的预训练 Transformer,不使用 RLHF 或指示微调。它进行下一个标记预测&#x…

RNN(神经网络)

目录 介绍: 数据: 模型: 预测: 介绍: RNN,全称为循环神经网络(Recurrent Neural Network),是一种深度学习模型,它主要用于处理和分析序列数据。与传统…

Python入门:生成器迭代器

一、列表生成式 现在有个需求,列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,怎么实现?你可能会想到2种方式 二逼青年版 1 2 3 4 a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b [] for i in a:b.append(i1) print(b) …

如果通过浏览器调试?

背景:博主是一个有丰富经验的后端开发人员,在前端开发中感觉总是有种力不从心的感觉,因为没有后端debug调试的清晰感。 解决办法:掌握chorm浏览器调试技巧。 F12, F5 打上断点之后,这不就是梦寐之中的调试…

Linux驱动 SPI子系统

1、SPI协议 SPI(Serial Peripheral Interface)是一种同步串行数据通信协议,通常用于连接微控制器和外部设备,如传感器、存储器、显示器等。SPI协议使用四根线进行通信,包括时钟线(SCLK)、数据输…

第十二篇【传奇开心果系列】Python的OpenCV技术点案例示例:视频流处理

传奇开心果短博文系列 系列短博文目录Python的OpenCV技术点案例示例短博文系列短博文目录一、前言二、视频流处理介绍三、实时视频流处理示例代码四、视频流分析示例代码五、归纳总结系列短博文目录 Python的OpenCV技术点案例示例短博文系列 短博文目录 一、前言 OpenCV视频…

【面试官问】Redis 持久化

目录 【面试官问】Redis 持久化 Redis 持久化的方式RDB(Redis DataBase)AOF(Append Only File)混合持久化:RDB + AOF 混合方式的持久化持久化最佳方式控制持久化开关主从部署使用混合持久化使用配置更高的机器参考文章所属专区

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…