引言

在人工智能快速发展的格局中,深度神经网络 (DNN) 在从医疗诊断到自动驾驶等各类任务中都取得了超越人类的表现。然而,这些模型有一个众所周知的缺陷: 它们就像“黑盒”。我们输入数据,它们给出答案,但很少告诉我们为什么会得出这个结论。

在医疗保健和金融等关键领域,“因为电脑是这么说的”并不是一个可接受的理由。这催生了可解释人工智能 (XAI) 领域。XAI 工具箱中最流行的工具之一是显著图 (Saliency Map) ——一种突出显示图像中模型在做决策时所关注部分的热力图。

虽然现有的方法如 GradCAM (梯度加权类激活映射) 被广泛使用,但它们存在一个微妙但显著的局限性: 它们严重依赖模型的决策边界。它们告诉我们什么样的改变会翻转模型的决策,而不是哪些特征让这张图像独特地成为了“它自己”。

在这篇文章中,我们将深入探讨一篇 CVPR 论文,题为 “DiffCAM: Data-Driven Saliency Maps by Capturing Feature Differences” 。 卡内基梅隆大学的研究人员提出了一种新颖的方法,摆脱了梯度和决策边界的束缚。相反,DiffCAM 着眼于实际的数据分布,通过提出这样一个问题来解释预测: 这张特定的图像与参考组有何不同?

读完本文,你将理解 DiffCAM 背后的数学直觉,它如何在特定场景下超越传统方法,以及为什么它可能是解释复杂基础模型的未来。


背景: 梯度的问题

要理解为什么需要 DiffCAM,我们需要先了解当前的方法是如何工作的——以及它们在哪里失效。

大多数现代显著图技术 (如 CAM 系列) 都基于特征归因 (feature attribution) 原理。它们查看网络最后一个卷积层的激活图,并将它们组合起来以此创建热力图。最大的问题是: 我们如何为这些图分配权重? 哪个特征通道更重要?

决策边界陷阱

像 GradCAM 这样的方法使用预测类别分数相对于特征图的梯度。简单来说,它们在问: “如果我稍微改变这个特征,预测分数会改变多少?”这衡量的是预测的敏感度

然而,敏感度 (梯度) 并不总是等同于重要性。

DiffCAM 的作者用一个关于学生考试的绝妙类比来说明这一点。想象一个模型根据阅读写作成绩来预测学生是通过还是不及格

散点图显示通过/不及格的分布。GradCAM 沿红色箭头 (通往边界的最陡坡度) ,而 DiffCAM 沿紫色箭头 (与参考组的差异) 。

让我们看看上面的图 1。

  • 场景: 写作通常是一项更难的技能,所以“决策边界” (对角线) 是倾斜的。模型对写作成绩的变化更敏感。
  • 该学生 (\(x_t\)): 这个学生不及格了。为什么?
  • GradCAM 的解释 (红色箭头) : GradCAM 寻找跨越决策边界的最快路径。因为相对于写作轴,边界很陡峭,GradCAM 得出结论: 该学生不及格是因为他们的写作成绩。
  • 现实情况: 看看数据点。该学生的写作成绩实际上相当高——比大多数不及格的学生都高!然而,他们的阅读成绩明显低于“通过”组。
  • DiffCAM 的解释 (紫色箭头) : DiffCAM 将该学生与“通过”组 (绿点) 进行比较。它看到最大的差异在于阅读成绩。因此,它正确地将“低阅读分”识别为不及格的原因。

这突显了 DiffCAM 的核心哲学: 要解释一个决策,我们不能只看边界;我们必须查看相对于参考组的数据分布。


核心方法: DiffCAM

DiffCAM 代表 Difference Class Activation Map (差异类激活图) 。 它的设计初衷是捕捉目标样本 (你想解释的图像) 与参考组 (你用来对比的一组图像) 之间的本质特征差异。

通用框架

DiffCAM 适用于标准的 CAM 框架。如果我们有一个深度卷积神经网络,类别 \(c\) 的显著图 \(M_c(x)\) 是激活图 \(A_k(x)\) 的加权和。

公式 1: 类激活图的通用公式,对加权激活图求和。

所有 XAI 方法的区别在于它们如何计算权重 \(w_k^c\)

作为背景, GradCAM 通过平均梯度来计算权重:

公式 2: GradCAM 公式,基于偏导数 (梯度) 计算权重。

ScoreCAM 通过测量当特征图应用于输入时分数增加了多少来计算权重:

公式 3: ScoreCAM 公式,基于分数增加计算权重。

DiffCAM 走了一条完全不同的路。它在不依赖类别预测分数 \(y^c\) 或其梯度的情况下生成解释。

直觉: 信噪比

DiffCAM 将解释问题框架化为在特征空间中寻找最优方向

想象一下图像深度特征所在的高维空间。我们想要找到一个向量 \(w\) (一个方向) ,它能在我们的目标图像 (\(z\))参考组的平均值 (\(\hat{\mu}\)) 之间产生最大的分离。

然而,仅仅最大化距离是不够的。我们还想确保我们选择的方向代表了参考组中共同的特征 (低方差) 。如果参考组在该方向上变化剧烈,那么它就不是一个可靠的比较特征。

研究人员将其公式化为一个优化问题,以最大化目标函数 \(J(w)\):

公式 5: 目标函数 J(w),最大化目标与参考均值之间的距离,并除以参考组内的方差。

  • 分子 (信号) : 目标与参考均值在方向 \(w\) 上的距离平方。
  • 分母 (噪声) : 参考样本在方向 \(w\) 上的方差 (离散度) 。

这在经典算法中被称为线性判别分析 (LDA) , 或者寻找 Fisher 线性判别。

解决方案

利用凸优化和线性代数,作者推导出了最优权重 \(w^*\) 的闭式解。

公式 6: 涉及逆协方差矩阵的最优权重闭式解。

这里,\(S_v^{-1}\) 是参考组协方差矩阵的逆矩阵 (代表内部变异) ,而 \((z - \hat{\mu})\) 是目标与参考均值之间的差。

一旦计算出 \(w^*\),最终的 DiffCAM 显著图就像其他 CAM 方法一样生成:

公式 7: 使用最优权重的最终 DiffCAM 显著图计算。

灵活的框架

DiffCAM 最强大的方面之一是它的灵活性。通过改变参考组 , 你可以向模型提出不同的问题。

展示 DiffCAM 框架的图表。处理目标图像 (6) 。不同的参考组 (所有数字、仅 4、仅 6) 生成不同的解释,如“为什么是 6?”、“为什么不是 4?”和“类内方差”。

如图 2 所示,参考的选择决定了解释的内容:

  1. “为什么这是一个 6?” (标准解释) : 将参考组设置为所有其他类别。DiffCAM 寻找使这张图像区别于其他所有图像的特征。
  2. “为什么这不被认为是 4?” (反事实解释) : 将参考组设置为类别 4。DiffCAM 突出显示将该图像具体与 4 区分开来的特征。
  3. “是什么让这个特定的 6 独一无二?” (类内方差) : 将参考组设置为其他 6。DiffCAM 突出显示这个特定的 6 写法中的异常值或反常之处。

实验与结果

作者在多个数据集上验证了 DiffCAM,包括 MNIST (手写数字) 、ImageNet (通用物体) 和医疗数据集。

定性分析: “为什么是”和“为什么不”

让我们看看 DiffCAM 在 MNIST 数字上与其他方法相比如何可视化特征。

MNIST 上的显著图对比。DiffCAM 突出了全面的模式,并有效地显示了针对特定反事实类别 (例如 3 对 5) 的差异。

在图 3 中:

  • 第 2-5 列 (标准解释) : 注意,虽然 GradCAM 通常只突出特定的边缘或曲线,但 DiffCAM (第 5 列) 倾向于突出完整的物体模式。它捕捉到了“整体”数字,因为整体形状使其区别于其他数字。
  • 最后 3 列 (反事实) : 这是 DiffCAM 大放异彩的地方。
  • “DiffCAM (3 against 5)”: 它突出了 ‘3’ 的左侧,因为左侧没有闭合的圆环是它不是 ‘5’ 的原因。
  • “DiffCAM (7 against 1)”: 它突出了顶部的横线,这是区分 7 和 1 的主要特征。

类内方差: 寻找异常值

大多数 XAI 方法无法解释同一类别内的差异。DiffCAM 可以。通过将参考组设置为与目标相同的类别,DiffCAM 突出了是什么让特定图像显得“奇怪”或“异常”。

类内方差的可视化。DiffCAM 突出了写得不好的数字中的异常,例如圆环断裂或多余的笔画。

在图 4 中,模型查看了写得不好的“0” (其中一些被错误分类) 。DiffCAM 突出了导致这些 0 偏离“平均完美 0”的具体断裂圆环或多余曲线。此功能对于调试模型和发现数据异常非常有用。

定量评估: 忠实度和定位

为了证明 DiffCAM 不仅仅是生成好看的图片,作者在 ImageNet 数据集上进行了标准的定量测试。

1. 物体定位: 方法能找到图像中的物体吗? 使用交并比 (IoU) 指标,DiffCAM 达到或超过了 LayerCAM 和 GradCAM 等最先进的方法。

显示物体定位指标的表格。DiffCAM 在 ResNet-50 上实现了高 IoU (0.534) 和 AUPRC (0.741)。

2. 忠实度 (ROAD 测试) : 忠实度衡量突出的像素对模型是否真的重要。 ROAD (Remove And Debias,移除并去偏) 测试包括移除最显著的像素 (用邻居平均值替换它们) 并检查模型的预测置信度是否下降。下降越快意味着该方法正确识别了关键像素。

ROAD 评估图表。随着像素被替换,DiffCAM 显示预测概率显著下降,表明忠实度高。

如图 6 所示,DiffCAM (紫色线) 导致预测概率迅速下降,证明了其与其他方法相比具有竞争力的忠实度。

下面的图 5 可视化了这个过程。最后一列显示了基于 DiffCAM 热力图进行“ROAD”操作后的图像——关键物体被有效地模糊掉了,破坏了模型对其进行分类的能力。

ImageNet 上定位和 ROAD 测试的视觉示例。婴儿 (尿布) 和浓缩咖啡机被正确突出显示,然后被遮盖。

应用于自监督学习 (SSL)

GradCAM 的一个主要限制是它需要类别标签来计算梯度。但是对于基础模型或像 DINOMoCo 这样无需标签学习特征的自监督学习 (SSL) 模型呢?

因为 DiffCAM 基于特征嵌入和数据分布运行,它不需要标签。它可以“开箱即用”地在这些高级模型上工作。

应用于 SSL 模型 Moco-v3 和 DINO 的 DiffCAM。它成功突出了足球和挂钟等物体,无需监督训练标签。

图 7 展示了 DiffCAM 解释 MoCo-v3 和 DINO 的特征。它成功识别了足球和挂钟,证明它可以用于解释基础模型的潜在空间。


案例研究: 医学影像

DiffCAM 最具影响力的应用可能是在医疗诊断中。在医学影像中,“目标”通常是患病病人,而“参考组”是健康病人。

目标是找到异常——使病人区别于健康人群的特征。基于梯度的方法通常在此处挣扎,因为它们寻找的是分类敏感度,这可能会锁定在伪影 (如图像标签或骨骼结构) 上,而不是病理本身。

作者在 RSNA 肺炎检测数据集上测试了 DiffCAM。

X 射线上肺炎检测的比较。DiffCAM (左中) 准确突出了肺部浑浊 (黄框) ,而 ScoreCAM 和 GradCAM 突出了不相关的区域。

看看图 8 中的比较:

  • 原始图像: 黄色框指示了肺炎 (肺部浑浊) 的真实区域。
  • GradCAM & ScoreCAM: 它们突出了大片弥漫区域,有时完全错过了肺部或聚焦在胸腔边缘。
  • DiffCAM: 它在感染区域正上方产生了一个紧密、准确的高亮。

通过在数学上询问“这个肺与一组健康的肺有何不同?”,DiffCAM 比询问“哪些像素最大化了‘肺炎’类别分数?”更有效地分离了疾病。

定量结果证实了这种优越性。在下表中,查看 RSNA 数据集,DiffCAM 实现了 0.492 的 AUPRC (精确率-召回率曲线下面积) ,显著高于 GradCAM (0.467) 和 ScoreCAM (0.328)。

表 3 显示 DiffCAM 在医疗异常定位 (AUPRC 指标) 中优于其他方法。


结论

DiffCAM 代表了可解释人工智能思维的转变。它从模型的内部运算 (梯度和权重) 转向了以数据为中心的视角。通过将特定输入的特征表示与参考分布进行比较,它提供了可以说更符合人类直觉的解释。

关键要点:

  1. 上下文很重要: 解释取决于你与什么进行比较。DiffCAM 明确了这种比较 (目标 vs 参考) 。
  2. 数据重于边界: 仅依赖决策边界可能会导致误导性的解释 (如“写作 vs 阅读”的学生示例) 。
  3. 多功能性: DiffCAM 在单一数学框架内处理“为什么”、“为什么不”和“什么很奇怪”的问题。
  4. 适用于基础模型: 它与现代自监督架构无缝协作,在这些架构中,梯度可能无法访问或没有意义。

随着 AI 系统越来越多地集成到高风险环境中,像 DiffCAM 这样的工具对于建立信任、调试错误以及确保我们的“黑盒”基于正确的理由做出决策至关重要。