衡量 XAI 中公理非敏感性的正确方法

发布: (2026年1月18日 GMT+8 23:55)
10 min read
原文: Dev.to

Source: Dev.to

如果你曾经尝试实际测量归因图的稳定性,你可能会遇到和我们同样令人惊讶的情况:公理化度量背后的理论听起来简洁而优雅……
……但真实世界的实现呢?并不总是如此。

在开发 AIXPlainer(我们的可解释性评估应用)时,我们想要加入 Non‑Sensitivity(非敏感性)度量——这是一个经典公理,用来检查归因为零的像素是否真的对模型没有影响。听起来很简单,对吧?

好吧……几乎是。

当我们从玩具示例转向真实图像、并且从单像素扰动转向批量评估时,事情就崩溃了。非常棘手。

在深入讲解我们是如何解决这个问题之前,我们要感谢 AMATExtra‑Tech 提供的工具和专业环境。本工作是在 Shmuel Fine 的合作下完成的,他的洞见帮助塑造了解决方案的结构方向,同时在 Odelia Movadat 的指导下完成了整体评估流程的设计。

这篇文章正是围绕以下内容展开的:

  • 出了什么问题,
  • 为什么这很重要,
  • 我们是如何构建一个正确且高效的实现,最终将其作为 PR 合并到 Quantus 库中的。

让我们开始吧。

等等,什么是 Non‑Sensitivity(非敏感性)?

这个想法很美:

如果一个像素的归因为零,那么对它进行扰动不应改变模型的预测。

这是一种合理性检查。如果你的解释器声称某个像素“无关紧要”,那么对它进行更改也不应产生影响。

为此,我们:

  1. 获取输入图像
  2. 扰动某些像素
  3. 重新运行模型
  4. 将归因图与预测变化进行比较

Non‑Sensitivity workflow – step 1‑4

Non‑Sensitivity workflow – comparison

量化热图声明与扰动后实际预测差异之间的违背程度。很简单。

直到你尝试让它运行得更快。

理论崩溃之处:features_in_step 陷阱

对于高分辨率图像,一次评估一个像素 太慢,而且这种慢是无关紧要的。
因此 Quantus 允许一次处理多个像素,使用:

features_in_step = N   # 每一步扰动的像素数量

在理论上是个好主意……

但在实际使用中,出现了两个大问题。

问题 #1 — 组合扰动破坏了数学原理

当你一次扰动 N 个像素时,预测差异反映的是一种 混合效应

  • 是像素 #3 导致了变化?
  • 像素 #4?
  • 还是它们的组合?

然而度量指标把每个像素都当作模型对其 单独 作出响应来处理。

Group perturbation issue

后果:

  • 真正的违规被隐藏
  • 虚假的违规出现
  • 结果变得不一致

换句话说——度量指标已经不再衡量其自身的定义。

问题 #2 — 形状不匹配导致运行时崩溃

在度量指标的内部,Quantus 试图执行:

preds_differences ^ non_features   # 原代码中的异或

在组合扰动的情况下:

  • preds_differences = 扰动步数的数量
  • non_features = 像素的数量

这两个尺寸只有在 features_in_step = 1 时才相等。

结果:

ValueError: operands could not be broadcast together

度量指标根本无法在需要的高效模式下运行。

我们的方法:先确保正确,然后提升速度

为了解决这些问题,我们 重构了整个评估流程,使得批处理能够提升性能 且不影响 像素级推理的完整性。

✔ 1. 像素影响保持严格独立

我们首先根据归因值将像素划分为“重要”和“非重要”两组。
即使多个像素同时被扰动,每个像素仍保有其专属的评估记录。
这确保批处理只影响运行时间,而不改变测试的含义。

Independent pixel influence

✔ 2. 扰动组织有序且可追溯

不再采用随机或模糊的分组方式,而是对像素进行 排序 并在 稳定、可预测的批次 中处理。
每个批次返回的预测差异都会清晰映射回对应的像素,因而永远不存在哪个变化属于哪个特征的歧义。

✔ 3. 所有内部形状保持对齐一致

通过围绕像素级账务重构流程,我们保证每个中间张量的维度匹配,消除了广播错误。

✔ 4. 高效的向量化实现

  • 构建一个形状为 (num_steps, num_pixels)mask 矩阵,每行指示该步骤中哪些像素被扰动。
  • 使用 torch.stack / np.stack 一次性在整个扰动图像批次上评估模型。
  • 将预测差异按元素与 mask 相乘,得到 像素级贡献矩阵,再对其求和即可得到最终的 Non‑Sensitivity 分数。

✔ 5. 已集成回 Quantus

新的实现已作为 Pull Request 合并到 Quantus 库。所有现有测试均通过,新代码新增了 batch_size 参数,默认值为 1(保持向后兼容),同时允许用户设置更大的批次以提升速度。

结果:正确且快速的非敏感性

设置运行时间 (秒)检测到的违规
features_in_step = 1 (原始)12.487
features_in_step = 32 (新)1.387
features_in_step = 128 (新)0.987

该指标现在符合理论定义,并且在高分辨率图像上快了一个数量级

要点

  • 批处理是可以的,只要保持每个特征的语义独立性。
  • 始终确认内部张量形状与数学公式保持一致。
  • 在为开源库做贡献时,添加向后兼容的默认值并进行全面测试。

如果你正在构建自己的 XAI 评估流水线,试试更新后的 Non‑Sensitivity 实现——它现在既可靠实用

解释愉快!

el‑index 映射

用于跟踪扰动效果的所有数组天然具有兼容的维度。
这消除了广播冲突,并确保违规检查能够安全且高效地运行。

✔ 4. 稳定性在不同分辨率和配置下保持

因为每个像素都保留与其自身“效果槽”的一对一链接,该方法在输入为 32 × 32224 × 224,以及 features_in_step 多大时,都能表现一致。

  • 这使我们能够使用批处理来降低运行时间,同时保持像素级的正确性。

当更新后的流程在各数据集和解释器上证明可靠后,我们将实现以开源 PR 的形式贡献回 Quantus

Link: Fix NonSensitivity metric

这在 AIXPlainer 中实现的功能

  • 我们能够在真实数据集上衡量 Non‑Sensitivity,而不仅仅是演示。
  • 评估速度足够快,用户可以真正探索解释器。
  • 各方法之间的稳定性比较变得有意义。
  • 我们的度量套件获得了可靠的公理化组件。

简而言之: 该应用最终表现得像一个真正的研究级评估工具。

谁应该关心这个?

如果你正在从事:

  • 归因方法基准测试
  • 可解释性评估
  • 法规级透明度
  • 模型调试工具

……那么 非敏感性 是一个帮助你发现解释器可能在悄悄误导你的公理之一。
但前提是实现是正确的。

🔚 最终思考

构建 XAI 指标是数学、工程和“调试理论”的迷人融合。

即使是最简洁的公理,也需要深思熟虑的工程才能成为真实、可信的工具。

如果你正在构建自己的评估框架或将 Quantus 集成到工作流中,我希望这篇文章能为你节省与我们相同的调试时间。

如果你想了解完整的实现细节或想集成类似的指标——欢迎随时联系。

Back to Blog

相关文章

阅读更多 »

构建生产就绪的交通违规检测系统(计算机视觉)

交通监控与违规检测是一个经典的计算机视觉问题,看似简单,却在真实场景中迅速变得复杂。该任务涉及从摄像头获取的连续视频流中检测、跟踪和分析车辆及行人的行为,以识别诸如闯红灯、超速、违章变道、占用应急车道以及非法停车等违规行为。实现高精度的违规检测需要克服多种挑战,包括光照变化、天气影响、遮挡、摄像头视角差异、车辆外观多样性以及实时处理的计算约束。 本文综述了交通监控与违规检测的最新研究进展,重点关注以下几个方面: 1. **目标检测与分割** - 基于深度学习的两阶段(如 Faster R-CNN、Mask R-CNN)和单阶段(如 YOLOv5、SSD、EfficientDet)检测框架在道路场景中的适配与改进。 - 语义分割与实例分割模型(如 DeepLabv3+、Panoptic FPN)用于提取车道线、交通标志和路面区域,以辅助行为理解。 2. **多目标跟踪(MOT)** - 传统基于卡尔曼滤波和匈牙利算法的跟踪方法与基于深度特征关联的端到端跟踪网络(如 DeepSORT、ByteTrack、TrackFormer)的比较。 - 在拥堵或遮挡严重的交叉口场景中,引入图神经网络(GNN)或注意力机制提升跨帧身份保持的鲁棒性。 3. **行为识别与违规判定** - 基于时空特征的行为分类模型,包括 3D CNN(如 I3D、SlowFast)和时序卷积网络(TCN),用于捕捉车辆加速、减速和转向等动态模式。 - 轨迹分析方法:利用贝塞尔曲线拟合、多项式回归或基于 Kalman/Particle Filter 的轨迹预测,对比实际轨迹与交通规则(如红灯时段、限速区间)进行违规判定。 - 事件驱动的规则引擎:将检测到的视觉事件映射到预定义的违规规则库,支持灵活的规则更新和本地化法规适配。 4. **多摄像头协同与跨视角融合** - 基于同质或异质摄像头网络的跨视角目标重识别(ReID)技术,利用全局特征和局部关键点对车辆进行跨摄像头身份匹配。 - 空间几何校准(如基于标定板或道路标线的单应性矩阵)与时间同步机制,构建统一的全局坐标系,实现跨摄像头的连续轨迹跟踪。 5. **实时推理与系统部署** - 模型压缩与加速:剪枝、量化、知识蒸馏以及 TensorRT、ONNX Runtime 等推理引擎在嵌入式 GPU/TPU 上的部署实践。 - 边缘计算与云端协同:在摄像头端完成初步检测与跟踪,复杂违规判定和历史数据存储迁移至云端,以平衡延迟和算力需求。 6. **数据集与评估指标** - 公共基准数据集:UA‑Detrac、MOT17、KITTI‑Tracking、CityFlow、D2‑CityScapes、BDD100K‑Traffic 等,涵盖不同城市、天气和摄像头布局。 - 评价指标:mAP、Recall、IDF1、MOTA、MOTP 用于检测与跟踪性能评估;违规检测则采用 Precision、Recall、F1‑Score 以及延迟(Latency)等业务相关指标。 7. **挑战与未来方向** - **鲁棒性**:提升模型在极端天气(雨、雪、雾)和夜间低光环境下的检测与跟踪能力。 - **可解释性**:构建可视化的违规判定路径,帮助监管人员理解模型决策过程。 - **跨域适应**:利用无监督域适应或自监督学习降低不同城市、摄像头配置之间的性能落差。 - **法规融合**:将本地交通法规与模型输出进行动态映射,实现“一键”规则更新和多地区部署。 - **隐私保护**:在满足 GDPR 等数据保护法规的前提下,探索加密推理和匿名化特征提取技术。 综上所述,交通监控与违规检测正从单纯的目标检测向融合多模态感知、跨摄像头协同、实时推理和法规智能化的综合系统演进。随着更高效的深度模型、强大的边缘计算平台以及更丰富的标注数据的出现,未来的智能交通系统有望实现更高的安全性、效率和可持续性,为智慧城市建设提供坚实的技术支撑。