异常检测——从经典算法到深度学习》14 对于流数据基于 RRCF 的异常检测

Posted smile-yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常检测——从经典算法到深度学习》14 对于流数据基于 RRCF 的异常检测相关的知识,希望对你有一定的参考价值。

《异常检测——从经典算法到深度学习》

相关:

14. 对于流数据基于 RRCF 的异常检测

2016 Robust random cut forest based anomaly detection on streams
论文下载以及源码地址 github
论文发表于 ICML会议(International Conference on Machine Learning)CCF A
RRCF 的实现论文 下载地址
翻译部分请前去我的个人博客:smileyan.cn

14.1 简要概述论文内容

14.1.1 核心思想与方法

随机森林(Random Forest, RF) 是一种 bagging 算法,这篇论文提到的 RRCF (Robust Random Cut Forest) 是在 RF 的基础上进行改进的,以达到"健壮"的效果。所以这篇论文的核心思想就是,改进 RF 成为 RRCF ,定义与证明一些 RRCF 的性质,并且实验证明 RRCF 的效果。

所以整篇论文应该包括以下几方面内容:

  • 什么是RRCF?
  • RRCF 相对于 RF 改进之处在哪,怎么改进的?
  • RRCF 是如何应用在流数据(即时间序列数据)的异常检测的。

因为定义比较多,我们也将一个一个地往下看。

14.1.2 RRCF 的生成过程

首先了解一下RF的生成过程,这对于继续了解RRCF很有帮助。

集成方法的目标是将多个基本估计器的预测与给定的学习算法相结合,以提高单个分类器的通用性/鲁棒性。集成方法包括两种:Boosting 和 bagging。随机森林是bagging的典型代表。

随机森林的生成过程是可以并行的,也就是说,

  • 每棵树的生成是互不相干的;
  • 每棵树生成对应的数据的采样也是互不相关的(有放回地随机采样)
  • 每棵树的地位都是相等的,这个与boosting思想差别很大。

接着具体到每个树的生成,这与决策树的构建步骤没什么区别。而决策树的生成过程容易理解,参考找工作过程基本上就明白了,首先工资不能低于多少,分为两类,接着年终不低于多少钱,继续分两类等等。

接下来关注 RRCF 的生成过程,也就是论文中的 定义1

定义1(Definition 1 ) 对于点集 S S S,一棵健壮随机分割树以如下方式生成:

  1. 选择一个与 ℓ i ∑ j ℓ j \\frac\\ell_i\\sum_j \\ell_j jji 成比例的随机维度,其中 ℓ i = m a x x ∈ S x i − m i n x ∈ S x i \\ell_i = max_x\\in Sx_i-min_x\\in Sx_i i=maxxSximinxSxi
  2. 选一个 X i ∼ U n i f o r m [ m i n x ∈ S x i , m a x x ∈ S x i ] X_i \\sim Uniform[min_x\\in S x_i, max_x\\in Sx_i] XiUniform[minxSxi,maxxSxi] 也就是从最小到最大的均匀分布。
  3. S 1 = x ∣ x ∈ S , x i ≤ X i S_1=\\x|x\\in S,x_i\\le X_i\\ S1=xxS,xiXi​​​​​ , S 2 = S     S 1 S_2=S\\ \\text\\\\\\ S_1 S2=S  S1​​​​​ 和 基于 S 1 S_1 S1 S 2 S_2 S2 的递归。

与之相关的 定理1

定理 1(Theorem 1)

考虑定义 1 中的算法。让树中节点的权重为相应的维数之和 ∑ i ℓ i \\sum_i \\ell_i ii。给定两个点 u , v ∈ S u,v\\in S u,vS,将 u u u v v v 之间的树距离定义为 u , v u, v u,v 的最小公共祖先的权重。那么,树的距离最小是曼哈顿距离(Manhattan distance) L 1 ( u , v ) L_1(u,v) L1(u,v) ,最大距离是 O ( d log ⁡ ∣ S ∣ L 1 ( u , v ) ) ∗ L 1 ( u , v ) O(d\\log \\frac|S|L_1(u,v))*L_1(u,v) O(dlogL1(u,v)S)L1(u,v)

14.1.3 RRCF 的分割过程

定理 2(Theorem 2)

给定一棵根据 T ( S ) \\mathcalT(S) T(S)​ 生成的树,如果我们删除包含孤立点 x x x​ 以及其父节点(相应地调整祖辈点,如 图2 所示),则生成的树 T ′ T' T​ 的概率与 T ( S − x ) \\mathcalT(S-\\x\\) T(Sx)​ 中生成的概率相同。 同样,我们可以生成一棵树 T ′ ′ T'' T​ 就像从 T ( S   ∪ x ) T(S\\ \\cup \\x\\) T(S x) ​随机抽取一样,当最大深度为 T T T 时它的生成时间复杂度为 O ( d ) O(d) O(d) ,这通常是 ∣ T ∣ |T| T 中次线性 (sublinear) 的。

这个是可以理解的,切割后的剩下的 c c c 就代表了之前它的整个父节点,自然不会发生概率变化。

接下来的 定理3定理4定理5 稍微看一下即可,性能方面的一些考量。

14.1.4 定义异常

首先论文举了个例子,某个人戴帽子换颜色的例子,说实话这个例子不怎么好。

定义2

将点 x x x 的位移(bit-displacement)或移动(displacement)定义为所有其他点的模型复杂度的增加,即,对于集合 Z Z Z ,要捕获 x x x 的外部性(离群性),定义
D I S P ( x , Z ) = ∑ T , y ∈ Z − x P r [ T ] ( f ( y , Z , T ) − f ( y , Z − x , T ′ ) ) DISP(x, Z)=\\sum_T, y\\in Z-\\x\\ \\mathbbPr[T](f(y,Z,T)-f(y,Z-\\x\\,T')) DISP(x,Z)=T,yZxPr[T](f(y,Z,T)f(y,Zx,T))
其中 T ′ = T ( Z − x ) T'=T(Z-\\x\\) T=T(Zx)

1The converse is not true, this is a many-to-one mapping.

反过来不成立,这个是多对一映射。

14.1.5 基于流的森林维护

插入(Insertion): 给定从 R R C F ( S ) RRCF(S) RRCF(S) 分布中抽取的样本 T T T 和点 p ∉ S p \\not \\in S pS,从 R R C F ( S ∪ p ) RRCF(S\\cup \\p\\) RRCF(Sp) 分布中抽取得到样本 T ′ T' T

检测(detection): 给定从 R R C F ( S ) RRCF(S) RRCF(S) 分布中抽取的样本 T T T 和点 p ∈ S p \\in S pS,从 R R C F ( S ∪ p ) RRCF(S\\cup \\p\\) RRCF(Sp) 分布中抽取得到样本 T ′ T' T异常检测——从经典算法到深度学习》14 对于流数据基于 RRCF 的异常检测

《异常检测——从经典算法到深度学习》12 对于复杂 KPI 基于VAE对抗训练的非监督异常检测

《异常检测——从经典算法到深度学习》12 对于复杂 KPI 基于VAE对抗训练的非监督异常检测

《异常检测——从经典算法到深度学习》13 MAD: 基于GANs的时间序列数据多元异常检测

《异常检测——从经典算法到深度学习》13 MAD: 基于GANs的时间序列数据多元异常检测

《异常检测——从经典算法到深度学习》16 基于VAE和LOF的无监督KPI异常检测算法