【论文阅读】基于深度学习的时序异常检测——Anomaly Transformer

系列文章链接
论文一:2022 Anomaly Transformer

文章目录

  • 理论概述
  • 代码实战

论文链接: Anomaly Transformer.pdf
代码链接: https://github.com/thuml/Anomaly-Transformer
视频讲解(原作者禁止转载,联系的话侵删): https://www.bilibili.com/video/BV1CN4y1A7x6/?spm_id_from=333.337.search-card.all.click&vd_source=c912801c215d811162cae4db751b0768

理论概述

本文是清华大学研究生提出的一种异常检测模型,是基于transformer针对时序数据进行编码的方案,整体方案让人耳目一新。

本文的创新点总结

  1. 提出了Anomaly-Attention模块,该模块有两大亮点:
    2.1 prior-association:如下图上半部分所示,采用高斯分布去拟合样本时间点位和邻近点位的数据分布,通过调整参数 σ \sigma σ得到高斯先验分布,更注重局部数据分布, l l l层的高斯分布计算表示为: P l = R e s c a l e ( [ 1 2 π σ i e x p ( − ∣ j − i ∣ 2 2 σ i 2 ) ] i , j ∈ 1 , 2 , . . . , N ) P^l=Rescale([\frac{1}{\sqrt {2\pi\sigma_i}}exp(-\frac{|j-i|^2}{2\sigma_i^2})]_{i,j\in{1,2,...,N}}) Pl=Rescale([2πσi 1exp(2σi2ji2)]i,j1,2,...,N)
    在这里插入图片描述
    2.2 series-association:采用transformer中的注意力机制进行时序数据建模,拟合上下文点位和目标样本点位间的权重关系,用于表示点位和更大范围内的上下文数据间的关联性,更注重较大范围内的信息,如上图下半部分所示, l l l层的注意力关联计算为: S l = s o f t m a x ( Q K T d m o d e l ) S^l=softmax(\frac{QK^T}{\sqrt{d_{model}}}) Sl=softmax(dmodel QKT)正如上图右边所示,对于正常点位而言,其对应临近点高斯分布和上下文注意力分布之间差距会更大,因为正常点位与上下文时序数据间关联更大;对于异常点位而言,它和邻近点位以及上下文时序数据的关联性较小,属于比较离群的状态,因此异常点位的两种分布差异很小;可以通过这种差异性来区分正常点位和异常点位(👍);
  2. 提出了一种新的重构损失构建方法: L t o t a l ( X ^ , P , S , λ ; X ) = ∣ ∣ X − X ^ ∣ ∣ F 2 − λ ∗ ∣ ∣ A s s D i s ( P , S ; λ ; X ) ∣ ∣ 1 L_{total}(\hat X,P,S,\lambda;X)=||X-\hat X||^2_F-\lambda*||AssDis(P,S;\lambda;X)||_1 Ltotal(X^,P,S,λ;X)=∣∣XX^F2λ∣∣AssDis(P,S;λ;X)1左边计算的是预测值和真实数据间的重构损失,差距越大表示数据越异常,右边表示的是高斯分布和注意力分布间的差值损失,差值越大表示数据越正常,因此是减去该损失,以此构建的重构损失能够让模型更好地学习到正常点位和异常点位之间的差异性;,训练过程中如果想让分布间的距离变大,就容易导致高斯分布训练出来的 σ \sigma σ趋于0,最终呈现出如下图的分布:在这里插入图片描述
    为此,他们设计了一种技巧叫Minimax Strategy,在最小化阶段,先固定注意力模块的权重不变,让高斯分布的拟合向注意力权重分布靠近,让 σ \sigma σ不至于过拟合;然后在最大化二者距离的时候,固定高斯分布的参数,训练注意力模块的权重,让最终的两种分布的距离变大,如下图所示:在这里插入图片描述
  3. 最终的异常分通过下式计算: A n o m a l y S c o r e ( X ) = s o f t m a x ( − A s s D i s ( P , S ; λ ; X ) ) ⨀ [ ∣ ∣ X − X ^ ∣ ∣ 2 2 ] i = 1 , 2 , . . . , N AnomalyScore(X)=softmax(-AssDis(P,S;\lambda;X))\bigodot [||X-\hat X||^2_2]_{i=1,2,...,N} AnomalyScore(X)=softmax(AssDis(P,S;λ;X))[∣∣XX^22]i=1,2,...,N通过将重构差异和分布距离进行联合能够更好地进行异常检测;

不过通篇阅读下来,会有一个问题,在实际生产过程中,实时预测是不会拿到后续数据的,都是基于历史数据对当前点位的状态进行预测,但是从文中描述来看都是基于上下文、前后点位构建的数据表征,看着不是很合理。

代码实战

数据预处理的方式没给出,有点没看明白数据是怎么处理的,待跟进;

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

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

相关文章

九、ESP32控制1602LCD屏幕显示内容

1. 运行效果 2. 1602简介 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字) 市面上字符液晶大多数是基于HD44780液晶芯片的 需要8根数据线来传输要显示的数据,当然还

nvm下载安装配置

一、作用 nvm是node版本管理的工具,具有管理、下载、切换node版本等能力。经常不同项目需要依赖不同版本的node,此时nvm就能有效的解决node版本切换的问题。 二、nvm下载安装配置 (1)安装包地址 https://github.com/coreybutl…

帕累托森林:IEEE Fellow唐远炎院士出任「儒特科技」首席架构官

导语 「儒特科技」作为一家拥有全球独创性极致化微内核Web引擎架构的前沿科技企业,从成立即受到中科院软件所和工信部的重点孵化及扶持,成长异常迅速。前不久刚正式官方融入中国五大根操作系统体系,加速为其下游上千家相关衍生OS和应用软件企…

css position: sticky;实现上下粘性布局,中间区域滚动

sticky主要解决的问题 1、使用absolute和fixed中间区域需要定义高度2、使用absolute和fixed底部需要写padding-bottom 避免列表被遮挡住一部分&#xff08;底部是浮窗的时候&#xff0c;需要动态的现实隐藏&#xff09; <!DOCTYPE html> <html lang"en"&…

如何创建51单片机KEIL工程

如何创建51单片机KEIL工程步骤&#xff1a; &#xff08;1&#xff09;打开keil软件&#xff0c;点击工具栏-Project&#xff0c;选择创建新的工程&#xff1b; &#xff08;2&#xff09;然后给工程命名&#xff0c;文章以project为例&#xff0c;然后点击保存 &#xff08…

Jtti:Ubuntu静态IP地址怎么配置

在 Ubuntu 中配置静态 IP 地址需要编辑网络配置文件。以下是在 Ubuntu 20.04 版本中配置静态 IP 地址的步骤&#xff1a; 打开终端&#xff0c;以管理员身份登录或使用 sudo 权限。 使用以下命令打开网络配置文件进行编辑&#xff1a; sudo nano /etc/netplan/00-installer-…

python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、isdigit() python关于 isdigit() 内置函数的官方定义&#xff1a; S.isdigit() -> bool Return True if all characters in S are digitsand there is at least one character in S, False otherwise.翻…

nodejs环境部署

1.前言 前端的打包必须要使用nodejs环境 2.部署 下载安装包&#xff0c;在下面的路径中找到适合自己项目合适的版本在下载&#xff0c;可以问一下前端开发人员 路径&#xff1a;Index of /dist/ 我这里是下载了14.21.3版本的nodejs环境,上传到需要部署的主机中 mkdir /opt…

实时服务器监控

为 IT 基础架构建立适当的监控系统的重要性不容低估&#xff0c;管理员使用的监控解决方案可确保通过消除瓶颈和优化资源使用以获得最佳性能来充分发挥基础架构的潜力。 多年来&#xff0c;IT 基础架构变得越来越复杂&#xff0c;对网络监控的需求也随之增加&#xff0c;虽然网…

创建型模式-单例模式

文章目录 一、创建型模式1. 单例设计模式1.1 单例模式的结构1.2 单例模式的实现&#xff08;1&#xff09;饿汉式-方式1&#xff08;静态变量方式&#xff09;&#xff08;2&#xff09;饿汉式-方式2&#xff08;静态代码块方式&#xff09;&#xff08;3&#xff09;懒汉式-方…

Sql server 2005 卸载之后重新安装

Sql server 2005 卸载之后重新安装 Sql sercer 2005在重新安装之前先要进行卸载操作&#xff0c;由于Sql sercer 2005组件都是分散的&#xff0c;所以卸载时要找到对应的位置一个一个卸载&#xff0c;不卸载干净的情况下再次安装时会出现很多问题&#xff0c;导致安装失败。这…

python编写ocr识别图片汉字

当你需要构建一个简单的图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;并在其中实现光学字符识别&#xff08;OCR&#xff09;功能时&#xff0c;wxPython是一个强大而灵活的选择。wxPython是一个基于Python的跨平台GUI开发框架&#xff0c;结合了wxWidgets C库…

matlab使用教程(10)—脚本和函数

1.概述 MATLAB 提供了一个强大的编程语言和交互式计算环境。您可以使用此语言在 MATLAB 命令行中一次输入一个命令&#xff0c;也可以向某个文件写入一系列命令&#xff0c;按照执行任何 MATLAB 函数的相同方式来执行这些命令。使用 MATLAB 编辑器或任何其他文件编辑器可以创建…

【源码分析】Nacos如何使用AP协议完成服务端之间的数据同步?

AP节点的同步使用的是异步任务消息队列的方式来实现的。 取出任务之后将会放入到一个List集合中。 然后会发现任务的执行是由条件的。 首先是当前集群的节点数量等于1000&#xff0c;那么此时会直接开始同步&#xff0c;当然这个条件在小项目中不会成立&#xff0c;所以还有…

无人车沿着指定线路自动驾驶与远程控制的实践应用

有了前面颜色识别跟踪的基础之后&#xff0c;我们就可以设定颜色路径&#xff0c;让无人车沿着指定线路做自动驾驶了&#xff0c;视频&#xff1a;PID控制无人车自动驾驶 有了前几章的知识铺垫&#xff0c;就比较简单了&#xff0c;也是属于颜色识别的一种应用&#xff0c;主要…

如何在业务中体现TCC事务模型?

在分布式系统设计中&#xff0c;随着微服务的流行&#xff0c;通常一个业务操作被拆分为多个子任务&#xff0c;比如电商系统的下单和支付操作&#xff0c;就涉及到了创建和更新订单、扣减账户余额、扣减库存、发送物流消息等&#xff0c;那么在复杂业务开发中&#xff0c;如何…

关于丢失安卓秘钥的撞sha-1值的办法

实验得知&#xff0c;安卓sha-1和keytool生成秘钥签名文件的时间有关。 前提条件是&#xff0c;开发者必须知道生成秘钥的所有细节参数 以下是撞文件代码&#xff08;重复生成&#xff09; import time import osidx 0while True:cmdkeytool -keyalg RSA -genkeypair -alia…

比特鹏哥-数据类型和变量【自用笔记】

这里写目录标题 1.数据类型介绍字符&#xff0c;整型&#xff0c;浮点型&#xff0c;布尔类型 2.signed 和unsigned3.数据类型的取值范围sizeof 展示字节大小--- 计算机中单位&#xff1a;字节 4.变量 常量4.1 变量创建变量&#xff08;数据类型 变量名&#xff09;创建变量的时…

【Spring Cloud 七】Sleuth+Zipkin 链路追踪

Sleuth链路追踪 系列博客背景一、 什么是链路追踪二、为什么要有链路追踪三、Sleuth与ZipkinSleuthZipkinSleuth和Zipkin的关系是什么&#xff1f; 四、使用Sleuthzipkin进行链路追踪4.1下载zipkin4.2案例说明项目代码服务提供者pom文件yml配置文件项目启动类controller 抽离出…

Tensorflow2-初识

TensorFlow2是一个深度学习框架&#xff0c;可以理解为一个工具&#xff0c;有谷歌的全力支持&#xff0c;具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。 1、环境的搭建 1.1 Anaconda3的安装 https://www.anaconda.com/ Python全家桶&#xff0c;包括Python环境和…