前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么DL模型能够正确分类?SCOUTER(ICCV21')从“正”“反”方面说服你。

为什么DL模型能够正确分类?SCOUTER(ICCV21')从“正”“反”方面说服你。

作者头像
CV君
发布2021-08-09 16:08:49
4820
发布2021-08-09 16:08:49
举报

0

写在前面

由于目前的深度学习在可解释性方面还是有待提高,很多时候深度学习被看做是一个黑盒模型,他能告诉你这个图片是什么 ,但是不能解释为什么 它觉得这是某个类,这与人类识别物体的机制非常不一样。

因此,可解释的人工智能在过去几年里受到了越来越多的关注。然而,现有的方法大多基于梯度或中间特征,并没有直接参与分类器的决策过程。在本文中,作者提出了一个基于slot attention的分类器SCOUTER,用于可解释并且准确的分类。

与其他基于注意力的方法相比,SCOUTER有两个主要区别:(1)SCOUTER的解释涉及到每个类别的最终置信度,提供了更直观的解释;(2)所有类都有相应的肯定或否定解释,也就是模型不仅能够告诉我们“为什么这张图片是某个类”,还能够告诉我们“为什么这张图片不是某个类” 。作者为SCOUTER设计了一个新的损失函数,用来控制模型在肯定和否定解释之间切换的行为,以及解释区域的大小。

最后,实验结果表明,在中小型数据集上,SCOUTER能够在保持较好的准确性的同时,给出较好的可视化解释。

1

论文和代码地址

SCOUTER: Slot Attention-based Classifier for Explainable Image Recognition

论文:https://arxiv.org/abs/2009.06138

代码:https://github.com/wbw520/scouter

2

Motivation

了解深度学习模型如何进行预测具有重要意义,特别是在医学诊断等领域,采用黑箱模型存在潜在风险。因此,可解释的人工智能引起了广泛的关注。

在XAI(可解释的人工智能)中最流行的范式是属性解释,它涉及像素或区域对最终预测的贡献水平(也就是类似attention的可视化),因此,可以用它来回答“为什么图像x属于类别t”。解释通常是通过显示一个heat map,突出显示支持预测的区域。这样的可视化对于理解模型的行为有很大的帮助。

但是仅通过这些区域来做决策,就会出现另一个问题——这些区域如何对决策做出贡献?也就是说,属性解释强调了一些视觉成分,这些视觉成分对决策起到了正向的支持作用;但是同时,这些区域也可以作为一种反向的支持。

比如上图中红框的区域中的attention map,这些关注的局域就是一种反向支持的可解释(解释这张图片为什么不是“1”或者“2”)。然而,目前这些基于attention的方法不能区分正面还是负面的支持,因为解释层或者attention层之后的黑盒分类层对特征进行了非线性变换。

作者在本文中提出了一种新的XAI方法,即SCOUTER(基于slot的可配置和透明分类器)。假设对于每个类别,都存在一个支持集,,的元素用来帮助决策输入的图片是不是属于类别。SCOUTER的目的是寻找一个子集,它包含一个或多个来自的支持。

SCOUTER的prediction完全基于,,而不是像以前那样直接使用FC这类黑盒模型。这种透明性使SCOUTER找到正向()或负向()的支持,这样一来可视化可以作为正向或负向(属于或者不属于某个类)的解释。

基于这种可解释分类器的新范式,更小的支持区域能够更有利于每个支持的语义解释。比如说,当模型识别一张人脸的时候,发现眼睛、鼻子、嘴唇等的组合比直接发现一张脸提供更多的解释。

因此,作者在损失函数中引入了一个新的项来约束attention 区域的大小。这种对Attention面积的约束可能会影响分类性能,但通过多个支持的组合可以弥补缺失的线索,进而减小对模型性能的影响。

基于slot attention[1],作者提出了可解释槽注意(xSlot)模块。xSlot模块的输出直接作为每个类别的置信度,因此不再需要基于全连接层的分类器,这也就避免了全连接层这个黑盒模块带来的不可解释性。

3

方法

给定一个图像x,分类模型的目标是在类别集中找出它最可能出现的类别。分类的模型的通常流程是:首先图片通过一个Backbone来提取特征,然后使用FC层和softmax作为分类器得到每个类别的置信度。然而,FC分类器可以学习任意(非线性)变换,因此它是一个黑盒的模型

因此,作者用由xSlot注意模块组成的SCOUTER替换FC分类器(如上图所示),以此来对每个给定特征F,生成类别的置信度。包括主干在内的整个网络都使用SCOUTER损失函数进行训练,它提供了对解释区域大小的控制以及在正反解释之间的切换。

3.1. xSlot Attention

在原有的slot注意机制中,slot是基于特征的一个局部区域表示。带有L个slot的Slot Attention模块通常放在主干网络的上面,用来生成L个不同的输出特征。当有多个感兴趣的对象时,这个配置就会很方便。

SCOUTER的主要构建块是xSlot注意模块(如上图所示),它是为SCOUTER量身定制的slot注意模块的变体。xSlot注意模块的每个slot都与一个类别相关联,并提供输入图像属于该类别的解释。

对于给定的特征,xSlot注意模型会对每个slot 更新T次,代表第l个类的slot更新第t次之后的结果。每个类最开始的slot被初始化成一个随机权重:

和分别是高斯分布的均值和方差,是权重向量的的size。那么,对于所有的n个类,所有的slot就可以被表示成。

第t+1个slot使用和特征进行更新。首先,特征经过1 × 1卷积层以减少通道数量和ReLU非线性函数得到,然后的空间维度被打平到了d(d = hw)。由于打平之后,特征就失去了二维的空间信息,所以作者又加了一个位置编码,表示为:

然后作者使用两个多层感知机(MLPs) Q和K,每一个多层感知机都由三个FC层和中间的ReLU激活函数组成。Q和K对分别对slot和特征进行进一步的编码,这个设计是为了在自注意力机制的query和key的计算上提供更大的灵活性:

得到Q和K之后就可以进行attention操作了(这一步其实就是视觉特征和slot之间的attention操作,方法跟Self-Attention类似类似,具体是用点乘之后在用sigmoid归一化):

然后将Attention Map与特征进行相乘,得到增强之后的视觉特征:

新的slot 由和特征作为输入,使用GRU进行更新得到。

xSlot注意模块的输出是中类别l的所有元素的和,可以表示成:

其中是所有元素都是1的长度为的一个向量。(这里用了点乘,其实在数学就是把通道维度的元素全部加起来的意思

这里的其实就是原来FC输出的结果,但是SCOUTER整合了xSlot注意模块的输出。这一步使得SCOUTER相比于FC,但是它的可解释性大大提高。

3.2. SCOUTER Loss

通过将softmax应用于xSlot(F)并最小化交叉熵损失,模型就可以被训练了。然而,在某些情况下,会出现一种现象:根据图像的内容,模型更倾向于关注较广泛的区域(例如,slot其实就可以表示和原始图片中的哪些区域是相关的,所以一个slot可能覆盖图像的较大区域)。但是,约束单个slot的覆盖范围对于可解释性是有益的。(比如说,当模型识别一张人脸的时候,发现眼睛、鼻子、嘴唇等的组合比直接发现一张脸提供更多的解释。 )

因此,作者设计了SCOUTER损失函数来限制支持区域的面积,表示如下:

其中就是交叉熵,就是面积损失函数。面积损失函数计算方式为:

其实就可以吧Attention Map里面的值求和(这个和越小,就代表Attention的区域是更小的。至于这里为什么还是用点乘,其实跟上面的原理是一样的,两个点乘就是把一个二维的矩阵求和

3.3. Switching Positive and Negative Explanation

上面中含有SCOUTER损失的模型只能提供正面的解释(这一点跟其他可以解释性的方法都一样),因为A(T)中的元素较大,说明预测是基于相应的特征进行的。

为了能够反映正向和反向的支持结果,作者在计算xSlot(F)的输出结果时,引入了一个超参数e:

这个超参数e使得xSlot注意模块能够学习寻找正向或反向的支持(意思就是说,e=1时slot是找正向支持某个类的可解释证据,e=-1时slot是找反向支持某个类的可解释证据

对于e = +1, xSlot给出的所有元素都是非负的,因为和都是非负的,因此也是非负的。

对于e = -1,xSlot(F)越接近0,就代表与当前这个类与ground truth越接近;xSlot(F)越小时,就说明xSlot(F)能够明显找出不是ground truth的原因。

4

实验

4.1. Explainability

作者使用包含前100个类的ImageNet子集进行了可解释性实验,数值结果如上表所示。可以看到,SCOUTER可以在保持较小的区域大小的同时,在所有指标中获得良好的分数。这些结果表明,SCOUTER的可视化在面积大小和精度方面具有较好的优势,对噪声不敏感,并具有良好的可解释性。

上表展示了与Ground Truth解释区域的面积大小高度相似、相似、不相似的类。我们看到了一个明显的趋势:当类别间相似性降低时,SCOUTER+的面积减小,而SCOUTER -则为不同类别提供了更大的解释区域。

将SCOUTER+的解释与SS-CAM、IBA进行比较,发现SCOUTER+的解释具有更灵活的形状,更适合目标物体。

上图展示了,SCOUTER−也能给出很好的负向支持的解释性证据。

4.2. Classification Performance

从上图可以看出,随着类别数量的增加,FC分类器和SCOUTER的性能都有所下降。但是它们在类别数量方面显示出类似的趋势。

控制解释性区域的大小,可以看出SCOUTER+和SCOUTER-的面积大小都随着的增加而迅速下降。

上表总结了FC分类器、SCOUTER+(λ = 10)和SCOUTER−(λ = 10)在ImageNet、context和CUB-200数据集上的分类性能。结果表明,SCOUTER可以推广到不同的领域,并且在所有数据集上与FC分类器具有相似的性能。

4.3. Case Study

上表为基于ACRIMA数据集的分类性能。我们可以看到SCOUTER+和SCOUTER−都比FC分类器有更好的性能。

上图青光眼诊断数据集阳性样本的解释。第一行:输入图像和现有方法的解释。下面一行:SCOUTER+(第一和第二列)和SCOUTER−(第三和第四列)对正常(n)和青光眼(g)的解释,可以看出SCOUTER+和SCOUTER−的解释更加精准。

5

总结

在本文中,作者提出了一种新的可解释分类器,并提出了两种变体,即SCOUTER+和SCOUTER−,分别对分类过程给出正向或反向的解释。SCOUTER采用了slot注意模块的一种可解释变体,即xSlot注意。

另外,为了使得Attention的局域更小更精准更有可解释性,作者设计了面积损失函数来控制解释性区域的面积大小。实验结果表明,SCOUTER能够在保持良好分类性能的同时给出准确的解释。

参考文献

[1]. Francesco Locatello, Dirk Weissenborn, Thomas Un- terthiner, Aravindh Mahendran, Georg Heigold, Jakob Uszkoreit, Alexey Dosovitskiy, and Thomas Kipf. Objectcentric learning with slot attention. arXiv preprint arXiv:2006.15055, 2020.

作者简介

厦门大学人工智能系20级硕士

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎:努力努力再努力

公众号:FightingCV

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1. xSlot Attention
  • 3.2. SCOUTER Loss
  • 3.3. Switching Positive and Negative Explanation
  • 4.1. Explainability
  • 4.2. Classification Performance
  • 4.3. Case Study
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档