ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY

news2024/11/26 0:52:30

论文题目:
ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY
发表会议:ICLR 2022
论文地址:https://openreview.net/pdf?id=LzQQ89U1qm_
论文代码:https://github.com/thuml/Anomaly-Transformer

目录

  • 一、现状总结
    • 1.1、利用经典的机器学习方法
    • 1.2、通过自监督任务训练一个RNN网络
    • 1.3、基于关联建模的方法
  • 二、思想概述-基于关联的准则
    • 2.1、序列关联
    • 2.2、先验关联
    • 2.3、关联差异
  • 三、解决方法
    • 3.1、模型整体架构
    • 3.2、Anomaly-Attention
    • 3.3、Association Discrepancy
    • 3.4、Training Strategy
      • 3.4.1、Vanilla Version
      • 3.4.2、Minimax Association Learning
    • 3.5、Association-based Anomaly Criterion
  • 四、试验分析
    • 4.1、结果分析
    • 4.2、消融实验
    • 4.3、异常判据的可视化
    • 4.4、先验关联学习尺度的可视化

一、现状总结

1.1、利用经典的机器学习方法

  • 基于密度估计的方法,计算局部离群因子或则和局部连通性来检测异常
  • 这些经典方法没有考虑时间序列信息,无法获取时间模式,只考虑到单个时间点,难以推广到不可见的真实场景

1.2、通过自监督任务训练一个RNN网络

  • 通过预测来检测误差
  • 虽然一定程度上解决了时序信息的问题,但对于复杂的时间模式,RNN无法学习到一个长序列的信息
  • 这些经典方法没有考虑时间信息,难以推广到不可见的真实场景
  • 对于复杂的时间模式,逐点表示信息较少,并且可以由正常时间点主导,使得异常难以区分。此外,重建或预测误差是逐点计算的,无法提供对时间背景的全面描述

1.3、基于关联建模的方法

  • 对于多变量时间序列,可以看各个变量之间的关系是否变化来检测异常;但这种方法也只考虑到了逐点的信息
  • 用子序列的关联来建模,找到异常;但这种无法捕获每个时间点与整个序列之间的细粒度时间关联
  • 无法捕获每个时间点与整个序列之间的细粒度时间关联

二、思想概述-基于关联的准则

对每个时间点的先验关联和序列关联进行建模,由于异常点的先验关联和序列关联都差不多,因此异常的关联差异会比正常时间点小,在两个分支之间采用极大极小策略,放大关联差异的正常与异常可分辨性。
image.png

image.png

2.1、序列关联

序列关联:点与整个序列的关联;每个时间点的时间关联可以从自注意图中得到,该自注意图表现为其对所有时间点的关联权值沿时间维的分布。每个时间点的关联分布可以为时间上下文提供更有信息的描述。原始transformer中的自注意力权值

2.2、先验关联

先验关联:点与相邻序列的关联;异常的关联应集中在相邻的时间点,这些时间点由于连续性更容易包含相似的异常模式。这种邻接集中的归纳偏倚被称为先验关联;使用可学习的高斯核来表示每个时间点的邻接集中归纳偏差

2.3、关联差异

关联差异:每个时间点的先验关联和序列关联之间的距离来量化,称为关联差异

三、解决方法

3.1、模型整体架构

图一

3.2、Anomaly-Attention

一个双分支结构的异常注意力机制(图一左),上半部用来计算先验关联,下半部是计算序列关联,即原始transformer得权重矩阵。Anomaly-Attention得公式表示如下公式一。
公式一
其中 σ ∈ R N × 1 σ∈R^{N×1} σRN×1为可学习的尺度参数

3.3、Association Discrepancy

算出了先验关联和序列关联,接下来就要算两者的关联差异;将关联差异形式化为先验关联和序列关联之间的对称KL散度,它表示这两个分布之间的信息增益。我们对多层的关联差异进行平均,将多层特征的关联组合成一个更有信息量的度量,公式如下:
公式二
其中i代表时间点,L代表层数

3.4、Training Strategy

3.4.1、Vanilla Version

公式三
第一项是重构损失,让模型提取到的特征更准确;第二项是差异损失,让异常的可识别性更强

理解:要想损失越小,那么第二项就要越大,就意味着关联差异越大,就意味着先验关联和序列关联越大;要想先验关联和序列关联越大,那么就要引导序列关联更多地关注非相邻区域;因为这样做,对于异常点来说即便更多的关注了非邻域区域,但由于异常点很难与全局时间序列建立关系,所以先验关联和序列关联的差异还是很小;但对于正常点来说,多的关注了非邻域区域,那么就会使序列关联对角线的值变小,而对角线以外的值变大,这样先验关联和序列关联的差异就会变大。就会让异常的可识别性更强。

此种方法的缺点:
直接最大化第二项的差异损失,会让先验关联中可学习的尺度参数σ变为0,使先验关联变得毫无意义

3.4.2、Minimax Association Learning

图二
参考图一和图二,本文采用的训练策略分为两步
第一步:最小化阶段,固定序列关联,让先验关联尽可能的去贴近序列关联,这一过程将使先验关联适应不同的时间模式;
第二步:最大化阶段,固定先验关联,让序列关联尽可能的去远离序列关联,这个过程迫使序列关联更加关注非邻域区域;
由于先验关联在最小阶段近似于序列关联,因此最大阶段将对序列关联进行更强的约束,迫使时间点更加关注非相邻区域。在重构损失下,异常比正常时间点更难达到这一点,从而放大了关联差异的正常-异常可分辨性。

3.5、Association-based Anomaly Criterion

公式四
本文定义的异常判别准则如公式四所示:
第一项是关联差异,第二项是重构重构差异,上述的准则,对于异常点来说,不管怎样,异常分数都是大的:
图三

四、试验分析

4.1、结果分析

采用了6个数据集,在18个模型上验证
image.png

4.2、消融实验

image.png

4.3、异常判据的可视化

image.png

4.4、先验关联学习尺度的可视化

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“惠才俊·暖同行”成都蓉北商圈“政策进楼宇”系列活动第二站

活动时间 2024年3月27日下午14:00活动地点 四川省成都市金牛区福堤路99号数媒大厦(5楼共享会议室)主办单位 成都蓉北商圈发展服务局 成都市金牛区新经济和科技局 成都树莓信息技术有限公司协办单位 蓉北人力资源服务产业园 主讲单位 蓉北商圈服务局、区新经济和科技局、国…

PyQt上手指南

文章目录 前言PyQt的好处从一个最简单的例子入手PyQt5基础组件体系源码结构 Qt Designer基础布局高级界面Web控件 多线程列表图形绘制PyQt5.QtGuiPyQtGraphmatplotlib和PyQt结合和mplfinance结合 工具使用打包链接 前言 用户界面开发,我搞过visual C MFC、Delphi V…

thinkphp 使用phpmailer发送邮件以及使用消息队列异步解耦发送邮件

邮箱注册配置&#xff1a; 注册163或qq邮箱&#xff0c;开启smtp服务 25端口 ssl则465端口 下载phpmailer composer 安装phpmailer composer require phpmailer/phpmailer设置配置文件 配置文件 书写代码 代码 <?php namespace app\job; use think\facade\Log; us…

安卓(uniapp)上架华为踩坑合集

1.如果是离线打包&#xff0c;注意在manifest那里修改&#xff1a; android:debuggablefalse2…您的应用targetsdk版本低于30&#xff0c;不符合华为应用市场审核标准。 修改建议&#xff1a;请您将应用targetsdk等级升级到30或30以上。 因为之前我升到30被打回来过&#xff…

【LAMMPS学习】三、构建LAMMPS(5)可选的构建设置

3、构建LAMMPS 3.5.可选的构建设置 LAMMPS 可以通过多种可选设置来构建。每个小节都解释了如何使用 CMake 和 make 进行构建。 3.5.1. C11 标准合规性 编译 LAMMPS 需要 C11 标准兼容编译器。 LAMMPS 2020 年 3 月 3 版是核心代码和大多数软件包与之前的 C98 标准兼容的最…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

基于java校园在线打印预约系统设计与实现

摘 要 二十一世纪以来&#xff0c;计算机行业应用技术不断发展&#xff0c;人们的观念也在不断改变。传统打印行业&#xff0c;用户已经意识到传统的打印文件方法等待时间太长。校园在线打印预约系统可以通过网络来打印文件&#xff0c;用户可以在特定的时间预约打印文件&#…

【RabbitMQ | 第一篇】消息队列基础知识

文章目录 1.消息队列基础知识1.1什么是消息队列&#xff1f;1.2消息队列有什么用&#xff1f;&#xff08;结合项目说&#xff09;1.2.1异步处理1.2.2削峰/限流1.2.3降低系统耦合性1.2.4实现分布式事务 1.3消息队列的缺点1.4JMS和AMQP1.4.1 JMS的两种消息模型&#xff08;1&…

PSQLException:limit must not be negative

limit must not be negative异常原因及解决 在PostgreSQL中遇到PsqlException: limit must not be negative异常&#xff0c;通常是由于在执行SQL查询时&#xff0c;传递给LIMIT子句的值为负数导致的。LIMIT子句用于限制查询结果的数量&#xff0c;其值必须是非负整数。 解决这…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…

15届蓝桥杯第二期模拟赛所有题目解析

文章目录 &#x1f9e1;&#x1f9e1;t1_求余&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t2_灌水&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t3_字符显示&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t4_区间最大和…

Mysql:行锁,间隙锁,next-key锁?

注&#xff1a;以下讨论基于InnoDB引擎。 文章目录 问题引入猜想1&#xff1a;只加了一行写锁&#xff0c;锁住要修改的这一行。语义问题数据一致性问题 猜想2&#xff1a;要修改的这一行加写锁&#xff0c;扫描过程中遇到其它行加读锁猜想3&#xff1a;要修改的这一行加写锁&…

[ C++ ] STL---list的使用指南

目录 list简介 list的常用接口 构造函数 赋值运算符重载 迭代器 容量相关接口 元素访问接口 修改相关接口 头插push_front() 头删pop_front() 尾插push_back() 尾删pop_back() insert() erase() list的迭代器失效 list简介 1. list是可以以O(1)的时间复杂度在任意…

ORACLE 上机操作3-1

sqlplus / as sysdba 显示parameter结构 SQL> set pause on SQL> desc v$parameter 显示系统静态参数 SQL> select name from v$parameter where isses_modifiable FALSE; 显示db_files是否可以用命令修改 SQL> select isses_modifiable, issys_modifiable, ismod…

使用 OpenAI 的 Embedding模型 构建知识向量库并进行相似搜索

OpenAI的embedding模型的使用 首先第一篇文章中探讨和使用了ChatGPT4的API-Key实现基础的多轮对话和流式输出&#xff0c;完成了对GPT-API的一个初探索&#xff0c;那第二步打算使用OpenAI的embedding模型来构建一个知识向量库&#xff0c;其实知识向量库本质上就是一个包含着一…

四、HarmonyOS应用开发-ArkTS开发语言介绍

目录 1、TypeScript快速入门 1.1、编程语言介绍 1.2、基础类型 1.3、条件语句 1.4、函数 1.5、类 1.6、模块 1.7、迭代器 2、ArkTs 基础&#xff08;浅析ArkTS的起源和演进&#xff09; 2.1、引言 2.2、JS 2.3、TS 2.4、ArkTS 2.5、下一步演进 3、ArkTs 开发实践…

【Linux】网络基础一

网络基础一 1.计算机网络背景1.1 网络发展1.2 认识 “协议” 2.网络协议初识2.1 协议分层2.2 OSI七层模型2.3 TCP/IP五层(或四层)模型 3. 网络传输基本流程3.1 网络传输流程图 4.数据包封装和分用5.网络中的地址管理 从今天开始我们将要从系统横跨到网络的学习了&#xff0c;因…

微信支付宝--充ChatGPTPLUS/openAI key

ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够基于在预训练阶段所见的模式和统计规律&#xff0c;来生成回答&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写论文、邮件、脚本、文案、翻译、代码等…

MFC界面美化第四篇----自绘list列表(重绘列表)

1.前言 最近发现读者对我的mfc美化的专栏比较感兴趣&#xff0c;因此在这里进行续写&#xff0c;这里我会计划写几个连续的篇章&#xff0c;包括对MFC按钮的美化&#xff0c;菜单栏的美化&#xff0c;标题栏的美化&#xff0c;list列表的美化&#xff0c;直到最后形成一个完整…

【Python】反编译PyInstaller打包的exe

查看exe基本信息 需要反编译的exe 查看exe文件的打包工具&#xff0c;查看exe信息的软件叫Detect It Easy(查壳工具) 由图我们可以看出当前选中的exe文件是由名叫PyInstaller的打包工具打包好的exe 反编译 exe反编译工具&#xff1a;pyinstxtractor.py 使用方法 python py…