Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications
Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications
论文链接:https://arxiv.org/pdf/1802.03903.pdf
关键词:Donut算法
网络结构和随机变量
- prior:
- z: $p_\theta(z) \sim N(0, I) $
- x: vector of : $x_{t-W+1},…,x_t $
- posterior:
- x: p θ ( x ∣ z ) = N ( μ x , σ x 2 I ) p_{\theta}(x|z) = N(\mu_x, \sigma_x^2 I) pθ(x∣z)=N(μx,σx2I)
- z: q ϕ ( z ∣ x ) = N ( μ z , σ z 2 I ) q_\phi(z|x)=N(\mu_z, \sigma_z^2I) qϕ(z∣x)=N(μz,σz2I)
- hidden features:(通过Hidden Layers–full-connected layer【简单的结构可以更好的解释网络】进行提取)
- x: f ϕ ( x ) f_\phi(x) fϕ(x)
- z: f θ ( z ) f_\theta(z) fθ(z)
- Gaussian parameters:(通过hidden feature进行生成)
- linear layers:
- μ x = W μ x T f θ ( z ) + b μ x \mu_x=W^T_{\mu_x}f_\theta(z)+b_{\mu_x} μx=WμxTfθ(z)+bμx
- μ z = W μ z T f ϕ ( x ) + b μ z \mu_z=W^T_{\mu_z}f_\phi(x)+b_{\mu_z} μz=WμzTfϕ(x)+bμz
- SoftPlus:(加上一个很小的非负数
ϵ
\epsilon
ϵ)
- σ x = S o f t P l u s [ W σ x T f θ ( z ) + b σ x ] + ϵ \sigma_x=SoftPlus[W^T_{\sigma_x}f_\theta(z)+b_{\sigma_x}] + \epsilon σx=SoftPlus[WσxTfθ(z)+bσx]+ϵ
- σ z = S o f t P l u s [ W σ z T f ϕ ( x ) + b σ z ] + ϵ \sigma_z=SoftPlus[W^T_{\sigma_z}f_\phi(x)+b_{\sigma_z}]+\epsilon σz=SoftPlus[WσzTfϕ(x)+bσz]+ϵ
- S o f t P l u s [ a ] = l o g [ e x p ( a ) + 1 ] SoftPlus[a] = log[exp(a)+1] SoftPlus[a]=log[exp(a)+1]
- linear layers:
模型重构常规模式的步骤:
这幅图体现的过程是,通过使用模型,对测试集中有missing points的数据进行重构还原,更具体的细节可以在Bagel算法论文中看到,如下图:
- 在训练过程中,并注入数据填补缺失的内容,而是简单的将其值设置为0
- 上面的数据注入,实在测试集上,仅当模型训练完,才进行缺失数据的注入(使用Donut生成的片段)
训练细节
- SGVB 算法
- re-paramerterization:
- 原本: z ∼ N ( μ z , σ z 2 I ) z \sim N(\mu_z, \sigma^2_zI) z∼N(μz,σz2I)
- 改为: ξ ∼ N ( 0 , I ) , z ( ξ ) = μ z + ξ ⋅ σ z \xi \sim N(0, I), \qquad z(\xi)=\mu_z+\xi\cdot\sigma_z ξ∼N(0,I),z(ξ)=μz+ξ⋅σz
- re-paramerterization:
目标函数:
L
~
(
x
)
=
E
q
ϕ
(
z
∣
x
)
[
∑
w
=
1
W
α
w
l
o
g
p
θ
(
x
w
∣
z
)
+
β
l
o
g
p
θ
(
z
)
−
l
o
g
q
ϕ
(
z
∣
x
)
]
\widetilde{L}(x) = E_{q_\phi(z|x)}[\sum^W_{w=1} \alpha_w logp_\theta(x_w|z) + \beta logp_\theta(z)-logq_\phi(z|x)]
L
(x)=Eqϕ(z∣x)[w=1∑Wαwlogpθ(xw∣z)+βlogpθ(z)−logqϕ(z∣x)]
- α w = 1 时 表 示 x w 不 是 异 常 或 者 缺 失 点 ; α w = 0 , 则 表 示 x w 是 非 正 常 点 , 直 接 将 异 常 排 除 \alpha_w=1时表示x_w不是异常或者缺失点;\alpha_w=0,则表示x_w是非正常点,直接将异常排除 αw=1时表示xw不是异常或者缺失点;αw=0,则表示xw是非正常点,直接将异常排除
- β = ( ∑ w = 1 W α w ) / W , 当 正 常 点 越 多 , 噪 点 所 起 作 用 也 越 大 \beta = (\sum^W_{w=1}\alpha_w)/W, 当正常点越多,噪点所起作用也越大 β=(∑w=1Wαw)/W,当正常点越多,噪点所起作用也越大
- 注意到, α w \alpha_w αw 其实表示人为的标注,为0的值越多表示人工标注越多,当然如果没有任何标注,算法也能继续运行。这一点使得该算法能很好的处理少量标注的情况
- 函数E的计算方式如下: E q ϕ ( z ∣ x ) [ x ] = 1 N ∑ i N x i E_{q_\phi(z|x)}[x] = \frac{1}{N}\sum^N_i x^i Eqϕ(z∣x)[x]=N1∑iNxi, N为 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)的样本数