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如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g