异常检测算法。
References
基于时间序列的异常检测| RexKing6’s Note, http://blog.rexking6.top/categories/AIOps/
Anomaly detection related books, papers, videos, and toolboxes
https://pyod.readthedocs.io/en/latest/(异常检测算法包)
(https://www.zhihu.com/question/280696035)
https://zhuanlan.zhihu.com/p/30169110
https://www.youtube.com/watch?v=5vrY4RbeWkM&t=981s
https://www.youtube.com/watch?v=5vrY4RbeWkM&t=118s
https://www.safaribooksonline.com/library/view/strata-hadoop/9781491976166/video301647.html
https://www.youtube.com/watch?v=12Xq9OLdQwQ&t=2971s
时间序列异常检测:
https://blog.statsbot.co/time-series-anomaly-detection-algorithms-1cef5519aef2
https://www.xenonstack.com/blog/data-science/anomaly-detection-time-series-deep-learning/
https://www.xenonstack.com/blog/data-science/time-series-forecasting-machine-deep-learning/
https://paperswithcode.com/task/time-series-prediction
基于Keras的LSTM多变量时间序列预测- 知乎 多变量!
检测
Offline
统计法
基于距离的方法
基于密度的方法
基于聚类的方法
基于划分的方法
基于线性的方法
基于非线性的方法
针对非数值型的方法
上述方法都需要先获得完整的数据,属于离线算法。而不能进行实时检测。
GP
基于单类分类高斯过程(密度)异常序列检测OCC_GP。(Gaussian Process)
目标:尽可能早地发现数据流的异常$\longrightarrow$尽可能早地预警。
难度:
- 高维度,小样本
- 软件工程,程序调试能力(边界情况的预测)
- 异常类的样本常常很难获取,缺少负例(失败)样本
- 自适应?
- 如何利用专业的领域故障分析能力解释结果?
核心:【优化函数】基于4种高斯和函数。(混合高斯:就是叠加的正态函数)
- 本质:函数变量f的任意组合,服从均值为0的高斯联合分布$p(f|X)=N(o,K)$。
高斯过程GP算法【分类】:
- 高斯过程即正态随机过程,具有灵活的非参数特性,对预测结果进行有效估计。
- 基于贝叶斯方法和训练数据来求出高斯和函数的参数(参数估计,同时利用EM算法迭代优化)。
- 先验传递(转移)
思路:(如图)
- 参数离散化,构建样本空间
- 绘制时序参数包络线
- 分析异常
一些小问题:
- 值的归一化(逻辑回归)$\longrightarrow$导向分类问题
- 包络线与时间序列位置相关,可能要利用(隐马尔可夫建模,以及模式识别的定位)
- 如何度量不确定性(检测的粗糙度)
发射任务:
- 恒定路线预测
- 多路径预测
HTM
层级时序存储器算法(Hierarchical Temporal Memory,HTM),皮质算法。
- 模拟人体大脑新皮质层(noecortex)
- 时空数据流建模
- 持续学习(Online)幵依赖于储存的大量模式序列
自调节⟶(新常态?)
主要是检测波动式异常
长期序列高斯分布(基准函数),短期序列高斯分布(异常检测函数)。
- 若检测到短期异常,还需要验证假阳性
- 需要调参:短期窗口大小的选择(颗粒度)
分布序列预测
多个分支序列(映射到布隆过滤器?)。
- 设置多个分支的误差函数(如方差),如果方差过高就异常。
- 也可以计算两个序列的联合概率异常加权得分。
- 多个联合相关性模型(短期异常压缩)【高斯协方差核函数】
- 合并在时间上接近但不完全一致的分支异常
相似模式识别?(比如,设置一个短期窗口的相似哈希队列)
- 一个混合的序列可能还需要基函数分解(如,Fourier解析。需要专业知识,必须要知道基函数)
(领域知识的应用)
两类任务:
- 时序⟶匹配、预测
- 平面数据(不带时序)⟶数据应用
RNN
时间序列异常检测是一个序列标注问题。
- 0代表正常状态,1代表异常状态。
- 也可能分成更多类,但本质不变
- 所使用的输入、输出是等长的
有现成的库,比较好弄。
没有监督,比较不好弄。
LSTM
端到端的基于LSTM的异常检测流程。
GRU
预测
AE/VAE 周期性
AE
需要label
,不好弄。
ARIMA 稳定性
频谱分析/小波分析 不稳定性
预测+检测
利用预测结果来检测异常。
负采样
神技:无监督变为监督。
从某个时间窗口外采样,标为负样本。