
摘要
我们提出了一种技术,用于为大量基于卷积神经网络(CNN)的模型决策生成“视觉解释”,从而提升模型的可解释性。我们的方法——梯度加权类激活映射(Gradient-weighted Class Activation Mapping, Grad-CAM),利用流向最终卷积层的任意目标概念的梯度信息,生成粗略的定位图,以突出图像中对预测该概念起关键作用的区域。Grad-CAM 适用于多种CNN模型架构,包括:(1)包含全连接层的CNN;(2)用于结构化输出的CNN;(3)应用于多模态输入任务或强化学习任务的CNN,且无需任何架构修改或重新训练。我们将Grad-CAM与细粒度可视化相结合,生成高分辨率、具有类别区分能力的可视化结果,并将其应用于现成的图像分类、图像字幕生成以及视觉问答(Visual Question Answering, VQA)模型,包括基于ResNet的架构。在图像分类任务中,我们的可视化结果具有以下优势:(a)揭示模型的失效模式;(b)对对抗样本具有鲁棒性;(c)在定位性能上优于以往方法;(d)更忠实于底层模型的决策机制;(e)有助于提升泛化能力,通过识别数据集偏差来改进模型表现。对于图像字幕生成和VQA任务,我们证明了即使是非注意力机制的模型也具备输入区域的定位能力。我们进一步提出一种通过Grad-CAM识别关键神经元的方法,并结合神经元名称,为模型决策提供文本化解释。最后,我们设计并开展了人类实验,评估Grad-CAM是否有助于用户建立对模型预测结果的合理信任。实验结果表明,即使两个模型做出完全相同的预测,未经训练的用户也能借助Grad-CAM成功区分出“更强”与“更弱”的模型。相关代码已开源,可访问 https://github.com/ramprs/grad-cam/,配套演示网站为 http://gradcam.cloudcv.org,视频演示链接为 youtu.be/COjUB9Izk6E。
代码仓库
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| image-attribution-on-celeba | Grad-CAM | Deletion AUC score (ArcFace ResNet-101): 0.2865 Insertion AUC score (ArcFace ResNet-101): 0.3721 |
| image-attribution-on-cub-200-2011-1 | Grad-CAM | Deletion AUC score (ResNet-101): 0.0810 Insertion AUC score (ResNet-101): 0.7224 |
| image-attribution-on-vggface2 | Grad-CAM | Deletion AUC score (ArcFace ResNet-101): 0.3103 Insertion AUC score (ArcFace ResNet-101): 0.4733 |
| interpretability-techniques-for-deep-learning-1 | Grad-CAM | Insertion AUC score: 0.3721 |