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

相关文章

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转