对抗学习与异常检测
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 对“真实-真实”对和“真实-重构”对的打分差异决定。