对抗学习与异常检测

ALAD (Adversarially Learned Anomaly Detection) 是一种基于生成对抗网络 (GAN) 思想的强大异常检测算法。它不直接学习“异常”,而是通过一场精心设计的“伪造者”与“鉴定师”的对抗游戏,极致地学习“正常数据”的内在规律。

游戏中的玩家

点击卡片了解每个组件的职责。

伪造者团队 (生成器)

目标:学习并模仿真实数据的生成过程,企图以假乱真。

🎨 编码器 (Encoder)

将高维的输入样本(如图片)压缩,并映射到一个低维的潜在表示(特征)。这就像是为一件复杂的文物绘制一幅高度浓缩的“设计草图”。

🎨 解码器 (Decoder)

接收一个潜在变量(无论是真实的还是伪造的),并尝试将其解码、重构为一个与原始数据维度相同的高维样本。这就像是根据“设计草-图”来复原一件文物。

鉴定师团队 (判别器)

三个独立的专家级鉴定师,共同构成强大的防御体系。

🔍 Dxx (数据一致性鉴定师)

负责判断两份“数据”是否都来自真实的分布。

🔍 Dzz (特征一致性鉴定师)

负责判断两份“特征”(潜在向量)是否都来自真实的分布。

🔍 Dxz (匹配度鉴定师)

负责判断一份“数据”和一份“特征”是否是原配。

训练博弈:一场精心设计的猫鼠游戏

通过点击按钮,分步观察训练流程中的数据流动和对抗过程。

检测模拟:亲手发现异常

拖动下方的“测试点”,观察其重构误差和异常分数的变化。

最终异常分数: 0.00

正常

核心公式

算法背后的数学原理。

1. 判别器损失函数

LDxx = E[log Dxx(x,x)] + E[log (1 - Dxx(x,x̂))]

Dzz 和 Dxz 的损失函数形式类似,目标都是最大化对真伪样本的区分能力。

2. 生成器总损失

LGentotal = LGen + λ · LRecon

生成器的目标是欺骗所有判别器(LGen),同时可选地最小化重构误差(LRecon)。

3. 最终异常分数

s(x) = ||Dxx(x,x) - Dxx(x,x̂)||²

异常分数由判别器 Dxx 对“真实-真实”对和“真实-重构”对的打分差异决定。