跳到主内容
快讯直播
AI智模界
AI 词典

异常检测:只教模型“正常长什么样”

一句话定义:异常检测(Anomaly Detection)是只用大量正常样本训练模型,让它学会“正常长什么样”,再把明显不像正常的样本挑出来。

它的难点不在算法,而在数据本身:正常样本多到用不完,异常样本却少得可怜。信用卡欺诈可能只占万分之几,工厂里一台设备一年也坏不了几次。更麻烦的是,异常往往没有统一定义:故障形态千奇百怪,今天是这样,明天可能是另一种,你没法事先收集到“所有类型的坏样本”来训练。于是这类问题通常被建模成单类学习(one-class learning):不学“坏是什么样”,只学“好是什么样”,画出一个正常数据的边界,新样本落在边界外就报警。

打个比方:小区保安。他不可能认识全城的小偷,但他天天看业主进出,清楚“正常”是什么样——几点上下班、走哪个门、拎什么东西。深夜有人翻墙进来,他立刻觉得不对劲。他靠的不是坏人的名单,而是对正常的熟悉程度。

工程上常见的三条路:

  • 重建类:自编码器(Autoencoder)只用正常数据训练,学会“压缩再还原”。正常样本能还原得很好,异常样本还原误差大,误差超过阈值就报警。设备振动、图像瑕疵检测常用这个。
  • 边界与密度类:孤立森林(Isolation Forest)、单类支持向量机(One-Class SVM)、局部离群因子(LOF)等,判断一个点是否落在数据稀疏区或正常边界之外。
  • 统计基线:3σ、滑动窗口阈值、同比环比。看着朴素,在很多业务里依然是最先上线、最容易被信任的那一版。

和相邻概念的区别:

概念训练数据目标
二分类正负样本都要有,且要有代表性区分两类
异常检测几乎只有正常样本描述正常,偏离即报警
聚类无标签分组,不判断好坏
开集识别有标签的已知类判断“不属于已知类”

对从业者的实际意义:第一,别用准确率(accuracy)评估。若异常只占 1%,模型全判“正常”就有 99% 准确率,却毫无用处。要看精确率与召回率(precision / recall)、PR 曲线,并按业务算清“漏报”和“误报”各自的成本。第二,阈值不是模型的一部分,它是业务决策,需要人来定,也需要随季节、促销、版本升级而调整。第三,训练集里的“正常”必须覆盖各种周期性波动,否则模型会把正常波动当异常。第四,异常不等于故障,它只表示“不一样”,可能是故障,也可能是新业务形态,最后一步通常还得人来判断。

对普通人来说,银行卡被盗刷的短信、体检报告上的箭头、工厂设备的提前预警,背后常常就是这套思路:先学会正常,再对不一样保持警觉。误报多是这个领域的常态,所以好的系统不只管报警,也管报警之后怎么让人快速确认。具体产品的实现细节与指标,以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。