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

系列文章链接
论文一:2022 Anomaly Transformer:异常分数预测
论文二:2022 TransAD:异常分数预测

论文链接: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σi2∣j−i∣2)]i,j∈1,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)=∣∣X−X^∣∣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))⨀[∣∣X−X^∣∣22]i=1,2,...,N通过将重构差异和分布距离进行联合能够更好地进行异常检测,当预测的异常分数超过某个阈值时,就认为当前点位为异常点位;
相关推荐
天蓝蓝235282 小时前
PyTorch开源的深度学习框架
pytorch·深度学习·开源
哦豁灬2 小时前
NCNN 学习(1)-编译与算子注册
深度学习·学习·ncnn
好悬给我拽开线2 小时前
【论文阅读】Act3D: 3D Feature Field Transformers for Multi-Task Robotic Manipulation
论文阅读
中科微星3 小时前
相位型SLM硬件产品面型性能提升
图像处理·人工智能·深度学习
Yorelee.4 小时前
保研面试问题总结
深度学习·动态规划
浊酒南街4 小时前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.1-2.2
人工智能·深度学习·机器学习
#include<菜鸡>5 小时前
深度学习-图像处理篇1.1-1.2神经网络
图像处理·深度学习·神经网络
好悬给我拽开线5 小时前
【论文阅读】Grounding Language with Visual Affordances over Unstructured Data
论文阅读
零澪灵5 小时前
ChartLlama: A Multimodal LLM for Chart Understanding and Generation论文阅读
论文阅读·python·自然语言处理·数据分析·nlp
#include<菜鸡>5 小时前
动手学深度学习(pytorch土堆)-06损失函数与反向传播、模型训练、GPU训练
人工智能·pytorch·深度学习