What Does a Model Really Look at?: Extracting Model-Oriented Concepts for Explaining Deep Neural Networks
题目:模型真正关注的是什么?:提取面向模型的概念以解释深度神经网络
作者:Seonggyeom Kim and Dong-Kyu Chae
源码:https://github.com/DILAB-HYU/MOCE
摘要
模型可解释性是构建可信AI系统的关键要素之一,特别是在需要可靠性的应用中,例如自动驾驶和诊断。文献中已经研究了许多可解释性方法。在众多方法中,本文专注于一种研究线,尝试通过发现模型学习到的概念来直观解释预训练的图像分类模型,例如卷积神经网络,这被称为基于概念的解释。先前基于概念的解释方法依赖于人类对概念的定义(例如,Broden数据集)或像Slic(简单线性迭代聚类)这样的语义分割技术。然而,我们认为这些方法识别的概念可能更符合人类的视角或被分割方法裁剪,而不是纯粹反映模型自身的视角。我们提出了一种新颖的方法——模型导向的概念提取(MOCE),它完全基于模型本身提取关键概念,从而能够捕捉其独特的视角,这些视角不受任何外部因素的影响。我们在各种预训练模型上的实验结果证实了通过真正代表模型视角提取概念的优势。
关键字
- 基于概念的解释
- 可解释AI
- 计算机视觉
I. 引言
深度神经网络(DNNs)在诸如图像识别和自然语言处理(NLP)等各个领域取得了巨大成功。然而,由于其非线性特性,DNNs本质上通常较为复杂,这使得理解它们为何做出特定预测变得困难[1]。这种缺乏可解释性使得DNNs在需要模型决策过程可解释性的关键任务应用中,例如基于AI的诊断、金融和军事行动中,更难发挥重要作用[2], [3], [4]。为了解决这个问题,近年来模型可解释性的研究获得了显著关注,以使它们能够适用于这些重要领域并提供更深入的见解。
本文专注于解释预训练的卷积神经网络(CNN)进行视觉任务。解释CNN的一种方式是确定每个输入特征对其预测的贡献量[1], [5], [6]。例如,在图像分类任务中,通过量化每个输入图像中像素的重要性生成显著性图,可以为模型所做的相应分类提供局部解释。然而,基于单个测试示例中的低级特征的可解释性方法无法捕捉到能够使人类更直观理解模型整体行为的高级概念[7], [8], [9]。另一个研究领域是基于这些概念提供全局解释,这些概念是更高级别的语义信息,例如斑马的条纹图案或长颈鹿的长颈。基于概念的推理可能更易于人类理解,因为基于认知科学的发现[10], [11],人类通常会将一个对象解析为不同的概念,然后关注几个区分性概念以做出最终决定。先前工作[7], [8], [9]的实验结果也证实了基于概念的推理优于显著性图。
已经提出了几种方法来发现预训练模型学习到的概念。网络解剖[12]、TCAV(使用概念激活向量测试)[8]和IBD(可解释基础分解)[13]依赖于Broden数据集[12],该数据集包含了人类为图像的高级概念部分提供的像素级注释。ACE(自动基于概念的解释)[14]使用了Slic(简单线性迭代聚类)[15],一种分割方法,将图像分割为概念段,然后对它们进行聚类以找到概念。
沿着这一研究线,我们探讨了一种不依赖于任何外部因素来发现概念的方法,以便完全关注模型的行为。我们的观点是,对模型的解释应该忠实于模型本身[9], [16], [17]。因此,使用人类提供的概念标签或利用分割方法可能会阻碍对模型真正视角的理解[18], [19]。换句话说,提取的概念可能会显示被分割方法裁剪的图像部分或更符合人类观点的图像部分,而不是反映模型的视角。此外,这些方法可能不是模型不可知的,因为它们限于在存在概念注释的数据集上训练的模型或具有良好功能分割方法的模型。而且,人类注释可能会导致人类偏见问题,并且不能保证所有概念都已完全注释;一些重要的概念可能被遗漏了。
为了发现纯粹反映模型自身视角的概念,本文提出了一种新颖的方法,不使用任何外部因素,如人类注释或分割方法,来寻找和评估概念。为了实现这一目标,我们提出了模型导向的概念提取(MOCE),它完全依赖于模型的内部计算。对于每个图像类别,MOCE通过根据高度激活的特征获得的掩码来收集图像的部分,然后应用连通分量分析来指导每个掩码突出显示单个概念部分。我们还提出了一种独特的掩码选择算法,以去除关注冗余区域的掩码。最后,它通过聚类收集的图像部分来识别概念,捕捉通常出现在目标图像类别中的共同特征。为了突出其中的关键概念,MOCE通过计算模型在有无概念的情况下进行预测的置信度来衡量每个概念的重要性。
我们使用一些流行的预训练模型在ImageNet和Places365数据集上进行了广泛的实验。通过实验结果,我们观察到以下几点,清楚地展示了MOCE的优势:(1)没有任何外部因素,MOCE成功地通过发现模型学习到的概念提供了人类可理解的解释。(2)MOCE识别的概念完全反映了每个模型的独特视角,现有的利用外部因素的方法很难理解。(3)提取的概念是连贯的、有意义的和重要的[14]。(4)MOCE适用于任何CNN模型在任何标记的数据集上,因为MOCE不依赖于任何注释或可能依赖于特定数据的方法。
III. 提出的方法
本节详细阐述了我们提出的概念解释方法。图1展示了MOCE的概览,大致由(a)概念提取部分和(b)概念评估部分组成。
A. 提取模型导向概念
设 I l = { x 1 , x 2 , . . . , x n } ∈ R D H W I_l = \{x_1, x_2, ..., x_n\} \in R^{DHW} Il={x1,x2,...,xn}∈RDHW是一组与特定类别 y l y_l yl相关联的图像集(宽度为 W W W,高度为 H H H,深度为 D D D)。为了简化,我们尽可能省略类别标签 y l y_l yl。设 f j ( x i ) f_j(x_i) fj(xi)是从输入图像 x i x_i xi到第 j j j个中间层的前馈操作。然后, f j ( x i ) f_j(x_i) fj(xi)的输出是一组激活图,记为 S i ∈ R D ′ H ′ W ′ S_i \in R^{D'H'W'} Si∈RD′H′W′,其中 ( H ′ × W ′ ) (H' \times W') (H′×W′)是每个激活图的大小, D ′ D' D′是通道数(即激活图的数量)。
在获得 S i S_i Si后,我们接下来的步骤是创建一组有用的掩膜,这些掩膜可以裁剪对模型预测至关重要的图像部分。为了减少计算量,我们首先根据每个相应激活 a i , d a_{i,d} ai,d的梯度 g i , d g_{i,d} gi,d与类别 y l y_l yl相对于每个激活图 s i , d s_{i,d} si,d的加权和 L i , d L_{i,d} Li,d,丢弃 S i S_i Si中包含的激活图中较不重要的一半。具体而言,
g i , d = 1 H ′ ⋅ W ′ ∑ h , w ∂ y l ∂ S h , w i , d , g_{i,d} = \frac{1}{H' \cdot W'} \sum_{h,w} \frac{\partial y_l}{\partial S_{h,w}^{i,d}}, gi,d=H′⋅W′1h,w∑∂Sh,wi,d∂yl,
a i , d = 1 H ′ ⋅ W ′ ∑ h , w S h , w i , d , a_{i,d} = \frac{1}{H' \cdot W'} \sum_{h,w} S_{h,w}^{i,d}, ai,d=H′⋅W′1h,w∑Sh,wi,d,
L i , d = ReLU ( g i , d ⋅ a i , d ) , L_{i,d} = \text{ReLU}(g_{i,d} \cdot a_{i,d}), Li,d=ReLU(gi,d⋅ai,d),
其中 g i , d g_{i,d} gi,d和 a i , d a_{i,d} ai,d分别对应第 d d d个激活图的梯度和平均池化。 L i , d L_{i,d} Li,d通过内积操作计算两个项的加权和。然后,对于每个剩余的第 d d d个激活图 s i , d ∈ R H × W ′ s_{i,d} \in R^{H \times W'} si,d∈RH×W′,我们将其放大到输入大小( H × W H \times W H×W),然后二值化,使得顶部 γ % \gamma\% γ%的值(即高度激活区域)变为1,其余为0。因此,每个二值化掩膜 b i , d ∈ R H × W b_{i,d} \in R^{H \times W} bi,d∈RH×W突出了输入的重要部分。
然而,我们注意到,掩膜的数量可能会根据通道数而变得过多,导致计算开销。此外,一些掩膜可能聚焦于彼此重叠的区域。另外,一些掩膜可能有多焦点,这使得将其焦点映射到一个单一概念变得困难。为了克服这些挑战,我们执行了以下程序,以减少掩膜的总数,并使每个掩膜尽可能独特:
-
对于每个掩膜,如果它有多个连通分量(每个连通分量表示一组彼此相邻的’1’s),我们保留最大的一个,并将其余的连通分量清零。这里,如果剩余的最大掩膜聚焦于极小的区域(总面积的0.5%),我们丢弃这个掩膜。这是因为一个强烈激活的区域(例如,热图的红色中心区域)会产生一个大型的连通分量。此外,我们观察到,小但显著的区域实际上有很多机会被其他掩膜捕获,并且很可能在其他一些掩膜的最大连通分量中存活下来。
-
我们选择聚焦于较少重叠区域的掩膜。设 M i M_i Mi是从空集开始选择的掩膜集合。在按加权和(即 L i , d L_{i,d} Li,d)的顺序对掩膜进行排序后,我们在第一次迭代中将第一个掩膜(即 b i , 1 b_{i,1} bi,1)放入 M i M_i Mi。然后,通过计算每个剩余掩膜 b i , d b_{i,d} bi,d与 M i M_i Mi中包含的每个掩膜 m p m_p mp的重叠比率 O p Op Op来评估每个剩余掩膜,基于Jaccard相似性:
O p = ∑ ( b i , d ⊙ m p ) ∑ ( b i , d ⊕ m p ) , Op = \frac{\sum (b_{i,d} \odot m_p)}{\sum (b_{i,d} \oplus m_p)}, Op=∑(bi,d⊕mp)∑(bi,d⊙mp),
其中 ⊙ \odot ⊙和 ⊕ \oplus ⊕分别是逐元素乘法和OR操作, ∑ ( ) \sum() ∑()操作对所有元素求和。如果所有计算出的重叠比率 O p Op Op小于 1 2 \frac{1}{2} 21,则认为 b i , d b_{i,d} bi,d是一个独特的掩膜,并且因此被添加到 M i M_i Mi的成员中。
现在我们有 ∣ M i ∣ |M_i| ∣Mi∣个掩膜( ∣ M i ∣ ≪ D |M_i| \ll D ∣Mi∣≪D),每个掩膜预期聚焦于一个独特的区域和给定图像 x i x_i xi的一个特定概念。然后我们使用 ∣ M i ∣ |M_i| ∣Mi∣中的选定掩膜裁剪 x i x_i xi为多个部分:这是通过 x i , p = x i ⊙ m p x_{i,p} = x_i \odot m_p xi,p=xi⊙mp完成的,其中 x i , p x_{i,p} xi,p是每个掩膜 m p m_p mp裁剪后的图像。结果,所有图像 x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn在 I l I_l Il中通过它们对应的掩膜集合 M 1 , M 2 , . . . , M n M_1, M_2, ..., M_n M1,M2,...,Mn被裁剪为多个图像部分。请注意,每个裁剪图像的大小将根据所使用的掩膜的形状而变化。
下一步是在激活空间上对裁剪后的图像进行聚类,以形成与同一概念相关的相似语义。因此,我们首先将每个裁剪部分放大到输入大小,将这些放大后的图像部分(每个记为 X i , p ∈ R H × W X_{i,p} \in R^{H \times W} Xi,p∈RH×W)放入模型中,并在第 j j j层的激活图上执行全局平均池化(GAP)操作,将每个 X i , p X_{i,p} Xi,p表示为特征向量(即, v i , p = GAP ( f j ( X i , p ) ) ∈ R D ′ v_{i,p} = \text{GAP}(f_j(X_{i,p})) \in R^{D'} vi,p=GAP(fj(Xi,p))∈RD′)。在将每个图像部分 ( x i , p ) (x_{i,p}) (xi,p)放大到输入大小时,我们保持其纵横比不变,以便在相应的放大图像 X i , p X_{i,p} Xi,p中的像素不会显得被拉伸,从而使它们更易于人类理解(我们的补充材料包括更多细节)。
我们最终将所有特征向量聚类到 C 1 , C 2 , . . . , C k C_1, C_2, ..., C_k C1,C2,...,Ck中,其中 k k k是预先定义的聚类数量。结果,每个聚类 C k C_k Ck包括我们预期彼此之间有很多相似之处的放大图像部分,我们认为每个聚类是一个概念。
B. 评估概念
在基于概念解释模型预测时,使用所有识别的概念可能并不高效,因为并非所有概念对模型识别图像同等重要;其中一些可能并不十分有助于识别。因此,区分几个关键概念将提供更好的解释,能够指出模型的焦点在哪里。在这种情况下,TCAV一直是迄今为止用于概念评估的热门选择。TCAV尝试学习一个分类器,区分一个概念的特征图和随机图像,其中学习到的分类器系数和方向导数(即概念激活向量的方向)在计算概念的重要性时使用。然而,TCAV分数并不总是一个好的可解释性标识符,这取决于随机选择的图像。相反,我们希望定义一个与概念的重要性更直接对齐的分数函数,并且可以仅通过模型的前馈操作计算,而不依赖可能受随机图像影响的分类器。
受之前工作[46]的启发,我们提出了一种方法来衡量模型在给定图像的类别预测中(1)当每个概念从图像中移除时,以及(2)当只有单个概念对模型可见时,模型预测的置信度。图1(b)说明了这个过程。设 x i x_i xi是与类别 y l y_l yl相关联的给定图像。我们为每个概念定义了 x i x_i xi的两种变体: R h ( x i ) R_h(x_i) Rh(xi)从 x i x_i xi中移除第 h h h个概念( 1 ≤ h ≤ k 1 \leq h \leq k 1≤h≤k), E h ( x i ) E_h(x_i) Eh(xi)移除除了第 h h h个概念之外的所有概念(这里,剩余的第 h h h个概念在输入到模型之前被放大,因为剩余概念的大小太小)。例如,如果 x i x_i xi与“猫”类别相关联,并且第 h h h个概念代表猫的眼睛,那么 R h ( x i ) R_h(x_i) Rh(xi)将移除包含在第 h h h个聚类 C h C_h Ch中的猫眼睛对应的图像部分。我们定义每个图像的分数函数为
S
R
h
(
x
i
)
=
f
l
out
(
x
i
)
−
f
l
out
(
R
h
(
x
i
)
)
∑
c
=
1
k
f
l
out
(
x
i
)
−
f
l
out
(
R
c
(
x
i
)
)
,
SR_h(x_i) = \frac{f_{l_{\text{out}}}(x_i) - f_{l_{\text{out}}}(R_h(x_i))}{\sum_{c=1}^{k} f_{l_{\text{out}}}(x_i) - f_{l_{\text{out}}}(R_c(x_i))},
SRh(xi)=∑c=1kflout(xi)−flout(Rc(xi))flout(xi)−flout(Rh(xi)),
S
E
h
(
x
i
)
=
f
l
out
(
E
h
(
x
i
)
)
∑
c
=
1
k
f
l
out
(
E
c
(
x
i
)
)
,
SE_h(x_i) = \frac{f_{l_{\text{out}}}(E_h(x_i))}{\sum_{c=1}^{k} f_{l_{\text{out}}}(E_c(x_i))},
SEh(xi)=∑c=1kflout(Ec(xi))flout(Eh(xi)),
其中
f
l
out
(
⋅
)
f_{l_{\text{out}}}(\cdot)
flout(⋅)是模型对类别标签
y
l
y_l
yl的输出softmax概率。对于这两个分数,越高越好。
S
R
h
SR_h
SRh衡量一个概念在移除后对模型预测置信度的阻碍程度,
S
E
h
SE_h
SEh评估一个概念如何使模型做出自信预测。最后,我们通过聚合这些每个图像的分数来计算每个概念的重要性分数
S
h
=
1
k
∑
i
=
1
n
[
α
⋅
χ
R
(
1
−
S
R
h
(
x
i
)
)
+
β
⋅
χ
E
(
1
−
S
E
h
(
x
i
)
)
]
,
S_h = \frac{1}{k} \sum_{i=1}^{n} \left[ \alpha \cdot \chi_R(1 - SR_h(x_i)) + \beta \cdot \chi_E(1 - SE_h(x_i)) \right],
Sh=k1i=1∑n[α⋅χR(1−SRh(xi))+β⋅χE(1−SEh(xi))],
其中
χ
R
(
1
−
S
R
h
(
x
i
)
)
\chi_R(1 - SR_h(x_i))
χR(1−SRh(xi))和
χ
E
(
1
−
S
E
h
(
x
i
)
)
\chi_E(1 - SE_h(x_i))
χE(1−SEh(xi))分别返回类别
y
l
y_l
yl相关联的第
h
h
h个概念在
(
1
−
S
R
h
(
x
i
)
)
(1 - SR_h(x_i))
(1−SRh(xi))和
(
1
−
S
E
h
(
x
i
)
)
(1 - SE_h(x_i))
(1−SEh(xi))中值大小的排名(即相对位置)。
α
\alpha
α和
β
\beta
β控制两个排名分数的相对重要性。
S
h
S_h
Sh越高,概念越重要。
C. 从未见过的图像中提取概念
到目前为止,我们已经通过每个类别的图像集推导出了与概念相对应的聚类。这些聚类中包含的图像部分描述了模型在相应原始图像中关注的是哪一部分。我们可以利用这些聚类从未见过的新输入图像中提取概念并解释模型的关注点。方法如下:设新输入图像为 x n + 1 x_{n+1} xn+1。我们按照上述描述的相同过程创建裁剪后的图像部分 x n + 1 , 1 , x n + 1 , 2 , . . . , x n + 1 , p x_{n+1,1}, x_{n+1,2}, ..., x_{n+1,p} xn+1,1,xn+1,2,...,xn+1,p,使用算法1对它们进行上采样,然后输入模型以获得第 j j j层的新特征向量 v n + 1 , 1 , v n + 1 , 2 , . . . , v n + 1 , p v_{n+1,1}, v_{n+1,2}, ..., v_{n+1,p} vn+1,1,vn+1,2,...,vn+1,p。之后,我们计算每个向量与之前获得的包含在聚类 C 1 , C 2 , . . . , C k C_1, C_2, ..., C_k C1,C2,...,Ck中的向量之间的L2距离,为每个新向量 v n + 1 , p v_{n+1,p} vn+1,p找到最近的邻居。然后我们使每个 v n + 1 , p v_{n+1,p} vn+1,p属于其最近邻居所在的聚类。最后,我们选择一些重要性最高的聚类,然后可视化这些选定聚类中的新特征向量。可视化通过简单地放大相应的图像部分(例如, x n + 1 , p x_{n+1,p} xn+1,p)完成,其中新的特征向量(例如, v n + 1 , p v_{n+1,p} vn+1,p)源自该部分。
D. 实施细节
遵循[14],我们采用了k-means[47]和欧几里得距离[14] [48]作为聚类算法和相似性度量,聚类数量k固定为25,与[14]中使用的值相同。我们检验了γ、α和β的各种值:然后选择γ的值为10%(在(5%,10%,…,25%)中选择)。对于α和β,我们从这些值中分别选择了0.5和1.0:(0.1,0.2,…,1.0)。MOCE默认可以从模型的任何层提取概念,我们选择了最后一个CNN层,即在“Flatten”层之前的层,因为通常知道后面的层更擅长捕获高级语义。然而,我们也展示了从其他层提取的概念。
IV. 评估
我们将MOCE应用于众所周知的CNN模型,包括在ImageNet数据集[52]上训练的VGG19[49]、ResNet50[50]和InceptionV3[51],以及在Places365数据集[54]上训练的VGG16、ResNet50和GoogLeNet[53]。整体的实验设置与ACE一致。我们在ImageNet数据集的全部1,000个类别中随机选择了100个类别,并为每个类别随机抽取了50张图像。对于Places365,我们使用了全部365个类别,并且为每个类别随机抽取了50张图像。我们将这些图像输入到每个模型中,以提取每个图像类别的概念。我们从不同角度评估了这些提取出的概念的质量。
A. MOCE识别的概念
图2和图3展示了MOCE从ImageNet和Places365数据集中提取的前3个概念,其中图3测试了属于同一类别的多个目标图像。通过MOCE,我们可以发现每个模型通过将图像划分为语义上有意义的部分来识别图像,这与人类识别图像的方式类似,并且模型关注的部分也符合人类的直觉。这些点在以前的研究中也被发现过,但与现有方法不同的是,MOCE能够在没有任何外部帮助的情况下发现这些点。此外,我们可以通过MOCE识别的概念观察到每个模型的独特视角。例如,VGG19倾向于同时关注多个概念部分,这些部分在细长的区域内是对齐的。相反,对于InceptionV3,我们观察到提取的概念几乎始终是具有圆角的矩形形状,并且被关注的部分非常详细。ResNet50似乎介于这两种模型之间。
我们相信,MOCE发现模型视角的能力将为开发人员提供有用的信号,以便更好地理解和改进他们自己的模型。例如,图4比较了从ResNet18和ResNet50的最后一层提取的概念。例如,如果发现使用ResNet18的模型正在查看比预期更广泛的区域(包括多个对象),则使用ResNet18的开发人员可能会决定尝试更深层次的架构;如果使用ResNet50的开发人员发现模型在最后一层提取更高级别的特征,则会选择较浅的架构。此外,开发人员可以通过比较MOCE提供的视角来检查不同的预训练模型,并选择最适合自己任务的模型。
B. 从不同层提取的概念
本节展示了从目标模型的各种卷积层提取的概念。我们选择了从每个模型输入相邻的层开始的五层,一直到“flatten”层相邻的层,总结在表I中。层A最靠近输入,而层E最靠近输出。所选层的名称(例如,“Mixed_5c”)是从这个链接借用的:https://microscope.openai.com/models。
图5展示了MOCE从每个模型的5个选定层提取的概念。有趣的是,我们观察到,从靠近输入层提取的概念倾向于是细长的,例如,“hook”类别的钩子,“tench”类别的钓竿等。此外,通常,对象的边缘和边界被发现作为概念。这与CNN层的初始层通常捕获边缘等低级特征的一般理解相似。相反,我们从靠近输出层的层中发现了更高级别的概念。如这里所示,MOCE可以逐层提供基于概念的解释,我们相信这是可能的,因为MOCE能够仅利用模型的激活而不是依赖外部因素来发现概念。
C. 来自未见图像的概念
这个实验旨在验证MOCE是否能够从新图像中发现概念。图6展示了从ImageNet验证集中随机抽取的1,000张与之前选定的100个类别相关的图像中提取的一些概念示例。MOCE已经识别出“impala”类别的头部、鼻子和角作为前3个概念,“Yorkshire_Terrier”类别的眼睛、鼻子和皮毛。因此,即使在新图像中,MOCE也能通过将裁剪后的图像部分与之前获得的聚类向量匹配来成功发现关键概念。
上述过程使MOCE能够为模型的正确和错误分类提供视觉证据。图7展示了同一类别中的两个验证图像,其中图像(a)和©被InceptionV3错误分类,而(b)和(d)被正确分类。在这两种情况下,MOCE都通过展示几个关键概念及其相应的最近邻来提供人类可理解的解释。它还显示了最近邻的关联类别标签。
D. 比较分析
首先,图8将MOCE识别的概念与依赖于Broden真实标注的Network Dissection和IBD提供的概念进行了比较。我们观察到,Network Dissection和IBD只是匹配了Broden中包含的概念相似的图像部分,并突出显示了它们。这样的解释可能继承了人类注释的限制,并且可能更接近人类的视角。另一方面,我们观察到MOCE能够在没有人类注释的帮助下提取有意义的概念。例如,MOCE识别了包括猫的脸部、耳朵和胡须在内的有意义的概念,其中胡须不在Broden中。
接下来,图9比较了MOCE与Grad-CAM、Distillation方法和ACE的结果,这些方法也不依赖于人类注释。将MOCE与ACE进行比较,可以观察到,尽管模型不同,ACE基于SLIC划分的相同图像段提供解释。另一方面,正如我们之前的结果中观察到的,MOCE捕获了每个模型的独特焦点,这些焦点可以通过每个概念的形状和范围来识别。通过这种方式,MOCE不受人类注释或分割的影响,它通过专注于模型来提取概念,这在我们需要准确且特定于模型地理解模型为何正确或错误时非常重要。Distillation方法通过显示与聚类中心最近的嵌入的其他图像来提供解释。由于它没有突出显示对象的局部部分,因此在需要对每个测试案例进行特定解释的情况下,可能难以使用这种方法。Grad-CAM提供了一个热图,强调对相应分类重要的区域。然而,整个对象往往被强调,而不是更具体的概念部分被关注。
E. 一致性、有意义性和重要性
根据之前的作品[14]、[36],基于概念的解释应该满足以下三个要求才能被人类理解。(1) 有意义性:概念对人类应该在语义上有意义。(2) 一致性:概念在感知上应该彼此相似,而与其他概念的例子不同。(3) 重要性:如果概念的存在对于该类别样本的真实预测是必要的,那么概念对于类别的预测应该是显著的。为了从这三个角度评估MOCE,我们通过亚马逊Mechanical Turk (AMT)进行了人类评估,以验证一致性和有意义性,并进行了SSC(最小充分概念)测试和SDC(最小破坏概念)测试,如[14]中所做。
(1) 一致性测试:在这里,我们进行了入侵者检测实验,要求每位参与者从六个图像中选择一个在语义上与其他图像不同的图像(即,入侵者概念)。图10展示了一个包含6个MOCE提取的图像的示例问题,其中5个图像来自同一类别(以狗为例)的相同概念聚类,其余一个来自与该类别相关联的另一个聚类。参与者选择正确答案的准确性越高,就意味着MOCE识别的概念就越一致。我们创建了17个这类问题,并向AMT上的88名参与者展示了这些问题。向每位参与者展示的问题是随机排序的。
图11(a)显示了每个类别的准确性。总体而言,参与者平均以96.18%的准确率正确检测到了入侵者概念,这证实了MOCE识别的概念是一致的:在语义上彼此不同。同时,从“Football helmet”类别提取的概念的入侵者检测准确度最低。图11(b)是该类别的问卷。由于(d)是足球运动员的服装,其余的是头盔,答案是(d)。然而,有14.77%的参与者选择了(b)作为入侵者。由于(b)是唯一一个绿色的头盔,而其余的主要是白色或红色,参与者可能选择了(b),它只是颜色显著不同。
(2) 有意义性测试:在这个实验中,我们再次要求同样的88名参与者回答另外10个问卷,其中图12中可以找到示例。每个问卷问两个问题:一个要求参与者选择哪两个图像集合更有意义,其中一个图像集合来自同一类别的顶级概念聚类,另一个图像集合来自同一类别中随机选择的另一个概念聚类。另一个问题要求他们提供简短的答案来描述他们选择的图像集合。如果参与者正确回答第一个问题,并且如果许多参与者使用相同的词来描述他们选择的图像,那么一个概念就可以被认为是对人类有意义的。
图13(a)显示了每个类别的有意义性结果。总体而言,参与者以92.05%的准确率选择了更有意义的概念。平均而言,75.11%的参与者使用了完全相同的词或同义词来表达他们选择的图像;换句话说,参与者用不同的词描述所选选项的百分比越高(灰色条的高度),猜测哪个更有意义的准确性就越低(红色虚线)。这个结果表明,人们不仅同意MOCE测量的概念的重要性,而且它也足够有意义,可以被人类理解和用语言表达。同时,在问卷中使用的类别中,最让参与者感到困惑的是“Dining table”和“Projectile”类别,它们分别在图13(b)和©中。在这些类别中,大约20%的参与者判断MOCE提取的顶级概念之外的某个概念更有意义。此外,在“Dining table”类别中,44.32%的参与者使用了桌子和家具等词汇,而不是腿。在“Projectile”类别中,48.86%的参与者使用了火箭、导弹、发射等词汇,而不是翅膀或尾巴(这里,我们认为翅膀和尾巴是同义词)。
(3) 重要性测试:我们进行了SSC测试和SDC测试来衡量提取出的概念的显著性。SSC测试寻找足够的预测目标类别的最小概念集,SDC测试寻找移除它们会导致错误预测的最小概念集。从每个数据的验证集中,我们随机抽取了1,000张与之前选定的类别相关的图像,并从每个图像中提取了前5个概念。然后,按照重要性的顺序,逐个从图像中移除概念或添加到空白图像上,然后模型预测类别。图14显示了每一步的准确性,每个图中顶部写的两个方法分别表示概念提取方法和评估方法(例如,ACE / TCAV表示概念是通过ACE提取并通过TCAV评估的)。我们还尝试添加/移除了5个最不重要的概念(表示为Bottom)和5个随机选择的概念(表示为Random)进行比较。我们观察到,添加/移除MOCE识别和评估的前5个概念对提高/降低准确性的影响最大,这表明了我们的概念提取和评估方法的有效性。使用MOCE作为概念提取器或评估方法时,变化较小。
F. 超参数测试
我们还测试了根据变化的α和β的概念。我们尝试了以下三种组合:(1) α/β = 1.0/1.0,意味着α和β同等重要,(2) α/β = 0.5/1.0,表示β的重要性是α的两倍,(3) α/β = 1.0/0.5,意味着α的重要性是β的两倍。总体而言,我们观察到结果对α和β的值不太敏感。然而,我们观察到在一些罕见的情况下,当β大于或等于α时,VGG提取的概念有些难以理解,如图15所示。我们建议将α = 1.0和β = 0.5作为默认值,以获得最合理的结果。
我们继续分析了MOCE提取的概念如何根据γ的值变化。图16展示了其中的一个结果。总体而言,我们发现γ越小,识别出的概念就越详细和细粒度,γ越大,找到的概念就越高级。例如,当γ为25%时,ResNet50将狗的面部识别为一个单一概念,而当值为5%时,识别出的是眼睛及其周边区域。我们建议将10%作为γ的默认值:在分析了各种结果后,当γ设置为10%时,识别出的概念既不过于宽泛也不过于细粒度,因此提供了合理的结果。
V. 讨论
MOCE具有若干超参数,这些超参数会影响结果的表现。如果MOCE能够系统地确定超参数的值,那将是极好的。然而,对概念质量的评估在某种程度上是主观的,这使得系统性地固定超参数值成为一个困难的任务。因此,最终的选择仍然需要人类的参与,以选择一组能够产生“合理”结果的超参数。
考虑到实用性,我们测试了VGG、ResNet和Inception模型。这些深度模型有利于生成有意义的表示,这对于产生放大的图像块是必要的。然而,我们推测MOCE可能不适用于浅层网络(例如,仅包含2-3层),因为这些网络在生成足够有意义的表示以进行放大方面是有限的。另一个讨论点是,MOCE可能不适用于比ImageNet或Places365更小的数据集。我们在附录中测试了ResNet20与CIFAR10数据集,其结果可以在线找到。我们可以观察到概念被很好地提取,但本质上可视化的分辨率很低。此外,我们观察到一个概念在某种程度上是重叠的问题,因为独特补丁的数量很小。
最后,MOCE识别的概念由单个连通组件表示,这意味着它不可能同时发现两个掩码,以捕获一对:例如,猫的两只眼睛、耳朵或胡须。单个组件可能表示包括两个部分的概念(例如,兔子的两只耳朵可以在单个组件中表示),但有时它只匹配一对中的一个部分作为概念(例如,只能捕获猫的一只眼睛作为概念)。尽管这样的结果符合我们不经人为干预反映模型自身视角的基本目标,但可能会有问题,因为理想情况下,一对中的两个部分都应该被关注,而不仅仅是一个部分。因此,我们计划在未来的工作中通过引入概念的层次结构(例如,眼睛 → 眼睛对 → 脸部 → …)来缓解这个问题。
VI. 结论
现有的基于概念的解释方法依赖于人类对概念的定义或分割方法,这可能阻碍了对模型真正视角的理解。为了解决这个限制,我们提出了MOCE,这是一种新的方法,用于发现解释CNN的关键概念。与现有方法不同,MOCE仅依赖于目标模型的激活和输出值来发现和评估概念,这使其能够捕捉模型对每张给定图像的独特视角。此外,MOCE被设计为易于应用于任何在任何标记数据集上训练的CNN模型。通过我们广泛的实验,我们证实MOCE能够发现一致的、有意义的和重要的关键概念,从而提供人类易于理解的解释。MOCE识别的概念反映了每个模型的独特视角,这些视角不受人类注释或分割方法等外部因素的影响。
我们已经展示了可以从所有层提取概念。然而,用户需要选择在哪个层计算概念。在未来的工作中,我们旨在通过开发一个评分函数自动化这个过程,该函数可以一次性比较从所有层提取的概念。这个函数将是有用的,因为高级概念对于某些类别是有益的,而低级概念对于其他情况可能更为重要。如果能够根据不同的类别自动决定应该提供哪种层次的概念,那将是非常好的。
声明
本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。