基于长短期记忆网络和滑动窗口的流数据异常检测方法

论文摘要

针对目前流数据存在数量巨大、生成迅速和概念漂移的特点,提出了一种基于长短期记忆(LSTM)网络和滑动窗口的流数据异常检测方法。

  1. 首先采用LSTM网络进行数据预测,之后计算预测值与实际值的差值。
  2. 对于每个数据,选择合适的滑动窗口,将滑动窗口区间内的所有差值进行分布建模,再根据每个差值在当前分布的概率密度来计算数据异常可能性。

LSTM网络不仅可以进行数据预测,还可以边预测边学习,实时更新调整网络,保证模型的有效性;

而利用滑动窗口可以使得异常分数的分配更为合理。

最后使用在真实数据基础上制造的模拟数据进行了实验。实验结果验证了所提方法在低噪声环境下比直接利用差值进行检测和异常数据分布建模法(ADM)方法的平均曲线下面积(AUC)值分别提高了0. 187和0. 05。

论文解决的问题

概念漂移导致的网络预测不准确异常分数不准确的问题。

更精确的检测流数据中的异常数据。

论文创新点

  1. 使用了堆叠式LSTM模型结构,由于LSTM单元具有遗忘门,网络可以快速学习数据的新特征,实时更新和调整网络,避免因流数据概念漂移问题导致的神经网络预测不准确。使得预测准确率更高。
  2. 对于每一个数据,不直接将预测差值作为异常分数,而是选取一个合适大小的滑动窗口,将窗口内所有差值进行分布建模,再根据差值在分布内的概率密度值来分配当前数据的异常分数大小。

1.(SDLS)模型架构

在这里插入图片描述

2.方法设计

  1. 预测差值计算
    在这里插入图片描述

  2. 异常分数计算
    在这里插入图片描述
    这里你可能对异常分数的来源有疑问,因为你刚才不是说进行建模,然后把分布内的概率密度作为异常分数,而建模又需要用到滑动窗口;你现在怎么滑动窗口是通过异常分数得来的呢?

    其实这里的异常分数就是使用原始方法得来的:直接将预测差值作为异常分数。

    然后在此基础上在获得滑动窗口,然后在计算分布下的异常分数。

综上,异常数据检测算法的伪代码如下所示:
在这里插入图片描述
在这里插入图片描述

参考资料

  1. 概念漂移,我认为可以理解为你根据当前时刻的数据训练的模型,不一定适合下一时刻的数据的预测。
  2. LSTM堆叠层数和time_step区别,这里如果没理解,可以通过论文中的实验验证来理解。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐