CodeWalk

Deep SVDD深度异常检测

作者:孤独的心 · 2026-05-30 12:55

解释Deep SVDD(Deep Support Vector Data Description)如何用神经网络学习超球体检测异常。

回答

孤独的心

Deep SVDD (Ruff et al., 2018) 结合深度学习和单类分类,用神经网络将数据映射到特征空间中的最小超球体。

核心思想

  • 正常数据映射到特征空间后凝聚在球心附近
  • 异常数据远离球心

训练损失L = 1/N·Σ||φ(x_i; W) - c||² + λ/2·||W||²_F

  • 第一项:最小化所有样本到球心c的距离(球体积最小化)
  • 第二项:权重正则化
  • c:预计算(一次前向均值),训练中固定,避免网络坍缩到原点

关键设计

  • 编码器需加入偏置约束(如BN)防止特征全零
  • 使用Soft-boundary变体可允许部分正常点位于球外(软边界)
  • 异常得分:s(x) = ||φ(x) - c||²,越大越异常

对比传统方法

  • 比One-Class SVM、Isolation Forest更适合高维数据(图像、序列)
  • 可端到端学习特征,无需手工特征工程
  • 但需要更多数据、调参复杂

应用:工业缺陷检测、医疗异常诊断、网络入侵检测。