引言
在人工智能快速发展的格局中,深度神经网络 (DNN) 在从医疗诊断到自动驾驶等各类任务中都取得了超越人类的表现。然而,这些模型有一个众所周知的缺陷: 它们就像“黑盒”。我们输入数据,它们给出答案,但很少告诉我们为什么会得出这个结论。
在医疗保健和金融等关键领域,“因为电脑是这么说的”并不是一个可接受的理由。这催生了可解释人工智能 (XAI) 领域。XAI 工具箱中最流行的工具之一是显著图 (Saliency Map) ——一种突出显示图像中模型在做决策时所关注部分的热力图。
虽然现有的方法如 GradCAM (梯度加权类激活映射) 被广泛使用,但它们存在一个微妙但显著的局限性: 它们严重依赖模型的决策边界。它们告诉我们什么样的改变会翻转模型的决策,而不是哪些特征让这张图像独特地成为了“它自己”。
在这篇文章中,我们将深入探讨一篇 CVPR 论文,题为 “DiffCAM: Data-Driven Saliency Maps by Capturing Feature Differences” 。 卡内基梅隆大学的研究人员提出了一种新颖的方法,摆脱了梯度和决策边界的束缚。相反,DiffCAM 着眼于实际的数据分布,通过提出这样一个问题来解释预测: 这张特定的图像与参考组有何不同?
读完本文,你将理解 DiffCAM 背后的数学直觉,它如何在特定场景下超越传统方法,以及为什么它可能是解释复杂基础模型的未来。
背景: 梯度的问题
要理解为什么需要 DiffCAM,我们需要先了解当前的方法是如何工作的——以及它们在哪里失效。
大多数现代显著图技术 (如 CAM 系列) 都基于特征归因 (feature attribution) 原理。它们查看网络最后一个卷积层的激活图,并将它们组合起来以此创建热力图。最大的问题是: 我们如何为这些图分配权重? 哪个特征通道更重要?
决策边界陷阱
像 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)\) 的加权和。

所有 XAI 方法的区别在于它们如何计算权重 \(w_k^c\) 。
作为背景, GradCAM 通过平均梯度来计算权重:

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

DiffCAM 走了一条完全不同的路。它在不依赖类别预测分数 \(y^c\) 或其梯度的情况下生成解释。
直觉: 信噪比
DiffCAM 将解释问题框架化为在特征空间中寻找最优方向 。
想象一下图像深度特征所在的高维空间。我们想要找到一个向量 \(w\) (一个方向) ,它能在我们的目标图像 (\(z\)) 和参考组的平均值 (\(\hat{\mu}\)) 之间产生最大的分离。
然而,仅仅最大化距离是不够的。我们还想确保我们选择的方向代表了参考组中共同的特征 (低方差) 。如果参考组在该方向上变化剧烈,那么它就不是一个可靠的比较特征。
研究人员将其公式化为一个优化问题,以最大化目标函数 \(J(w)\):

- 分子 (信号) : 目标与参考均值在方向 \(w\) 上的距离平方。
- 分母 (噪声) : 参考样本在方向 \(w\) 上的方差 (离散度) 。
这在经典算法中被称为线性判别分析 (LDA) , 或者寻找 Fisher 线性判别。
解决方案
利用凸优化和线性代数,作者推导出了最优权重 \(w^*\) 的闭式解。

这里,\(S_v^{-1}\) 是参考组协方差矩阵的逆矩阵 (代表内部变异) ,而 \((z - \hat{\mu})\) 是目标与参考均值之间的差。
一旦计算出 \(w^*\),最终的 DiffCAM 显著图就像其他 CAM 方法一样生成:

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

如图 2 所示,参考的选择决定了解释的内容:
- “为什么这是一个 6?” (标准解释) : 将参考组设置为所有其他类别。DiffCAM 寻找使这张图像区别于其他所有图像的特征。
- “为什么这不被认为是 4?” (反事实解释) : 将参考组设置为类别 4。DiffCAM 突出显示将该图像具体与 4 区分开来的特征。
- “是什么让这个特定的 6 独一无二?” (类内方差) : 将参考组设置为其他 6。DiffCAM 突出显示这个特定的 6 写法中的异常值或反常之处。
实验与结果
作者在多个数据集上验证了 DiffCAM,包括 MNIST (手写数字) 、ImageNet (通用物体) 和医疗数据集。
定性分析: “为什么是”和“为什么不”
让我们看看 DiffCAM 在 MNIST 数字上与其他方法相比如何可视化特征。

在图 3 中:
- 第 2-5 列 (标准解释) : 注意,虽然 GradCAM 通常只突出特定的边缘或曲线,但 DiffCAM (第 5 列) 倾向于突出完整的物体模式。它捕捉到了“整体”数字,因为整体形状使其区别于其他数字。
- 最后 3 列 (反事实) : 这是 DiffCAM 大放异彩的地方。
- “DiffCAM (3 against 5)”: 它突出了 ‘3’ 的左侧,因为左侧没有闭合的圆环是它不是 ‘5’ 的原因。
- “DiffCAM (7 against 1)”: 它突出了顶部的横线,这是区分 7 和 1 的主要特征。
类内方差: 寻找异常值
大多数 XAI 方法无法解释同一类别内的差异。DiffCAM 可以。通过将参考组设置为与目标相同的类别,DiffCAM 突出了是什么让特定图像显得“奇怪”或“异常”。

在图 4 中,模型查看了写得不好的“0” (其中一些被错误分类) 。DiffCAM 突出了导致这些 0 偏离“平均完美 0”的具体断裂圆环或多余曲线。此功能对于调试模型和发现数据异常非常有用。
定量评估: 忠实度和定位
为了证明 DiffCAM 不仅仅是生成好看的图片,作者在 ImageNet 数据集上进行了标准的定量测试。
1. 物体定位: 方法能找到图像中的物体吗? 使用交并比 (IoU) 指标,DiffCAM 达到或超过了 LayerCAM 和 GradCAM 等最先进的方法。

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

如图 6 所示,DiffCAM (紫色线) 导致预测概率迅速下降,证明了其与其他方法相比具有竞争力的忠实度。
下面的图 5 可视化了这个过程。最后一列显示了基于 DiffCAM 热力图进行“ROAD”操作后的图像——关键物体被有效地模糊掉了,破坏了模型对其进行分类的能力。

应用于自监督学习 (SSL)
GradCAM 的一个主要限制是它需要类别标签来计算梯度。但是对于基础模型或像 DINO 或 MoCo 这样无需标签学习特征的自监督学习 (SSL) 模型呢?
因为 DiffCAM 基于特征嵌入和数据分布运行,它不需要标签。它可以“开箱即用”地在这些高级模型上工作。

图 7 展示了 DiffCAM 解释 MoCo-v3 和 DINO 的特征。它成功识别了足球和挂钟,证明它可以用于解释基础模型的潜在空间。
案例研究: 医学影像
DiffCAM 最具影响力的应用可能是在医疗诊断中。在医学影像中,“目标”通常是患病病人,而“参考组”是健康病人。
目标是找到异常——使病人区别于健康人群的特征。基于梯度的方法通常在此处挣扎,因为它们寻找的是分类敏感度,这可能会锁定在伪影 (如图像标签或骨骼结构) 上,而不是病理本身。
作者在 RSNA 肺炎检测数据集上测试了 DiffCAM。

看看图 8 中的比较:
- 原始图像: 黄色框指示了肺炎 (肺部浑浊) 的真实区域。
- GradCAM & ScoreCAM: 它们突出了大片弥漫区域,有时完全错过了肺部或聚焦在胸腔边缘。
- DiffCAM: 它在感染区域正上方产生了一个紧密、准确的高亮。
通过在数学上询问“这个肺与一组健康的肺有何不同?”,DiffCAM 比询问“哪些像素最大化了‘肺炎’类别分数?”更有效地分离了疾病。
定量结果证实了这种优越性。在下表中,查看 RSNA 数据集,DiffCAM 实现了 0.492 的 AUPRC (精确率-召回率曲线下面积) ,显著高于 GradCAM (0.467) 和 ScoreCAM (0.328)。

结论
DiffCAM 代表了可解释人工智能思维的转变。它从模型的内部运算 (梯度和权重) 转向了以数据为中心的视角。通过将特定输入的特征表示与参考分布进行比较,它提供了可以说更符合人类直觉的解释。
关键要点:
- 上下文很重要: 解释取决于你与什么进行比较。DiffCAM 明确了这种比较 (目标 vs 参考) 。
- 数据重于边界: 仅依赖决策边界可能会导致误导性的解释 (如“写作 vs 阅读”的学生示例) 。
- 多功能性: DiffCAM 在单一数学框架内处理“为什么”、“为什么不”和“什么很奇怪”的问题。
- 适用于基础模型: 它与现代自监督架构无缝协作,在这些架构中,梯度可能无法访问或没有意义。
随着 AI 系统越来越多地集成到高风险环境中,像 DiffCAM 这样的工具对于建立信任、调试错误以及确保我们的“黑盒”基于正确的理由做出决策至关重要。
](https://deep-paper.org/en/paper/file-1984/images/cover.png)