学习笔记-异常检测(Anormaly Detection)

(这一章已经学了好常一段时间了,现在才有时间来写总结,全凭记忆了)

问题由来

检测发动机是否正常
我们已有一些针对发动机检测的指标,和这些指标对应的检测值,我们需要根据一批新的检测值,确定一个发动机是否异常。
学习笔记-异常检测(Anormaly Detection)

1. Density estimation

Density estimation的思想是:在基于测量指标建立的坐标系里,正常样本会出现在一定的分布范围内,通过计算新样本与正常样本们的距离,来判断新样本是否正常。
学习笔记-异常检测(Anormaly Detection)

2. Gaussian distribution

高斯分布又称正态分布。高斯分布的形状由均值和标准差决定。以下是几个不同的高斯分布:
学习笔记-异常检测(Anormaly Detection)
从图上可以发现,标准差的值越小,形状越陡尖。
相应的,如果知道一组数据服从高斯分布,可以用观察到的样本的均值作为高斯分布的均值,观察到的样本的标准差作为该高斯分布的标准差。
学习笔记-异常检测(Anormaly Detection)

3. Algorithm

1) 筛选那些能够显示异常样本信息的特征;
2) 计算这些特征所属的正态分布;
3) 对于新样本,分别计算在不同特征类里面得到该样本特征值的概率,将这些概率值相乘,得到最终的预测概率值p;如果该p值小于阈值,则判定为异常样本。
学习笔记-异常检测(Anormaly Detection)
例子如下:
学习笔记-异常检测(Anormaly Detection)
在该例子里,需要分别计算新样本在x1和x2里的分布概率值,然后将两者相乘最后与阈值比较。

4. Anormaly Detection vs. supervised learning

异常检测策略与监督学习的区别:
异常检测适用于阳性样本很少而阴性样本很多的任务;而监督学习需要大量的阳性和阴性样本。
异常检测能够检测出各种各样的异常样本,并且适合检测那些算法很难学习到的异常样本;监督学习则需要足够多的阳性样本去学习阳性样本的特征,并且只能检测到与训练集里相似的阳性样本。因此对于未来遇到的与训练集里的阳性样本不相似的阳性样本时,异常检测比监督学习更有可能将它们预测为阳性。
学习笔记-异常检测(Anormaly Detection)
异常检测和监督学习各自的应用场景如下:
学习笔记-异常检测(Anormaly Detection)

5. Choosing what features to use

被选作异常检测的特征需要符合正态分布,那么对于那些本身不符合正态分布的特征,可以经过适当的转换,将其变成符合正态分布的形式,常用转换方式如log转换。
学习笔记-异常检测(Anormaly Detection)
异常检测过程中的错误分析
我们希望正常样本的p值很大,而异常样本的p值很小。而经常遇到的问题是,正常样本和异常样本的p值差不多。
学习笔记-异常检测(Anormaly Detection)

6. Multivariate Gaussian distribution

多元高斯分布:之前我们的分析过程都是认为各特征相互独立,但是实际情况比这复杂,各特征之间常相互影响。对于这种情况,如果再对各特征独立建立正态分布就不太合适了。
学习笔记-异常检测(Anormaly Detection)
以二元变量情况为例,如果认为这两个变量相互独立,那么所得到的分布形式只能是类似以下的情况:(只是在水平轴和垂直轴变化)
学习笔记-异常检测(Anormaly Detection)
然而如果同时考虑了二元变量之间的相互作用,那么所得的分布形式将变得更加丰富:
学习笔记-异常检测(Anormaly Detection)

7. Anomaly detection using the multivariate gaussian distribution

多元正态分布的数学公式如下:
学习笔记-异常检测(Anormaly Detection)
基于多元正态分布的公式,预测新样本是否为异常样本的公式如下:
学习笔记-异常检测(Anormaly Detection)
对比多元高斯模型和原始模型,多元高斯模型能够自动寻找变量之间的关系,相应的,它的计算过程也会更加复杂。
学习笔记-异常检测(Anormaly Detection)

注:如无特殊说明,以上所有图片均截选自吴恩达在Coursera开设的机器学习课程的课件ppt.