Deep Structured Energy Based Models for Anomaly Detection论文阅读
本文是一篇基于Deep Structured Energy方法来进行异常检测的文章,该模型的主要特点是其可以通用到各种类型的dataset
上面,包括spatial data(音频序列),static data(特定的输入向量),sequential data(图像等)。该模型的训练算法是基于一种score matching算法,其是通过EBM网络连接了一个autoencoder来替代比较繁琐,计算量较大的复杂采样方法。本文提出了两套异常处理的检测准则——energy score和reconstruction error来作为误差评分标准。我们将主要从行文逻辑,算法理论,模型应用三个方面来对这篇文章进行梳理。
逻辑
异常检测问题的核心是如何找到一个模型分布,比较有效地模拟数据自然产生的过程。从而来分辨我们所需要检测的样本是异常的概率。
比起基础的PCA等传统算法,学术界更加倾向于使用深度学习的算法来进行异常检测,因为深度神经网络能够抽象出更多的特征。但是深度学习网络在异常检测方面还存在着如下的一些问题:
(1)如何利用一个深度学习模型有效地模拟数据的产生过程。
(2)如何构造一个模型能够比较广泛地应用于各种类型的数据(static data,sequential data,spatial data)
(3)如何构造一个比较高效的训练算法让其能够更好的应用。
(4)如何选择一个统计推理准则应用于异常检测。
比较早提出的深度学习模型是EMBs模型,该模型应用了一种负对数概率 p ( x ; θ ) = e − E ( x ; θ ) Z ( θ ) p(x;\theta)=\frac{e^{-E(x;\theta)}}{Z(\theta)} p(x;θ)=Z(θ)e−E(x;θ)来作为网络的能量来进行概率密度估计,但是EMBs的缺点一方面是 Z ( θ ) = ∫ x e − E ( x ; θ ) Z(\theta)=\int_x e^{-E(x;\theta)} Z(θ)=∫xe−E(x;θ)是很难求的,其只能通过MCMC(蒙特卡洛马尔科夫采样方法,如吉布斯采样法)来进行求解。另一方面,提出的EMBs还不太成熟,对于不同的数据类型其要构造不同的算法和网络,比较复杂。
后续有许多改进算法的提出,比如score matching算法,简化了用MLE 进行优化的计算部分。还有使用了VAE(变分编码器算法),相对于蒙特卡洛估计方法,VAE模型的计算更加简单一些,其只需要用简单的SGD模型来进行参数优化。
算法理论
EBMs
EBMs算法已经在上面简单介绍过,其能量表述形式为: p ( x ; θ ) = e − E ( x ; θ ) Z ( θ ) p(x;\theta)=\frac{e^{-E(x;\theta)}}{Z(\theta)} p(x;θ)=Z(θ)e−E(x;θ)
RBM算法
RBM算法采用了如下的能量表达形式: E ( x ; θ ) = 1 2 ∥ x − b ′ ∥ 2 2 − ∑ j = 1 K g ( W j T x + b j ) (1) E(x;\theta)=\frac{1}{2} \|x-b^{'}\|_2^2-\sum_{j=1}^Kg(W_j^Tx+b_j) \tag{1} E(x;θ)=21∥x−b′∥22−j=1∑Kg(WjTx+bj)(1)
其将W和b作为网络训练参数,利用多个RBM网络的组合可能能够获得比较好的训练效果,但是相比而言,RBM神经网络依然比deterministic neural network更加困难一些。
Denoising Autoencoders and Score Matching算法
比较典型的Autoencoders优化如下算式:
∑ i = 1 N ∥ x i − f ( x i ; θ ) ∥ 2 2 (2) \sum_{i=1}^N \|x_i-f(x_i;\theta)\|_2^2\tag{2} i=1∑N∥xi−f(xi;θ)∥22(2)
其中 f ( ; θ ) f(;\theta) f(;θ)是个reconstruction function
还有一种比较有趣的版本是:
∑ i = 1 N E ϵ ∥ x i − f ( x i + ϵ ; θ ) ∥ 2 2 (3) \sum_{i=1}^NE_{\epsilon}\|x_i-f(x_i+\epsilon;\theta)\|_2^2\tag{3} i=1∑NEϵ∥xi−f(xi+ϵ;θ)∥22(3)
这里给输入样本添加了一个高斯扰动。( ϵ ∼ N ( 0 , σ 2 I ) ) \epsilon\sim N(0,\sigma^2I)) ϵ∼N(0,σ2I))
DAE方法和RBM方法是有联系的,对RBM算法使用score matching算法进行估计,SM算法是MLE算法的一种替代,MLE是直接最大化样本的似然概率,而SM算法则是对如下误差函数进行最小化:
J ( θ ) = 1 2 ∫ x p x ( x ) ∥ ψ ( x ; θ ) − ψ x ( x ) ∥ 2 2 d x (4) J(\theta)=\frac{1}{2}\int_x p_x(x)\| \psi(x;\theta)-\psi_x(x)\|_2^2dx\tag{4} J(θ)=21∫xpx(x)∥ψ(x;θ)−ψx(x)∥22dx(4)
其中 p x ( x ) p_x(x) <