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

相关文章

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关