USAD: 多元时间序列的无监督异常检测

2024-06-20 14:04

本文主要是介绍USAD: 多元时间序列的无监督异常检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

USAD: 多元时间序列的无监督异常检测

原创 小王搬运工 时序课堂 2024-06-20 10:43 四川

图片

论文地址:https://dl.acm.org/doi/abs/10.1145/3394486.3403392

论文源码:https://github.com/manigalati/usad

期刊:KDD '20: Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining

图片

图片

这篇论文介绍了一种名为USAD(UnSupervised Anomaly Detection for multivariate time series)的新型无监督异常检测方法,旨在应对IT系统监控中的挑战。随着IT操作规模和复杂性的增长,传统的基于专家的监控方法已不再适用。USAD利用对抗训练的自编码器架构,能够在没有标签数据的指导下学习,并通过放大异常输入的重建误差来检测异常。论文通过五个公共数据集的实验验证了USAD的鲁棒性、训练速度和高异常检测性能。此外,通过在Orange公司的专有数据上进行的可行性研究,证明了USAD在可扩展性、稳定性和高性能方面满足了工业应用的需求。USAD的提出,为大规模基础设施的自动化监控提供了一种有效的解决方案。

图片

图片

问题定义 (Problem Formulation)

  • 时间序列:论文首先定义了单变量和多变量时间序列的概念,区分了它们在数据点上的不同。

  • 异常检测任务:描述了在给定时间序列数据集的情况下,如何通过训练数据来识别异常点。

自编码器基础 (Autoencoder Basics)

  • 自编码器结构:介绍了自编码器由编码器和解码器组成,编码器将输入数据映射到潜在空间,解码器则将潜在空间映射回输入空间。

  • 重建误差:使用重建误差作为异常分数的指标,高误差意味着可能是异常点。

对抗训练 (Adversarial Training)

  • 对抗训练概念:提出了USAD方法,结合了自编码器和对抗训练,通过训练一个模型来识别输入数据是否包含异常,从而提高重建质量。

  • 训练框架:USAD采用两阶段训练框架,第一阶段是自编码器训练,第二阶段是对抗训练。

USAD方法 (USAD Method)

  • 架构组成:USAD由一个编码器和两个解码器组成,形成两个共享相同编码器的自编码器AE1和AE2。

  • 训练过程:详细描述了USAD的两阶段训练过程,包括自编码器训练和对抗训练的目标和方法。

实现细节 (Implementation Details)

  • 数据预处理:说明了数据标准化和分割成时间窗口的方法。

  • 训练和检测算法:提供了USAD训练和检测算法的伪代码,包括权重初始化、训练循环、损失计算和参数更新。

异常检测 (Anomaly Detection)

  • 异常分数:定义了异常分数的计算方式,以及如何使用α和β参数来平衡误报和漏报。

网络架构 (Network Architecture)

  • 编码器和解码器:描述了编码器和解码器的具体网络结构,包括使用的层类型和激活函数。

优化器 (Optimizer)

  • 优化方法:提到了使用Adam优化器进行训练,并使用了默认的学习率。

图片

图片

图片

图片

在这篇论文中,作者提出了USAD,一种创新的无监督异常检测方法,专门针对多变量时间序列数据。USAD方法结合了自编码器的架构和对抗训练的策略,不仅提高了异常检测的准确性,还保持了训练过程的稳定性和快速性。通过在多个公共数据集上的广泛实验,USAD展现了其优越的性能,尤其在F1分数上超越了现有技术。此外,USAD的快速训练能力、对参数选择的鲁棒性以及可调节的检测灵敏度,使其成为工业环境中自动化IT系统监控的理想选择。论文还通过Orange公司的专有数据进行了可行性研究,进一步证明了USAD在实际应用中的潜力和效果。尽管在部署过程中可能会遇到一些挑战,如数据收集的纯净性问题,但USAD无疑为自动化监控提供了一个有前景的方向,并为未来的研究和应用奠定了坚实的基础。

这篇关于USAD: 多元时间序列的无监督异常检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078342

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n