CVPR2021 | 视觉推理解释框架VRX:用结构化视觉概念作为解释网络推理逻辑的「语言」

简介: 本文提出了一个视觉推理解释框架 (VRX: Visual Reasoning eXplanation), 将人们容易理解的、high-level 的结构化的视觉概念作为「语言」,通过回答为什么是 A,为什么不是 B 解释神经网络的推理逻辑。VRX 还可以利用解释对网络进行诊断,进一步提升原网络的性能。

本文主要介绍了被 CVPR 2021 录用的文章《A Peek Into the Reasoning of Neural Networks: Interpreting with Structural Visual Concepts》。这项工作对神经网络推理逻辑的可解释性进行了探究:区分于大多数现有 xAI 方法通过可视化输入图像和输出结果之间的相关性对网络进行解释,该研究提出用结构化的视觉概念 (Structural Visual Concept) 对神经网络决策背后的推理逻辑和因果关系进行解释,通过解答网络决策中「为什么是 A?为什么不是 B?」 的问题,用人们更容易理解的 high-level 视觉概念和视觉概念之间的结构和空间关系解释神经网络的推理逻辑,并将其作为一种直接指导来提升被解释网络的性能

微信图片_20211205154032.jpg




下图概括了这篇文章要做的任务:为了解释原网络决策背后的推理逻辑,该研究回答了如下问题:为什么是消防车?为什么不是救护车?又为什么不是校车?该研究用结构化的视觉概念图(Structural Concept Graph) 作为解释的语言,其中概念图的节点 (node) 代表视觉概念(visual concept),边 (edge) 代表视觉概念之间的结构和空间关系,点和边的颜色代表其对该类最终决策的贡献度(冷色:正向 或 暖色:负向):(1)为什么是消防车?从视觉概念角度,所有检测到的四个与消防车最相关的视觉概念(保险杠,消防车头,车轮,救援架)都对最终消防车的决策有正向贡献;从视觉概念的空间结构关系角度,四个概念之间的空间关系也都对决策有正向贡献,这说明视觉概念和他们之间的关系都像一辆消防车。(2)为什么不是校车?从视觉概念角度:从图中检测到的与校车视觉概念最接近的四个部分及其相关结构和空间关系都对校车的决策起到负向贡献(否定该图是校车的决策)尤其是概念 1 和概念 2,与真正的校车概念最不相符。(3)为什么不是救护车?也同样可以得到相似的人们容易理解的,逻辑上的,视觉概念角度的解释。

微信图片_20211205154049.jpg


下面将详细介绍工作的具体内容。


研究动机


在深度学习日益蓬勃发展的今天,深度神经网络不透明的决策导致的安全事故和隐患也越来越多,神经网络的可解释性对于人们如何更加信任、安全、可靠的使用他们至关重要。近年来有越来越多关注可解释性的研究,例如:pixel-level 的方法 (CAM[1]Grad-CAM[2]等) 通过可视化输入图像和输出结果之间的相关性解释网络的决策,为理解神经网络决策依据找到了线索;concept-level 的方法


(TCAV[3]ACE[4]等) 可以找到给定类别重要的视觉概念。然而,这些方法是否局限于解释相对 low-level 的相关性?是否有更加方便人们理解的更直观的 high-level 的解释方法?我们是否可以揭示神经网络内在的推理逻辑和因果关系?逻辑解释能否作为线索进一步帮助提高原网络的性能?微信图片_20211205154108.jpg


为了回答这些问题,该研究探究如何模拟和解释神经网络的推理逻辑,提出用结构化的视觉概念对神经网络决策背后的推理逻辑和因果关系进行解释,通过解答网络决策中 「为什么是 A,为什么不是 B?」 的问题,用人们更容易理解的 high-level 视觉概念和视觉概念之间的关系解释神经网络的推理逻辑,并将其作为指导来提升原网络的性能。微信图片_20211205154130.jpg


方法详述


该研究提出的视觉推理解释框架(VRX:Visual Reasoning eXplaination Framework)包括三个主要部分:

  • (1)视觉概念提取器 (VCE: Visual Concept Extractor) 用来提取特定类别相关的重要视觉概念,并将图像表示为结构化的视觉概念图 (SCG: Structural Concept Graph);
  • (2)概念图推理网络 (GRN: Graph Reasoning Network) 以视觉概念图为输入,通过知识蒸馏和迁移来模拟原网络的决策过程;
  • (3)可视化决策解释器 (VDI: Visual Decision Interpreter) 用来解释原网络决策背后的推理逻辑和因果关系。


接下来对每个部分进行详细解释。


视觉概念提取器和结构化的视觉概念

该研究首先介绍了什么是视觉概念 (Visual Concept),简单来说视觉概念展示了给定神经网络对不同类别的理解,同时人们也更容易接受符合直觉的概念级别的解释:以下图警车为例,在给定的神经网络 「眼里」,警车 Top2 重要的视觉概念可视化为最右边绿色圈中的 patch (看起来像轮子和驾驶室侧面)。ACE[4] 中作者对视觉概念进行了定义:类别相关的视觉概念是像素点的集合 (group of pixels) 并满足以下三个要求:


  • (1)有意义 (Meaningfulness):即视觉概念需要具有语义上的涵义,单个的像素就没有语义涵义,所以需要是像素点的集合,比如图片 patch。
  • (2)一致性 (Coherency):同一视觉概念在不同图片中的表现应该相似,不同视觉概念之间应该不同。
  • (3)重要性 (Importance):如果一个视觉概念的存在对于该类样本的真实预测是必要的,那么它对于该类的预测就是「重要的」。


下图描述了 ACE 中对给定网络、给定类别的视觉概念的提取过程:以警车为例,首先 (a) 用多分辨率的分割算法对图片进行分割得到 patch(这里的分割采用的是 SLIC[5],一种基于规则的分割算法,选择该方法是对于其速度和效果的综合考虑); 然后(b) 将分割得到的 patch resize 为统一大小,通过给定网络将 patch 转化为向量,并在向量空间做聚类; 最后(c) 利用 Testing with Concept Activation Vectors (TCAV)[3] 得到每个聚类的潜在视觉概念对警车类别的重要性分数,并剔除 outlier,留下对警车类别来说最重要的 top 视觉概念。微信图片_20211205154149.jpg


但研究发现,ACE 提取视觉概念的效果非常依赖用于提取视觉概念的图片的质量,一般每一类选取 50~100 张左右的图片用于提取视觉概念,如果图片有一些 bias 或者不是很具有代表性,就会导致很多提取的视觉概念落在背景区域,比如下图(左),这些视觉概念并不能代表网络学习了该类 1000 张图像(ImageNet)以后对该类(救护车)的理解。为了解决这个问题,该研究提出使用自顶向下的梯度注意力 (Attention Map) 对视觉概念提取区域进行约束, 因为 Grad-CAM 的 attention map 可以高亮显示对网络决策重要的区域(多为前景),这样可以帮助剔除掉提取视觉概念的图片中与类别无关的背景部分,使得提取的视觉概念更能代表原网络对该类的理解,如下图右。微信图片_20211205154203.jpg


以吉普车类别为例,下图总结了视觉概念提取器提取视觉概念的步骤。微信图片_20211205154217.jpg


提取出类别相关的视觉概念后,研究者认为视觉概念之间有潜在的空间结构关系,这种空间关系对类别表达至关重要:比如我们并不能说,只要能在图像中检测到吉普车的四个最重要的视觉概念就代表一定是吉普车,他们之间的空间关系是相对确定的,例如轮子不能在车顶上方。我们人类做决策也是相似的:我们认为这是一辆吉普车,不仅关键的特征(视觉概念)符合认知,特征之间的空间关系同样会影响我们的推理和最终决策。因此该研究认为结构化的视觉概念 才是更符合人们直觉的,解释神经网络推理决策的重要「语言」。后续的模拟并解释神经网络的推理决策过程也是基于此展开的。


结构化视觉概念的一种表达便是结构概念图 (SCG: Structural Concept Graph),graph 中不同颜色的点代表不同重要性 (Top k) 的视觉概念,边代表视觉概念之间的空间关系。如下图吉普车和斑马的例子,我们可以把任意图片表达为对应类别的结构概念图。注意:目前是 image-level 的 SCG (I-SCG),后续会用 基于 learning 的方法,学习到 class-level 的 SCG(c-SCG)。微信图片_20211205154231.jpg


概念图推理网络


有了结构概念图作为人们容易理解的解释神经网络的「语言」,接下来可以用这种「语言」解释神经网络决策背后的推理逻辑。ACE[4]的作者为了验证提取到的视觉概念对神经网络决策的重要性,实验验证发现:如果只保留输入图片中表达重要视觉概念的像素(mask 掉与重要视觉概念无关的区域),神经网络能保留原本 80% 以上的准确率。因此一个比较直接的想法便是:我们能不能追踪并可视化神经网络决策过程中重要视觉概念相关特征的流动,这样我们便能找到最终决策与重要视觉概念之间的关系,从而对决策进行解释。以下图为例对于一个经典的由卷积层和全连接层构成的神经网络,我们用不同的颜色代表吉普车最重要的四个视觉概念,在卷积层,我们可以根据结构不变性 追踪每个视觉概念对应的 representation feature。但是全连接层中,所有特征 耦合到了一起,使得追踪变得困难。研究者分析这是由于神经网络结构上信息流动不够透明和难以解耦导致的,与此同时研究者想到另一种解决办法:如果可以用另一个结构比较解耦的,信息流动更加透明的模型 B,全方位模拟原始神经网络 A 的推理和决策,是不是就可以通过解释 B 的推理逻辑来解释 A 呢?微信图片_20211205154246.jpg


为此研究者提出概念图推理网络 (GRN: Graph Reasoning Network),以结构概念图为输入,通过知识蒸馏和迁移来模拟原网络的决策过程(如下图)。微信图片_20211205154303.jpg


下图解释了概念图推理网络的训练过程:对于输入图片,该研究首先构建对于每个感兴趣类别的结构概念图(即先将图像进行分割,然后在所有 patch 中分别检测每个感兴趣类别的重要视觉概念:从下图中检测到 2 个消防车的视觉概念(黄色圆圈),2 个老爷车的视觉概念 ... 4 个吉普车的视觉概念),这些检测到的视觉概念组成相应类别的结构概念图,表示对其决策的假设(该图是消防车吗?是老爷车吗 ... 是吉普车吗?)很多类别我们只能检测到部分视觉概念,检测不到的视觉概念用 dummy node 来表示(黑色 node)。然后概念图推理网络利用图卷积,对每一个结构概念图进行 representation,学习其视觉概念及其之间的关系对最终决策的影响。最后该研究把所有点和边 concatenate 为一个向量, 通过非常简单的 MLP 输出对所有感兴趣类别的决策向量,并用知识蒸馏的方法使得概念图推理网络与原网络的决策一致。为了提升模拟的鲁棒性,该研究还用 mask out 视觉概念添加扰动的方法使得概念图推理网络与被解释的原网络在面对扰动时决策一致。(详细训练过程和公式推导请见原始 paper)。微信图片_20211205154321.jpg


训练中,所有类别的结构概念图共享一套图卷积的参数,但是每个类别在消息传递(message passing ) 中有专属的注意力权重参数 eji,类别专属的注意力权重参数是为了学习每个类别独特的视觉概念之间的空间和依赖关系,一方面可以解释并可视化概念图推理网络学习到的每个类别视觉概念之间潜在的关系(下图),另一方面为最终推理过程的解释提供了支持。下图是用学习到的消防车的 eji 筛选出重要的视觉概念之间的关系。边的 eji 值越大,代表点 j 对点 i 的贡献越大;从右边的 sum 可以看到消防车的视觉概念 1 和 2 对其他的视觉概念贡献最大,这也意味着他们是对消防车来说最有区分度的视觉概念。微信图片_20211205154335.jpg


可视化决策解释器 (VDI: Visual Decision Interpreter)


 训练好的概念图推理网络便是原网络的 representation,基于图卷积神经网络的概念图推理网络具有信息传递透明且容易追踪的特点,为了用结构概念图对推理过程进行解释,该研究提出了基于梯度的贡献度分配算法,为每个参与决策的点(视觉概念)和边(概念之间的关系)计算其对于特定决策的贡献值,贡献值的高低代表了其肯定还是否定了该决策。最后决策解释器可视化了对原网络输出的解释并回答为什么是吉普车?为什么不是其他类别?(颜色代表肯定:冷色,或否定:暖色)如下图右:(1)为什么是吉普车?从视觉概念角度,所有检测到的四个与吉普车最相关的视觉概念(前灯,挡风玻璃,后窗,车轮)都对最终吉普车的决策有正向贡献(深蓝或浅蓝);从视觉概念的空间结构关系角度,四个概念之间的空间关系也都对决策有正向贡献,这说明视觉概念和他们之间的关系都像一辆吉普车。(2)为什么不是消防车?从视觉概念角度:从图中检测到的与消防车视觉概念最接近的四个部分及其相关结构和空间关系都对消防车的决策起到负向贡献(否定该图是消防车的决策)尤其是概念 1 和概念 2,与真正的消防车概念最不相符。(3)为什么不是老爷车等?也同样可以得到相似的人们容易理解的、逻辑上的、视觉概念角度的解释。微信图片_20211205154349.jpg



实验和结果


视觉推理解释 (VRX) 与原网络之间逻辑一致性实验第一个实验目的是验证视觉推理解释框架 (VRX) 做出的推理解释与原网络的逻辑是一致的。


如下图,原网络 Xception 错把一张消防车分类成了救护车,VRX 给出解释(如左图):为什么不是消防车?因为从图像中检测到的消防车的视觉概念 3 和 4 都对消防车的决策起到负向贡献即否定该决策。为什么是救护车?因为检测到的救护车的视觉概念 3 和 4 都对救护车的决策起到正向贡献,即肯定该决策。即使所有消防车视觉概念之间的空间关系(边)相对救护车的空间关系更加合理,但是综合来看,Xception 还是做出了救护车的决策。


为了验证解释的合理性以及与原网络决策逻辑的一致性。该研究做了两个实验 :(1)研究人员把原图中检测到的对消防车决策起负向作用的消防车的概念 3 (车轮) 替换为另外一张消防车图片中的更合理的概念 3 (右图第一行),然后让 Xception 对新的图片再次分类,发现错误被纠正了。此外,该研究也做了对比试验:如果用一张随机的消防车的 patch 去替换概念 3,或者用另外一张消防车的同样合理的概念 1 和 2 替换原始的概念 1 和 2,Xception 都无法纠正错误。所以研究者认为 VRX 对 Xception 推理的解释符合原网络的逻辑。(2)研究人员把原图中检测到的对救护车的决策起正向作用的救护车的概念 3 mask 掉,发现 Xception 对新图片的预测结果有纠正的趋势(消防车概率增大,救护车概率减小)。对比实验发现如果随机删除 patch 则不会有纠正的效果。微信图片_20211205154404.jpg


上述验证实验一共在 119 张 Xception 错分的图片中实施,研究者用 VRX 对错误原因背后推理逻辑的解释作为修改建议,通过视觉概念的替换和删除,原网络超过 95% 的错分可以被正确的纠正(如下表 1)。微信图片_20211205154417.jpg


VRX 对视觉和结构解释的敏感性实验


VRX 可以从视觉概念(点)和视觉概念之间的空间关系(边)两个角度为决策提供解释。通过添加扰动,分别预设输入图像的视觉层面不合理和空间结构的不合理,探究 VRX 的解释对视觉和结构的敏感性。微信图片_20211205154433.jpg


给定一张 Xception 正确预测的救护车图片,VRX 给出了解释。(a)如果把一个救护车相对合理的视觉概念 2(对救护车决策起到正向贡献)替换为一个相对不合理的视觉概念 2(在另一张救护车图像中对决策起到负向贡献),VRX 对新图片决策的解释可以正确捕捉到不合理的部分:被替换的概念 2。(b)如果把视觉概念 4(车轮)移动到一个不合理的位置(挡风玻璃上方),VRX 对新图片决策的解释可以正确捕捉到不合理的部分:视觉概念 4 和其他视觉概念之间的空间关系。由此研究者认为 VRX 可以准确的定位视觉和结构的不合理,并给出准确的解释。


VRX 根据解释对原网络进行诊断并提升原网络的表现


之前的实验展示了 VRX 对原网络的解释可以帮助原网络纠正对图片的错误分类,接下来的实验中,VRX 将利用可解释性对原网络进行诊断,发现原网络训练中存在的问题(比如训练数据的 bias),从而提出针对性修改建议,进而提升原网络的表现。如下图,研究者用 Resnet-18 训练了一个三种车辆的分类器 ,(a) 训练数据有 pose 的 bias,所有的公共汽车都是 pose 1,所有坦克都是 pose 2,所有军用汽车都是 pose 3;但测试数据没有 pose bias,即所有车辆都有全部的 pose 1,2 和 3。(b) 测试发现分类器的准确率较低,该研究用 VRX 对模型进行诊断,发现大部分错分的图像其实都能找到正确的视觉概念,错误原因是因为概念之间的关系否定了正确的决策,导致错分。以下图 (b) 为例,一辆军用汽车被错分为坦克,解释为什么不是军用汽车的时候发现是军用汽车视觉概念之间的空间关系否定了该图是军用汽车的决策,而从图中检测到的坦克的视觉概念虽然较差,但是空间关系支持是坦克的决策,综合以上导致了错分。所以 VRX 诊断给出的建议是增加视觉概念之间空间关系的多样性和鲁棒性 。微信图片_20211205154449.jpg


根据诊断建议,最直接的实现方法便是增加不同 pose 的图片,研究者做了接下来的验证实验:setting 1:为每类增加 150 张不同于原始数据集 pose 的图片;setting 2:为每类增加 150 张与原始数据集 pose 相同的图片(对照组)。研究者用新的数据集分别重新训练了 Resnet-18 分类器并测试数据集准确率 (结果如下表 2)。VRX 根据解释性的诊断帮助提升了原始模型的效果。微信图片_20211205154504.jpg


VRX 对原模型的诊断可以总结模型的不同问题并提出相应提升建议。下图是 VRX 对在 ImageNet 上预训练的 Xception 其中六类的诊断,VRX 将其错误总结为三种类别,并对每种错误的修改提出建议。(细节请参考原 paper)。微信图片_20211205154518.jpg


总结和展望


总结来说,这项工作在神经网络的可解释性方向做了进一步探索:解释神经网络决策背后的推理逻辑。该研究提出了一个视觉推理解释框架 (VRX: Visual Reasoning eXplanation), 将人们容易理解的、high-level 的结构化的视觉概念作为“语言”,通过回答为什么是 A,为什么不是 B 解释神经网络的推理逻辑。VRX 还可以利用解释对网络进行诊断,进一步提升原网络的性能。研究者相信这是朝着更透明、更安全、更可信的 AI 方向迈出的小但是重要的一步。

论文讲解视频:https://www.bilibili.com/video/BV1tb4y1C7yY/


参考文献


1.     CAM, Bolei Zhou , et al. 2016 https://openaccess.thecvf.com/content_cvpr_2016/papers/Zhou_Learning_Deep_Features_CVPR_2016_paper.pdf

2.     Grad-CAM, RR Selvaraju , et al. 2017 https://arxiv.org/pdf/1610.02391.pdf

3.     TCAV, Been Kim, et al. 2017;  https://arxiv.org/pdf/1711.11279.pdf

4.     ACE, Ghorbani, et al. 2019 https://arxiv.org/pdf/1902.03129.pdf

5.     SLIC, Radhakrishna Achanta, et al. 2011 https://core.ac.uk/download/pdf/147983593.pdf

相关文章
|
9天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
49 6
|
17天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
43 3
|
3天前
|
监控 安全
公司上网监控:Mercury 在网络监控高级逻辑编程中的应用
在数字化办公环境中,公司对员工上网行为的监控至关重要。Mercury 作为一种强大的编程工具,展示了在公司上网监控领域的独特优势。本文介绍了使用 Mercury 实现网络连接监听、数据解析和日志记录的功能,帮助公司确保信息安全和工作效率。
70 51
|
3天前
|
消息中间件
由于网络延迟造成逻辑锁失败的问题
【11月更文挑战第5天】本文介绍了网络延迟对逻辑锁的影响及其解决方法。逻辑锁用于控制并发访问共享资源,但在高网络延迟下,可能会导致多个客户端同时获取锁,引发数据不一致等问题。文章详细分析了锁获取、持有和释放阶段的网络延迟影响,并提出了优化网络环境、采用异步通信、使用冗余和重试机制以及调整超时设置等解决方案。
|
2天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
12 1
|
10天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
34 4
|
9天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
29 2
|
10天前
|
网络协议 物联网 API
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第26天】Python 是一门功能强大且易于学习的编程语言,Twisted 框架以其事件驱动和异步IO处理能力,在网络编程领域独树一帜。本文深入探讨 Twisted 的异步IO机制,并通过实战示例展示其强大功能。示例包括创建简单HTTP服务器,展示如何高效处理大量并发连接。
32 1
|
9天前
|
网络协议 调度 开发者
Python网络编程:Twisted框架的异步IO处理与实战
【10月更文挑战第27天】本文介绍了Python网络编程中的Twisted框架,重点讲解了其异步IO处理机制。通过反应器模式,Twisted能够在单线程中高效处理多个网络连接。文章提供了两个实战示例:一个简单的Echo服务器和一个HTTP服务器,展示了Twisted的强大功能和灵活性。
22 0
|
1天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密与意识的交织
【10月更文挑战第35天】在数字化时代,网络安全不再是可选项,而是每个网民的必修课。本文旨在深入探讨网络安全的核心要素,包括常见的安全漏洞、先进的加密技术以及不可或缺的安全意识。通过分析这些方面,我们将揭示如何保护个人和组织免受网络攻击的策略,同时提供实用的代码示例,以增强读者的实践能力。文章将引导您思考如何在日益复杂的网络环境中保持警惕,并采取积极措施以确保数据的安全。
13 4
下一篇
无影云桌面