当前位置: 首页 > news >正文

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

系列文章链接
数据基础:多维时序数据集简介
论文一:2022 Anomaly Transformer:异常分数预测
论文二:2022 TransAD:异常分数预测

论文链接:TransAD.pdf
代码库链接:https://github.com/imperial-qore/TranAD

这篇文章是基于多变量数据的异常检测,也是基于transformer的一种深度学习方法,作者对前人的工作存在以下两点思考:

  • 在常用的基于深度学习的异常检测方案中,都是采用一定的固定窗口进行样本数据提取,如对于一个时间点位,会提取历史窗口长度为100的数据作为当前点位的数据,然后采用LSTM编码进行数据向量化表征,但是这种表征方式存在缺陷,就是忽略了数据的长期周期性、季节性等规律特性。但是如果要加入这些数据,时序原始数据表征长度就会过长,很难进行建模。
    在这里插入图片描述
  • 真实数据和重构的数据差异比较大时有两种情况:(1)原始数据的噪声;(2)异常事件引起数据异常;而模型需要关注的应该是这些时候的差异性;
    在这里插入图片描述针对上述思考,论文作者提出了两个创新模块:
  • 基于Transformer的时序数据建模;
  • 基于two-phase inference的数据重构;
    在这里插入图片描述
    在这里插入图片描述
    整体架构如上图所示,通过编解码的结构进行网络架构搭建,具体的模块细节包含下面几个:
  1. Phase1对应的粗略重建:如下图所示,其中 W W W表示时序数据邻近窗口点位的时序数据, C C C表示能够获取周期性、季节性特性的长时段时间序列,截至点为当前时间点, 0 ⃗ \vec 0 0 表示的是趋势序列输入的数据权重,在第一个阶段中是和完整序列 C C C大小相匹配的全0向量。在对窗口数据 W W W和完整序列 C C C采用多头注意力进行编码后,将完整序列的编码结果和窗口编码结果采用注意力机制进行计算,并进行解码,重构出两个输出结果 O 1 O_1 O1 O 2 O_2 O2。关于如何进行多头注意力机制的建模就不展开了,可以参考原文。
    在这里插入图片描述
  2. Phase2对应的引导重构:对于输出结果 O 1 O_1 O1 O 2 O_2 O2而言,构建重构损失 ∣ ∣ O 1 − W ∣ ∣ 2 ||O_1-W||_2 ∣∣O1W2 ∣ ∣ O 2 − W ∣ ∣ 2 ||O_2-W||_2 ∣∣O2W2用于反馈给网络, O 1 O_1 O1反馈用于更新网络的focus score。更新好focus score后,对于Decoder1而言,目标是使得重构结果和目标间的差距更小,对于Decoder2而言,目标是使得重构结果和目标间的差距更大,所以对于两个解码器的两个阶段而言,设计了以下损失构建方式: L 1 = ϵ − n ∣ ∣ O 1 − W ∣ ∣ 2 + ( 1 − ϵ − n ) ∣ ∣ O ^ 2 − W ∣ ∣ 2 L_1=\epsilon^{-n}||O_1-W||_2+(1-\epsilon^{-n})||\hat O_2-W||_2 L1=ϵn∣∣O1W2+(1ϵn)∣∣O^2W2 L 2 = ϵ − n ∣ ∣ O 2 − W ∣ ∣ 2 + ( 1 − ϵ − n ) ∣ ∣ O ^ 2 − W ∣ ∣ 2 L_2=\epsilon^{-n}||O_2-W||_2+(1-\epsilon^{-n})||\hat O_2-W||_2 L2=ϵn∣∣O2W2+(1ϵn)∣∣O^2W2
    在这里插入图片描述
  3. 异常得分计算: 1 2 ∣ ∣ O 1 − W ^ ∣ ∣ 2 + 1 2 ∣ ∣ O ^ 2 − W ^ ∣ ∣ 2 \frac{1}{2}||O_1-\hat W||_2+\frac{1}{2}||\hat O_2-\hat W||_2 21∣∣O1W^2+21∣∣O^2W^2超过阈值的则认为是异常;
http://www.lryc.cn/news/115439.html

相关文章:

  • NLPCC 出版部分相关源码记录
  • 【Windbg】通过网络调试windows内核
  • 代码随想录算法训练营之JAVA|第二十四天| 93. 复原 IP 地址
  • 网络安全 Day30-运维安全项目-堡垒机部署
  • 电脑文件夹备份命令
  • RocketMQ Learning(一)
  • libmpv使用滤镜处理视频进行播放
  • Harbor.cfg 配置文件参数详解
  • 模仿火星科技 基于cesium+ 贴地测量+可编辑
  • 模仿火星科技 基于cesium+角度测量+高度测量+可编辑
  • Codeforces の 动态规划
  • 数学建模-爬虫系统学习
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制概述
  • 【力扣刷题 | 第二十五天】
  • GO学习之 函数(Function)
  • Jstack线上问题排查
  • VIM 编辑器: Bram Moolenaar
  • 鸿蒙应用开发指南:从零开始构建一款智能音乐播放器
  • 如何实现对主机的立体监控?
  • 机器学习笔记:李宏毅ChatGPT Finetune VS Prompt
  • 中电金信:逐数兴业 智启未来——“数据二十条”影响之解读 (下)
  • 54款宝藏级AIGC工具分享(claude,Midjourney,Stable Diffusion等)
  • bigemap如何添加在线地图源?
  • 84. 柱状图中最大的矩形
  • 嘉楠勘智k230开发板上手记录(二)--hello world
  • ArcGIS Pro实践技术应用——暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升
  • 学习pytorch
  • 动态SQL实现原理一-动态SQL的使用
  • MyBatis动态sql标签帮你轻松搞定sql拼接
  • Java课题笔记~ 使用 Spring 的事务注解管理事务(掌握)