基于GAN的多变量时间序列污染训练集异常检测

图片

论文地址:https://ieeexplore.ieee.org/document/9618824

论文源码:https://github.com/sxxmason/FGANomaly

期刊:IEEE Transactions on Knowledge and Data Engineering

图片

图片

图片

多元时间序列异常检测在结构健康监测、智能运维、量化交易等诸多实际应用中具有巨大的应用潜力。极端不平衡的训练集和噪声干扰使得准确捕获正态数据的分布并检测异常具有挑战性。近年来,人们提出了数十种基于自动编码器(AE)和生成对抗网络(GAN)的方法来学习正常数据的潜在表示,然后基于重建误差检测异常。

然而,现有的基于人工神经网络的方法缺乏针对异常检测任务设计的有效正则化方法,容易过拟合,而基于GAN的方法大多是在无污染的训练集假设下进行训练,这意味着训练集全部由正常样本组成,在实践中很难满足这一要求。

为了解决这些问题,本文提出了一种基于GAN的多变量时间序列异常检测方法FGANomaly(字母F代表Filter)。其核心思想是在训练鉴别器之前用伪标签过滤可能的异常样本,从而尽可能精确地捕获正态数据的分布。此外,我们为生成器设计了一个新的训练目标,使生成器更专注于合理的正常数据而忽略异常。

我们在四个公共数据集上进行了全面的实验,实验结果表明我们的方法在性能和鲁棒性方面都优于基线。

图片

图片

这个框架呈现的是一个三部分的模型,包括生成器、过滤器和鉴别器:

生成器(Generator):生成器由两个主要部分组成:编码器和解码器。输入数据首先被编码器转化成低维编码,然后解码器将这个编码重构回原始数据空间。这个过程生成了重构的样本,并能够计算输入样本和重构样本之间的重构误差。

过滤器(Filter):过滤器接收原始输入和重构误差,它的任务是筛选可能的正常样本。这意味着它可以识别那些与重构样本差异较小的输入样本,将它们作为正常数据。这个过程中筛选出来的样本会被认为是干净的样本,并将被用于训练鉴别器。

鉴别器(Discriminator):鉴别器的工作是区分真实的输入样本和生成器产生的样本。在这个上下文中,‘真实’样本可能指的是过滤器筛选过的样本。鉴别器通过接受这些经过过滤的输入(即过滤后的干净样本)来进行训练,目的是学会辨别出真正的异常样本。

图片

图片

图片

图片

图片

本文提出了一种基于GAN的多元时间序列异常检测方法。针对传统的基于AE和基于GAN的异常检测方法存在的过拟合问题,我们提出了Filter GAN,在训练鉴别器之前对可能的异常样本进行筛选,使模型能够准确地捕捉到正态数据的分布,并为生成器设计了一个特殊的目标Adaptive Weight Loss,在训练过程中根据不同点的重构误差动态分配权重。为了评估所提出的方法,我们在四个公共数据集上进行了综合实验,实验结果表明,我们的模型在性能和鲁棒性方面都具有优势。为了对模型有一些深入的了解,我们做了一个案例研究来可视化结果,结果表明我们的模型学习了正态分布和异常分布之间的清晰边界,从而能够很好地检测异常。此外,还有一些需要改进的地方,如多元时间序列中不同维度之间的信息融合,这是未来工作的重要研究方向。

论文下载地址:

链接:https://pan.baidu.com/s/19vw0ZoVirnGEFcDSdv1Nqw 
提取码:1msi 
--来自百度网盘超级会员V6的分享

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】模版

目录 一、泛型编程二、函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三、类模板3.1 类模板的定义格式3.2 类模板的实例化 四、非类型模板参数五、模板的特化5.1 概念5.2 函数模板特化5.3 类模板特化5.3.1 全特化5.3…

google map POI获取

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、需求背景 因业务发展,需获取全美(或任意国家)所有POI(标记点)信息,包括mark_id、mark_name、address、numb…

JavaThread线程

目录 程序--进程--线程 程序: 进程: 线程: 进程和线程的关系 创建线程 单线程模式 代码 图解 运行 代码 运行 创建线程 方式一 代码 运行 方式二 代码 运行 总结: Thread类中常用的方法 1、 代码 运行…

python统计分析——一般线性回归模型

参考资料:python统计分析【托马斯】 当我想用一个或多个其他的变量预测一个变量的时候,我们可以用线性回归的方法。 例如,当我们寻找给定数据集的最佳拟合线的时候,我们是在寻找让下式的残差平方和最小的参数(k,d): 其…

YooAsset快速入门

文章目录 YooAsset快速入门指南:YooAsset学习核心要掌握的要点主要包括以下几个方面:基于YooAsset进行游戏资源管理的应用实例 YooAsset快速入门指南: YooAsset是一款专为游戏开发设计的资产管理和分发系统,它能够帮助开发者高效…

服务器挖矿病毒解决ponscan,定时任务解决

服务器挖矿病毒解决ponscan,定时任务解决 挖矿病毒会隐藏chattr的操作权限,让我们无法删除病毒文件,杀掉病毒进程。所以要去下载chattr.c的文件,编译成a.out。然后再对原来的chattr文件的权限进行修改。然后覆盖掉它。 chattr.c …

Redis Pipelining 底层原理分析及实践

作者:vivo 互联网服务器团队-Wang Fei Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,Redis提供了Pipelining(管道)来提升批处理性能。本文结合实践分析了Spring Boot框架下Redis的Lettuce客户端和Redisson客户端对P…

openlayers 入门教程(六):controls 篇

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

curl: (60) Peer‘s Certificate issuer is not recognized curl请求报错

此种情况多发生在自签名的证书或者证书和域名不对,报错含义是签发证书机构未经认证,无法识别。解决办法就是替换证书(补充证书机构)文件就好,如果没有可用的证书可以去Gworg申请一个。

从零到部署指南:Ubuntu上安装Boost和Crow库

1.安装boost 在安装Crow之前,需要确保您的系统中已经安装了Boost库。以下是Boost库安装步骤: 首先,从Boost官方网站或通过特定的链接下载Boost的源码,boost源码具体可参看这个链接: https://blog.csdn.net/duan199201…

Mongodb入门--头歌实验MongoDB 数据库基本操作

MongoDB 中聚合( aggregate )主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果,通常由聚合管道操作符和聚合表达式组合,完成数据处理。功能有点类似 Sql 语句中的 sum()、agv() 等。 一、聚合管道操作符将文档定制格式输出&…

如何在 MySQL 中开启日志记录并排查操作记录

在数据库管理中,能够追踪和审查操作记录是至关重要的。这不仅有助于识别和分析正常的数据库活动,还可以在数据泄露或未经授权的更改发生时进行调查和响应。本文将介绍如何在 MySQL 中开启通用日志记录,并如何排查操作记录。 开启 MySQL 通用…

使用 EFCore 和 PostgreSQL 实现向量存储及检索

随着 ChatGPT 的兴起及其背后的 AIGC 产业不断升温,向量数据库已成为备受业界瞩目的领域。FAISS、Milvus、Pinecone、Chroma、Qdrant 等产品层出不穷。市场调研公司 MarketsandMarkets 的数据显示,全球向量数据库市场规模预计将从 2020 年的 3.2 亿美元增长至 2025 年的 10.5…

机器学习—无量纲化和降维(四)

什么是特征预处理? 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程 1包含内容 数值型数据的无量纲化: 归一化标准化 2特征预处理API sklearn. preprocessing为什么要进行归一化 or 标准化? 特征的单位或者大小相差较大…

MATLAB | 这些美丽大方的弦图居然都是用MATLAB画的?

什么?这些美丽大方的弦图都是MATLAB画的??? 没错都是由我本人开发的弦图绘制工具包实现的: chord chart 弦图https://www.mathworks.com/matlabcentral/fileexchange/116550-chord-chartDigraph chord chart 有向弦图…

【c语言】自定义类型:结构体详解

目录 自定义类型:结构体 结构体类型的声明 结构体变量的创建和初始化 结构的特殊声明 结构的自引用 结构体内存对齐 对其规则 为什么存在内存对齐? 修改默认对⻬数 结构体传参 结构体实现位段 位段的内存分配 位段的跨平台问题 位段的应用…

vue3新手笔记

setup(){}函数,是启动页面后,自动执行的一个函数。所有数据(常量、变量)、函数等等,都要return 出去。 ref函数(可用于基本数据类型,也可以用于复杂数据类型):让页面上的…

Java Set基础篇

目录 前言一、常用Set1.1 Set1.1.1 特点 1.2 HashSet1.2.1 特点1.2.2 使用 1.3 TreeSet1.3.1 特点1.3.2 使用 1.4 LinkedHashSet1.4.1 特点1.4.2 使用 二、对比总结 目录 前言 一、常用Set 1.1 Set Set是一个继承自Collection的接口&#xff1a; public interface Set<…

位图布隆过滤器的原理及实现

目录 位图的概念&#xff1a; 位图的前置知识&#xff1a;位运算 位图的实现&#xff1a; 位图的基本参数和构造方法&#xff1a; 位图的插入&#xff1a; 位图的查找&#xff1a; 位图的删除&#xff1a; 布隆过滤器概念&#xff1a; 布隆过滤器的实现&#xff1a; …

【软件测试之边界值法】

【软件测试之边界值法】(蓝桥杯学习笔记) 我们先来看一个 Java 小程序&#xff0c;如下图所示。 运行这个程序会发生什么事情呢&#xff1f;在这个程序中&#xff0c;目标是为了创建一个有 10 个元素的一维数组&#xff0c;但是&#xff0c;在 Java 语言中&#xff0c;当一个数…