Probabilistic Concept Bottleneck Models (ProbCBM)

本篇文章发表于ICML 2023。

文章链接:https://arxiv.org/abs/2306.01574

代码链接:GitHub - ejkim47/prob-cbm: Official code for "Probabilistic Concept Bottleneck Models (ICML 2023)"

Probabilistic Concept Bottleneck Models (ProbCBM)_第1张图片


一、概述

        对于基于概念的模型(CBM)而言,可靠的concept predictions对于模型的可信度是至关重要的,存在于数据中的ambiguity会严重损害模型的可靠性;然而,data中的ambiguity却是广泛存在的,CBM却“predicts concepts deterministically without considering this ambiguity”。

        针对以上问题,本文提出ProbCBM——使用probabilistic concept embeddings,ProbCBM将concept prediction中的uncertainty进行建模,基于concept以及其对应的uncertainty为最终的prediction提供explanations;此外,由于class uncertainty来源于concept uncertainty,因此我们也可以使用concept uncertainty来解释class uncertainty。

(类似于standard NNs与Bayesian NNs的区别,前者的weights是deterministic的,而后者的weights遵循一个概率分布。)

        在Introduction部分作者指出了post-hoc方法的不足:cannot entirely explain the model's prediction and provide approximate explanations in a human-understandable form, which may lead to incorrect explanations(Rudin, 2019.https://arxiv.org/abs/1811.10154).

        而concept-based model如CBM有着它的不足,“The concept prediction in CBM is trained as deterministic binary classfication by using a dataset that includes concept labels indicating the existence 1 or non-existence 0 of a concept.”

        然而,concept的存在与否有时是ambiguous的,比如下图这个例子:

Probabilistic Concept Bottleneck Models (ProbCBM)_第2张图片

        这四幅图片都对应于同一种鸟,即绿松鸦(green jay);然而,它们之间的concept却不共享、混淆、存在ambiguity,要么没有尾巴、要么没有肚子、要么颜色不统一。而当使用离散概念的时候,这个问题可能会进一步加剧;并且在实际标注概念的时候,为了减轻标注负担,通常将相同的concept分配给不同的图像,但是如上图所示这是不合理的,因为有些example并不包含所提供的概念;反过来,提供的概念也不一定足以解释一张图片;此外,data augmentation,比如随机裁剪也会引入一定的视觉歧义。

        ProbCBM将图像project到具有probabilistic distribution的concept embedding中,对概念的不确定性进行建模;随后,将concept embeddings投影为class embeddings, "Thus, the final class prediction is derived from concept prediction."

        总之,ProbCBM不同于CBM在瓶颈层将concept表征为确定性的值/向量,而是使其服从一个概率分布,由此引入uncertainty,使得预测更加可靠。即,不仅提供concept prediction,还提供concept uncertainty。

Note:uncertainty有三种:(i) model uncertainty (comes from the model parameters); (ii) data uncertainty (comes from the noise of the data); (iii) distribution uncertainty. 而probabilistic embedding主要考虑的是data uncertainty——“where the representations of input samples are expressed as probabilistic distributions.”


二、方法

Probabilistic Concept Bottleneck Models (ProbCBM)_第3张图片

        图像被映射为concept embedding space中的概率嵌入,之后probabilistic concept embedding又被映射到class embedding space。

        越大的椭圆代表越多的ambiguity,不确定性也越高。

        实心点代表concept的存在,×代表concept不存在,可以看到有些concept并不存在于图像中(或只存在于部分图像中),这就是所谓的ambiguity。

Probabilistic Concept Bottleneck Models (ProbCBM)_第4张图片

        与CBM类似,ProbCBM有一个concept predictor以及一个class predictor;

        训练数据具有形式:\left \{ (x^{(i)},\mathcal{C}^{(i)},y^{(i)}) \right \}_{i=1}^{N}​(仍然需要annotation)

(i) Probabilistic Concept Modeling

A. Probabilistic conept embedding

Given an input x​, the concept predictor makes probabilistic concept embedding z_c​ for each concept c\in\mathcal{C}​, which is formulated as a normal distribution with a mean vector and a diagonal covariance matrix.

p(z_c|x))\sim \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))

        where \mu_c,\delta_c\in\mathbb{R}^{D_c}​ and D_c​ represents the dimension of the concept embedding space.

        \mu_c,\delta_c​ 通过probabilistic embedding module (PEM)进行预测,every concept uses a shared backbone and individual PEMs.

B. Concept prediction

        输入图像经过backbone得到对应的feature,将feature输入到PEM中,得到 N_c​ 个均值以及 N_c​ 个方差;然后我们在这 N_c​ 个分布中采样以得到每个concept在当前采样步下的representation,即 z_c​,;z_c​ 在不同的采样时刻是不一样的。

        采样得到 z_c​ 后,需要判断 z_c​ 对应的图像中是否真的存在概念 c​,即计算 p(c=1|x)​;具体做法如下:

        从 p(z_c|x)​ 中采样 N_s​ 个点,

\left \{ z_c^{(n)} \right \}_{n=1}^{N_s}

        概念 c​ 存在于 x​ 的概率用Monte-Carlo estimation进行估计,

p(c=1|x)\approx \frac{1}{N_s}\sum_{n=1}^{N_s}p(c=1|z_c^{(n)})

p(c=1|z_c^{(n)})=s(a(\left \| z_c^{(n)}-z_c^- \right \|_{2}-\left \| z_c^{(n)}-z_c^+ \right \|_{2}))

        a>0​ is a learnable parameter and s(\cdot )​ represents a sigmoid function.

        z_c^{+}​ and z_c^{-}​ are tainable anchor points in \mathbb{R}^{D_c}​.D_c​ represents the  dimension of the concept embedding space)

        如果在时间步 n​ 采样得到的 z_c^{(n)}​ 距离 z_c^{+}​ 距离更近(Euclidean distance),则概念的存在概率增加;如果 z_c^{(n)}​ 距离 z_c^{-}​ 距离更近,则概念存在的概率降低。

(ii) Probabilistic Class Modeling

A. Class embedding

        将时间步 n​ 下对每一个概念采样得到的 z_c^{(n)}=[z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}]​ 使用FC层投影到class embedding space,得到当前时间步 n​ 对应的class embedding h^{(n)}\in\mathbb{R}^{D_y}​,\mathbb{R}^{D_y}​ is the dimension of the class embedding space:

h^{(n)}=\mathbf{w}^\textrm{T}([z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}])+\textbf{b}

B. Class prediction

The logit for class k​ is defined by the Euclidean distance between the class embedding for the image and a trainable anchor point for class k​, g_k\in\mathbb{R}^{D_y}​.

We obtain the class probabilities by applying softmax to the logits for overall classes. The classification probability is obtained via Monte-Carlo estimation:

p(y_k=1|x)\approx \frac{1}{N_s}\sum_{n}^{N_s}\frac{\textrm{exp}(-d\left \| h^{(n)}-g_k \right \|_2)}{\sum _{k'} \textrm{exp}(-d\left \| h^{(n)}-g_{k'} \right \|_2)}

        where d>0​ is a learnable parameter.

        由于 h^{(n)}​ 由 z_c^{(n)}​ 得来,z_c^{(n)}​是在时间步 n​ 下对 p(z_c|x)​ 采样得到的,因此 h^{(n)}​ 也相当于是采样得到的;最终的classification probability将同样由MC estimation得到,对应上面的公式。

        h^{(n)}​ 与 anchor point g_k​ 距离(Euclidean distance)越近,分类概率就越高。

(iii) Training and Inference

A. Training objective

We additionally use a KL divergence loss between the predicted concept embedding distributions and the standard normal distribution.

This prevents the variances from collapsing to zero and makes the distribution \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))have only salient information for predicting the probability that the concept c exists.

\mathcal{L}_{\textrm{KL}}(c)=\mathbf{KL}(\mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))||\mathcal{N}(0,I))

        即,用KL散度作为正则项,使 \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))​ 趋近于标准正态分布,避免方差坍缩为0,并保证 \mathcal{N}(\mu_c,\textrm{diag}(\sigma _c))​ 只有用于预测概念存在的显著信息。

        Thus, the overall training loss for the concept predictor is expressed as:

\mathcal{L}_{\textrm{concept}}=\mathcal{L}_{\textrm{BinaryCE}}+\lambda _{\textrm{KL}}\cdot \mathcal{L}_{\textrm{KL}}

        We use a cross-entropy loss for training class predictor (\mathcal{L}_{\textrm{class}}​).

B. Training scheme

        分别训练concept predictor与class predictor

        首先用 \mathcal{L}_{\textrm{concept}}​ 训练concept predictor,用以实现从输入到concept embedding space的准确projection;

        然后用 \mathcal{L}_{\textrm{class}}​ 训练class predictor;Note:以概率 p_{\textrm{replace}}​ 的概率将concept predictor预测并采样得到的 z_c^{(n)}\sim p(z_c|x)​ 替换为anchor point (z_c^{+}​ or z_c^{-}​ ),以 (1-p_{\textrm{replace}})​ 的概率不替换;这样做可以防止class predictor使用incorrect concepts进行学习。

C. Inference

Inference can be done by approximating the probabilities via Monte-Carlo sampling or using \mu_c​ as z_c​ without sampling.——可以通过Monte-Carlo estimation来估计最终的概率值,或者直接使用高斯分布的均值作为 z_c​ 从而得到最终的概率值而不用采样

(iv) Derivation of Uncertainty

        ProbCBM利用probabilistic modeling,使我们能够直接从预测的概率分布中估计不确定性,而不需要采样。具体而言,使用协方差矩阵的行列式来量化uncertainty,因为行列式代表了概率分布的体积,体积越大,uncertainty越大。由于the distribution of the concept embedding是用diagonal covariance matrix来参数化的,所以每个概念 c​ 的不确定性可以用对角元素 \sigma_c​ 的几何平均值来计算。

        而class embedding h^{(n)}​ 是the concatenation of concept embedding,即

        z_c^{(n)}=[z_{c_1}^{(n)},z_{c_2}^{(n)},...,z_{c_{N_c}}^{(n)}]​ 的linear transformation:

        因此,the class embeddings follow \mathcal{N}(\textbf{w}^{\textrm{T}}\mu+\textbf{b},\textbf{w}^{\textrm{T}}\Sigma\textbf{w} )​,

        where \mu=[\mu_{c_1},\mu_{c_2},...,\mu_{c_{N_c}}]​ and \Sigma =\textrm{diag}([\sigma _{c_1},\sigma _{c_2},...,\sigma _{c_{N_c}}])

        Hence, the determinant of \textbf{w}^{\textrm{T}}\Sigma\textbf{w}​ serves as an uncertainty measure of class prediction.

(v) Architecture

Probabilistic Concept Bottleneck Models (ProbCBM)_第5张图片


三、实验及结果

使用合成的数据集进行实验:

Probabilistic Concept Bottleneck Models (ProbCBM)_第6张图片Probabilistic Concept Bottleneck Models (ProbCBM)_第7张图片

1. 将0-9共10个数字分为五组,每组的两个数字有相同颜色;

2. 从其中四组中各抽取1个数字构成新的图像(图像中含有4个数字),并分为12个类别;

3. 每个数字就作为图像中的一个concept;

4. 为了增加diversity,可以随机抹除一个数字。

Probabilistic Concept Bottleneck Models (ProbCBM)_第8张图片

        图(左)“concept 1”存在的概率为1;图(中)“concept 1”存在的概率为0(很自信),因为它检测到了0的存在,而有0就不可能有1(符合事实);

        图(右)既没有0也没有1,这个时候对于“concept 1”存在预测的概率虽然很小,但不确定性uncertainty很大。(模型在疑惑:怎么0和1都没有呢?)

Probabilistic Concept Bottleneck Models (ProbCBM)_第9张图片

        通过遮挡,人为地引入ambiguity。观察遮挡前后分类概率和不确定度的变化,以及concept uncertainty的变化,发现遮挡后对应concept的不确定度提高。

        并且,遮挡后在embedding space中对应的椭圆(黄色)更大,代表着不确定度更大。

Probabilistic Concept Bottleneck Models (ProbCBM)_第10张图片

        Real-world datasets的实验结果。图中展示了在不同图像中可能导致的concept ambiguity;左侧鸟所有的概念都能较为清楚地观察到,而中间和右侧的鸟某些concept无法被观察到,表现为uncertainty增加。

Probabilistic Concept Bottleneck Models (ProbCBM)_第11张图片

        人为改变图像使其ambiguous:例如裁剪或改变色调。这会影响原始图像中的某些concept(如物体被删除,或颜色改变),从而增加不确定度。

        实验结果与预期相符。

Probabilistic Concept Bottleneck Models (ProbCBM)_第12张图片

        leg color的两个anchor point;

        如果图像中看不到leg,则体现为较大的椭圆,并且偏离anchor更远。

Probabilistic Concept Bottleneck Models (ProbCBM)_第13张图片

        uncertainty越大,performance越差。

Intervention

Probabilistic Concept Bottleneck Models (ProbCBM)_第14张图片

        干预的concept越多,accuracy越高,class的不确定度越低。

Probabilistic Concept Bottleneck Models (ProbCBM)_第15张图片

        干预的例子,红色为预测错误的concept,干预后分类结果正确。干预后,uncertainty相应的变为0,因为此时concept是人为确定的,不存在不确定度。

        最后是本篇论文的一些讨论:

        Limitations:和CBM类似,需要annotation,受人工标注质量的影响较大。

        一个潜在的问题:图像中可能包含计算机能识别但人类无法理解的concept,但人类无法意识到,甚至会避免这种concept的出现,即使它们对于分类是有用的。

你可能感兴趣的:(可解释深度学习,笔记,人工智能,深度学习,计算机视觉,论文阅读)