搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货
第十五章 异常检测
15.1 问题的动机
15.1.1 异常检测的例子
假设我们是飞机引擎制造商,在引擎制造生产线上,我们要进行质量控制测试。为了进行测试,我们会收集一些列飞机引擎的特征变量,例如引擎运转时产生的热量或者引擎的震动等等。之后,我们把数据画成图,可能如下图所示:
上图中每个查代表的都是无标签的数据。这样,**异常检测(anomaly detection)**问题可以定义如下:我们假设现在我们制造了一个新的引擎,异常检测问题就是我们希望知道这个新的飞机引擎是否有某种异常或者说我们希望判断这个引擎是否需要进一步测试,因为如果它看起来像一个正常的引擎,那么就可以直接发送给客户而不需要进一步的测试,如下图所示:
15.1.2 异常检测
异常检测更加正式的定义:我们有一些数据并假设它们都是正常的(不是异常的),我们需要一个算法来告诉我们一个新的样本数据是否是异常的。
我们要采取的方法是,给定无标签的训练集,我们对数据进行建模,即 p ( x ) p(x) p(x)(概率模型),之后我们会设定一个阈值,如:
- p ( x t e s t ) < ϵ p(x_{test})<\epsilon p(xtest)<ϵ,标记为异常。
- p ( x t e s t ) ≥ ϵ p(x_{test}) \geq \epsilon p(xtest)≥ϵ,标记为正常。
例如在上图中,中心点的概率相当大,而稍微远离中心区域的点概率会小一些,更远的地方的点它们的概率将更小,而在这这歪的点将成为异常点,
15.1.3 异常检测应用案例
- 欺诈检测。假设某网站有许多用户,并且大家都在从事不同的活动。我们可以建立一个模型来表示用户表现出各种行为的可能性,之后就能通过它来看哪些用户的 p ( x ) < ϵ p(x)<\epsilon p(x)<ϵ来发现网站上奇怪的用户,从而让网站防止欺诈行为。
- 工业制造。例如之前的飞机引擎制造。
- 数据中心的计算机监控。
15.2 高斯分布
15.2.1 高斯(正态)分布(Gaussian/Normal distribution)
假设 x x x是一个实数的随机变量,如果 x x x的概率分布服从高斯分布,那么它将记做 x x x~ N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2)。这里的 N N N表示normal。高斯分布有两个参数:
- 均值 μ \mu μ。 μ \mu μ控制钟形曲线的中心位置。
- 方差 σ 2 \sigma^2 σ2。 σ \sigma σ(标准差)控制这个钟形曲线的宽度。
高斯分布图像如下:
这个曲线控制了 x x x取不同值时的概率。高斯分布的数学公式如下:
p ( x ; μ , σ 2 ) = 1 2 π σ e x p ( − ( x − μ ) 2 2 σ 2 ) p(x;\mu,\sigma^2)=\frac{1}{\sqrt[]{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x;μ,σ2)=2πσ1exp(−2σ2(x−μ)2)
15.2.2 高斯分布的例子
当 μ \mu μ发生改变时,曲线发生平移,当 σ \sigma σ发生改变时,曲线的“高低胖瘦”发生改变。但是无论参数如何变化,曲线与x轴围成的面积始终为1。
15.2.3 参数估计
现假设我们有一个含有 m m m个数据的训练样本,它们都是实数。参数估计(parameter estimation)问题就是假设这些样本来自一个高斯分布的总体,但我们不知道这个高斯分布的参数,所以我们要估计出这些参数值。中心位置就是对全部样本求平局值,宽度由已知的 μ \mu μ求得,即:
μ = 1 m ∑ i = 1 m x ( i ) σ 2 = 1 m ∑ i = 1 m ( x ( i ) − μ ) 2 \mu=\frac{1}{m}\sum_{i=1}^mx^{(i)}\\ \sigma^2=\frac{1}{m}\sum_{i=1}^m(x^{(i)}-\mu)^2 μ=m1i=1∑mx(i)σ2</