AI red teamer (人工智能红队)系列11 – 人工智能基础 – 异常检测

你是慕鸢呀~ 发布于 1 天前 4 次阅读 1740 字 预计阅读时间: 8 分钟


AI red teamer (人工智能红队)系列11 - 人工智能基础 - 异常检测

异常检测 ,也称为离群点检测,在无监督学习中至关重要。它可以识别数据集中严重偏离正常行为的数据点。这些异常数据点通常被称为异常值,可能预示着关键事件,如犯罪、系统故障或医疗紧急情况。

把它想象成监控大楼的安全系统。该系统会了解正常的活动模式,如人们在营业时间进出。如果检测到异常情况,比如有人试图在夜间闯入,系统就会发出警报。同样,异常检测算法也能学习数据中的正常模式,并将任何偏差标记为潜在异常。

异常情况大致可分为三类:

  • 点异常: 单个数据点与其他数据点有明显不同--例如,网络流量突然激增或信用卡交易额异常高。
  • 上下文异常: 在特定上下文中被视为异常的数据点,但不一定是孤立的。例如,30°C 的温度读数在夏季可能是预料之中的,但在冬季就会出现异常。
  • 集体异常: 集体偏离正常行为的一组数据点,即使单个数据点可能不被视为异常。例如,来自多个未知 IP 地址的登录尝试突然激增,可能表明存在黑客攻击。

异常检测采用了多种技术,包括

  • 统计方法: 这些方法假定正常数据点遵循特定的统计分布(如高斯分布),并将严重偏离该分布的数据点识别为异常值。例如,z-score、修正的 z-score 和盒图。
  • 基于聚类的方法: 这些方法将相似的数据点组合在一起,并将不属于任何聚类或属于稀疏小聚类的数据点识别为异常值。K-均值聚类和基于密度的聚类通常用于异常检测。
  • 基于机器学习的方法: 这些方法利用机器学习算法从正常数据中学习模式,并将异常值识别为不符合这些模式的数据点。例如,单类 SVM隔离森林局部离群因子(LOF)

One-Class-SVM

One-Class SVM 是一种专门用于异常检测的机器学习算法。它可以学习一个包围正常数据点的边界,并将任何超出该边界的数据点识别为异常点。这就好比在羊圈周围画一个栅栏,在栅栏外发现的任何羊都可能是异常点。One-Class SVM 可以使用核函数处理非线性关系,类似于用于分类的 SVM。

孤立森林(isolation Forest

孤立森林是另一种流行的异常检测算法,它通过随机分割数据和构建隔离树来隔离异常。由于异常 "数量少且与众不同",因此更容易从其他数据中分离出来,而且在这些树中的路径往往较短。这就像玩 "20 道题 "游戏一样--如果你能用很少的问题识别出一个对象,那么它很可能是一个异常点。

该算法的工作原理是递归分割数据,直到每个数据点都被隔离在其叶节点中。每一步都会随机选择一个特征,并随机选择一个分割值。重复这一过程,直到所有数据点都被分离出来。

然后,根据在多个隔离树中隔离该数据点的平均路径长度,计算出该数据点的异常得分。路径长度越短,表明异常的可能性越大。

数据点 x 的异常得分计算公式为

score(x) = 2^(-E(h(x)) / c(n))
  • E(h(x)):数据点 x 在隔离树集合中的平均路径长度。
  • c(n):在具有 n 节点的二叉搜索树 (BST) 中搜索失败的平均路径长度。这是一个标准化因子。
  • n:数据点数。

异常值接近 1 表示异常的可能性较大,而接近 0.5 表示数据点可能正常。

局部异常因子算法:Local Outlier Factor (LOF)

Local Outlier Factor (LOF)是一种基于密度的算法,旨在通过比较数据点的本地密度和其邻近点的密度来识别数据集中的离群值。该算法在检测点密度变化较大的区域的异常情况时尤为有效。

例如,与人口稠密的社区相比,在人口稀少的地区辨别一栋房子就好比辨别一个人。在房屋较少的地区,孤立的房屋更有可能是异常点。同样,在数据方面,一个局部密度低于其邻居的点被认为是异常点。

数据点 p 的 LOF 分数按以下公式计算:

LOF(p) = (Σ lrd(o) / k) / lrd(p)
  • lrd(p):数据点 p 的局部可达性密度。
  • lrd(o):数据点 o 的局部可达性密度,是 pk 近邻之一。
  • k:最近邻居的数量。

LOF 分数越高,表明数据点成为离群点的可能性越大。

局部可达密度 (Local Reachability Density)

数据点 p 的局部可达性密度(lrd(p) )定义为

lrd(p) = 1 / (Σ reach_dist(p, o) / k)
  • reach_dist(p,o):从 po 的可达性距离,它是 po 之间实际距离和 o 的 K 距离的最大值。

o 的 k-distance 是到其 k 最近邻居的距离。这确保了密集区域中的点具有较低的可达性距离,而稀疏区域中的点具有较高的可达性距离。

数据假设

异常检测技术通常会对数据做出如下假设:

  • 正态数据分布: 有些方法假定正态数据点(如高斯分布)遵循特定的分布。
  • 特征相关性: 特征的选择会显著影响异常检测算法的性能。
  • 标注数据(用某些方法): 一些基于机器学习的方法需要标注数据来训练模型。

小结

异常检测是数据分析和机器学习中的一项重要任务,能够识别可能产生重大影响的异常模式和事件。通过利用各种技术和算法,异常检测系统可以有效识别异常值,并为决策和主动干预提供有价值的见解。

我本桀骜少年臣,不信鬼神不信人。
最后更新于 2025-06-15