《Practical Machine Learning A New Look at Anomaly Detection》——实用机器学习, 异常检测的新看法
本文照抄论文主要内容加上个人理解,很多地方是翻译是机翻,水平有限,应该有不少语句不通的地方。
《实用机器学习,异常检测的新看法》——泰德·邓宁和艾伦·弗里德曼
章节:
1. 展望未来
2.异常检测的形态
3.用“t-摘要”实现阈值自动化.
4. 更复杂的自适应模型
5.突发事件的异常
6.杜绝网络钓鱼许可!
7.异常检测的未来
1. 展望未来
In fact, one way to think about when to turn to anomaly detection is this: Anomaly detection is about finding what you don’t know to look for.
事实上,考虑何时转向使用异常检测的一种方法是:异常检测是查找您不知道要查找的是什么的内容。
异常检测程序必须发现数据本身中有趣的模式或连接,探测器首先识别异常检测的最重要方面:查找正常值。模型完成此项后,机器学习程序就可以发现异常值,换句话说,这些数据不属于正常值。
当您不知道要查找什么时,请使用异常检测。有时,此发现过程为分类器定义感兴趣的类别提供了有用的初步阶段。
在本文中,我们将向您展示为什么异常检测有效,以及它的作用。我们探索寻找正常的东西的想法,决定如何测量异常的东西,以及如何成为异常值(第2 章和第3章)。我们提供了一种新的方法来做到这一点(t-摘要),并研究如何在非常简单的系统(第3章)和更复杂的系统中应用它(第4章和第5章)。在本文中,我们强烈建议使用自适应概率模型来预测什么是正常,以及如何将其与观察到的模型进行对比。第4 章中的一个主题与时间序列示例一起涉足深度学习,或者至少将其脚趾浸入池的浅端。尽管这是一个高级概念,但我们示例中的执行非常简单,无需高级数学运算。第 5 章提供了一些非常实用的方法,用于对包含偶发事件的系统进行建模,例如网站 traffic 或电子商务购买。在第6章中,我们以检测安全网站上的网络钓鱼攻击的形式,提供了许多基本概念的实用说明。让我们看看这一切是如何工作的。
2.异常检测的形态
异常检测的令人兴奋的事情是发现感。你需要一个程序来发现异常情况,所以异常检测模型正在寻找异常值。要了解其工作原理,请尝试一个简单的人尺度示例,如图
尽管所示的水平线数据存在明显的噪声,但当您看到这样的数据时,很容易看到大峰值似乎是一个异常值。是吗?
当您拥有较大的数据样本时,会发生什么情况?现在你的感知改变了。看似异常的,原来是常规甚至熟悉模式的一部分:在这种情况下,使用EKG记录的正常跳动的心脏的常规频率,如图
这里有一个重要的教训,即使在这个简单的小规模示例中也是如此:
在发现异常之前,首先必须找出什么是"normal"。
发现"正常"比听起来要复杂一些,尤其是在复杂的系统中。通常,要执行此操作,您需要一个机器学习模型。要准确做到这一点,您还需要足够大的数据采样来获得准确的表示。然后,您必须找到一种方法来分析数据,并在训练数据中以数学方式定义形成常规模式的方法。
查找"正常"
让我们思考一下作为异常检测基础的基本思想,包括发现 什么是正常的行为模式。一个基本但强大的方法是建立一个概率模型,我们在这里和第3章到第6章中逐步发展这个想法。
假设你正在研究特定位置的鸟类,你观察、识别和计算了在几天内有多少鸟类和哪些物种经过特定的鸟群点。下表显示了这些观测结果的一个完全构成的例子。
鸟的观测提供了一个简单的思维实验,以显示概率模型是如何工作的。一旦观察到一个新的物种,我们在随后的几天观察它。此简化示例的合成数据可帮助您思考如何根据所做的观察结果构建一个模型来预测有关您希望在第 x 天观测到的内容的几件事。
- 你希望看到多少只鸟
- 你希望看到多少物种
- 每个物种有多少鸟飞过
- 将看到多少新的,以前未被观察到的物种
此预测以概率模型的形式很好地实现。它假定所有事物(物种)至少有一定发生的可能性,有些比另一些更可能,有些是极其罕见的(或尚未观察到),因此,对他们的可能性估计将非常小。你甚至可以预测在某一天你期望有多少新物种,即使你无法预测它们将会是哪个物种。您可以为每个事件或事件类型分配概率,从而用概率学术语描述您估计的"正常"内容。
如果你喜欢数学,请阅读关于概率模型中的"正常"的描述,否则可跳过
对于第i个事件而言,设 πi为预测概率,pi为实际概率。并对其大小作如下预设:
若要使πi趋近于真实pi, 最大化pi * log(πi)的总和即可,直观上比较好理解。
根据数据的详细信息及其表示的内容,有多种方法准备数据以用于此类模型以及各种适当的算法供您选择。我们将在后续章节中介绍几个选项。