Label-Free Concept Bottleneck Models (Label-free CBM)

本篇文章发表于ICLR 2023。

论文链接:https://arxiv.org/abs/2304.06129

代码链接:

GitHub - Trustworthy-ML-Lab/Label-free-CBM: A new framework to transform any neural networks into an interpretable concept-bottleneck-model (CBM) without needing labeled concept data

一、概述

前几篇文章已经介绍了CBM的主要缺点,即annotation以及accuracy-interpretability之间的 compromise(几乎每一篇文章都会说一遍,CBM确实挖了一个深坑)。在这里就不对CBM的特点做重复讨论了。

本篇文章从题目就可以看出是不需要标注的一种CBM,此外,它是第一个扩展到ImageNet的CBM。与PCBM类似,它也允许将任何神经网络转化为Label-free CBM,主要优点有:

  • scalable: the first CBM that scales to ImageNet;
  • efficient: creating a CBM takes only a few hours even for very large datasets;
  • automated: training it for a new dataset requires minimal human effort.

二、方法

  • 相关方法:

(i) Post-hoc explanations

  • LIME
  • SHAP
  • 这些方法大多提供的都是local explanation,并且是近似的,并不总是准确的、忠于原模型的;此外,提供像素级别的解释也许没那么helpful,还需要后续大量的人为主观分析。

(ii) More interpretable final layer

  • Making the FC layer sparse
  • Concept Whitening
  • CEM

(iii) CBM

  • PCBM
  • TCAV
  • 作者提到PCBM同样需要annotated concept data;并且在不需要annotated data的情况下,必须使用CLIP的text encoder;此外,不带有残差块的PCBM的performance远远低于standard DNNs。

(iv) Model editing/debugging

(v) CLIP-Dissect


        👆Label-free CBM与其它模型在不同维度的比较。

  • 本文方法

    Label-free CBM的建立需要以下四个步骤:​​​​​

  • Step 1: Create the initial concept set and filter undesired concepts;
  • Step 2: Compute embeddings from the backbone and the concept matrix on the training dataset;
  • Step 3: Learn projection weights W_C to create a Concept Bottleneck Layer (CBL);
  • Step 4: Learn the weights W_F to the sparse final layer to make predictions.

接下来让我们看一下每个步骤具体的实现方式。

(i) Step 1: Concept set creation and filtering

A. Initial set creation

在原始的CBM中,concept的定义是由domain experts给出的,而本文使用GPT-3来生成concept. 具体来说,使用以下prompt询问GPT-3:

1. List the most important features for recognizing something as a {class}:

2. List the things most commonly seen around a {class}:

3. Give superclasses for the word {class}:

(完整的prompts以及example outputs可以在Appendix Fig.10和Fig.11中找到。)

为了减少结果的方差,询问GPT-3两次并把所有得到的结果整合起来;可以预见的是,整合在一起的这些结果是是很庞大的,并且会存在冗余、噪声,因此需要在B步骤中对其进行filtering;此外,作者发现使用GPT-3产生的结果好于在PCBM论文中使用的ConceptNet,具体原因分析见Appendix A.6。

B.Concept set filtering

使用filtering以improve the quality and reduce the size of the concept set:

1. 删除长度过长的概念: 删除了所有长度超过30个字符的concepts,以保证概念simple并且避免不必要的complication;

2. 删除与类别过于相似的concepts:通过使用CLIP ViT-B/16 text encoder以及all-mpnet-base-v2 sentence encoder,将concept与class映射到text embedding space中,进一步比较二者在该空间中的cosine similarity;综合考虑计算得到的两个相似度(一个CLIP text encoder,一个all-mpnet),并删除所有similarity大于0.85的concepts;

3. 删除彼此相似的concepts:方法同2,删除与已经存在于概念集中的concept相似度大于0.9的concepts;

4. 删除在训练集中不存在的concepts:因为GPT并没有看到training set,因此它给出的concept也许并不存在于当前training set;设置一个dataset-specific cut-off,然后remove any concepts that don't activate CLIP highly (delete all concepts with average top-5 activation below the cut-off)

5. 删除无法正确projection的concepts:Remove neurons that are not interpretable from the CBL. 这一步在Step 3之后进行,会在稍后详细说明。

(ii) Step 2 and 3:Learning the concept bottleneck layer (CBL)

现在我们已经有了经过filtering后的合适的interpretable concept set,接下来需要learn a projection from the bakbone model's feature space into a space where axis directions correspond to interpretable concepts. 即,从feature space到concepts的projection,对应的参数为W_C

具体来说,由Step 1产生的瓶颈层的目标概念 \mathcal{C}=\left \{ t_1,...,t_M \right \}

由下游任务提供的训练集(图片)\mathcal{D}=\left \{ x_1,...x_N \right \}

接着,计算并保存CLIP concept activation matrix P :

P_{i,j}=E_I(x_i)\cdot E_T(t_j)

其中 E_I 和E_T 分别是CLIP image and text encoders;

W_c is initialized as a random M\times d_0 matrix where d_0 is the dimensionality of backbone features f(x),i.e. f(x_i)\in\mathbb{R}^{d_0}

We define f_c(x)=W_cf(x),where f_c(x_i)\in\mathbb{R}^M

Use k to denote a neuron of interest in the projection layer, and its activation pattern is denoted as q_k=[f_{c,k}(x_1),...,f_{c,k}(x_N)]^\textup{T}\in \mathbb{R}^N and f_{c,k}(x)=[f_c(x)]_k.

即,q_k 是bottleneck layer第 k 个神经元对应的所有图像样本的activation(一共 M 个神经元,与概念的数量对应起来);

为了使bottleneck layer的activation可以有效代表concept,需要对它的activation也就是 q_k 做一些限制;以往的CBM做法是将此activation与ground-truth concept label(0或者1)对应起来,而在本篇文章中,作者使用一种相似性度量以限制 q_k 与对应的concept之间的强相关性,具体为:

L(W_c)=\sum_{i=1}^{M}-sim(t_i,q_i):= \sum_{i=1}^{M}-\frac{\bar{q_i}^3\cdot \bar{P_{:,i}}^3}{\left \|\bar{q_i}^3 \right \|_2\cdot \left \| \bar{P_{:,i}}^3 \right \|_2}

\bar{q} 代表归一化的 q (均值为0方差为1),sim代表cos cubed similarity(其实就是cosine similarity升到3次并归一化);升到3次可以使similarity对highly activating inputs更敏感;由于本质还是余弦相似度,所以得到的结果介于-1到1之间;我们来仔细分析一下这个式子(为了让我以后还能看懂所以这个地方写的比较啰嗦...):

t_i 是什么?t_i 是第 i 个concept对应的描述文本;\mathcal{C}=\left \{ t_1,...,t_M \right \}

q_i 是什么?q_i 是在所有图像\left \{ x_1,...x_N \right \}上第 i 个neuron产生的activation;

因此也就理解了为什么要最大化 t_i 与 q_i 的余弦相似度了——要尽量使第 i 个neuron产生的activation q_i 与第 i 个concept对应的描述文本 t_i 相匹配;

而具体做法就是最小化矩阵 P 的第 i 列 {P_{:,i}} 与 q_i 的距离——

{P_{:,i}} 又是什么? {P_{:,i}} 代表矩阵 P 的第 i 列,可以观察一下矩阵 P

P 的第 i 列 {P_{:,i}} 是文本 t_i 的encoding与所有图像\left \{ x_1,...x_N \right \}的encoding的乘积;

q_i 是bottleneck layer第 i 个neuron在所有图像\left \{ x_1,...x_N \right \}上产生的activation;

最小化 {P_{:,i}} 与 q_i 的距离就是使第 i 个neuron在每一个图像上产生的activation与concept matrix的第 i 列尽可能一致;

再具体一点:

回顾在CLIP的Concept Matrix中,位于以下蓝色方框的值应该很大,其它的位置值很小:

对角线一定是最相关的(蓝色),因为CLIP输入的image和text是成对的,本身就是匹配的;而其它位置大概率是不相关的,但因为不同图片中可能包含共享的概念,因此也有配对的情况(图中没有画出来);

Label-free CBM使用的是预训练好的CLIP text and image encoders,但由于此任务是无监督的,即,图片的顺序和概念的顺序不是一一对应的,因此分布情况不一定就在对角线上。比如:

第1张图像中是一个足球,第3张图像是一个香蕉,第6张图像是一个柠檬...

第1个text是“黄色”,第4个text是“酸的”,第5个text是“圆的”...

那么对应的矩阵 P_{N\times M}

并且,我们还可以发现CLIP的matrix是N行N列的,而 P_{N\times M} 的行与列不一定相等,一般而言M>> N,即概念数量远多于图片数量(一张图片可以有很多概念)。

再回顾一下 q_i :是第 i 个神经元在所有图像\left \{ x_1,...x_N \right \}上产生的activation;比如现在我们希望Concept Bottleneck Layer的第1个神经元要与“黄色”这一concept对应起来,那么第1个神经元就要在输入为“香蕉”与“柠檬”的时候产生大的激活值,而在输入为“足球”的时候产生较小的激活值,而这恰好与我们使用CLIP已经计算得到的P 的第1列十分相近,因此,只需要拉近它们二者的距离就能保证我们的神经元与概念一一对应。

OK,到此为止真相大白了!CLIP有点像一个老师,教Label-free CBM使CBL的neurons与concepts对应起来。

本文使用Adam训练 W_c ,并在validation时删除所有相似度小于0.45的concepts(这一步对应了concept filtering中的Step 5,即,删除无法正确projection的concepts)无法正确地projection的原因可能是pretrained CLIP无法将我们提供的图片、概念很好地编码到embedding space中,因为我们毕竟只是把CLIP的encoders拿过来用,以实现无监督,而并没有训练或fine-tune;

删除这些concepts之后,W_c 的维度也应该相应变化,即 W_c\in\mathbb{R}^{(M-\Delta )\times d_0}

(iii) Step 4: Learning the sparse final layer

现在的目标是训练final predictor with the FC layer W_F\in\mathbb{R}^{d_z\times M},where d_z is the number of output classes. 我们希望 W_F 是sparse的(因为sparse已经被证明是更具有可解释性的);

训练更新 W_F 时,固定backbone f(x) 以及学习好的concept projection W_c,优化目标如下:

\min\limits_{W_F,b_F}\sum_{i=1}^{N}L_{ce}(W_Ff_c(x_i)+b_F,y_i)+\lambda R_\alpha (W_F)

                前一项是交叉熵损失,后一项是一个正则项,用以控制 W_F 是sparse的:

R_{\alpha }(W_F)=(1-\alpha )\frac{1}{2}\left \| W_F \right \|_F+\alpha \left \| W_F \right \|_{1,1}

使用GLM-SAGA solver来optimize目标函数,选择 \alpha =0.99,"\lambda was chosen such that each model has 25 to 35 nonzero weights per output class",这相当于0.7~15%的weights是nonzero的。


三、实验及结果

在多个数据集上的表现超越了PCBM以及sparse standard black-box.

Final layer weights的visualization,并展示模型如何区分两个相似的类,比如橘子与柠檬。

由于权重是sparse的,因此很容易将权重可视化。

在实验过程中,作者发现模型所犯的四种不同类型的错误:

  • Type 1: Incorrect/ambiguous label. 即Noisy labels,是数据本身的问题,作者没有关注这类错误;
  • Type 2: No sufficient concept in CBL. 这个问题在CBM模型中普遍存在,还是之前谈到过dinformation bottleneck的问题,比如我们要区分两条蛇的具体种类,这可能需要特别精细的概念,有些概念甚至无法用语言描述;作者也没有关注这一类错误,因为需要重新训练projection W_c 以及final layer;
  • Type 3: Incorrect concept activations. 类似于CBM针对specific example的local intervention.可以使用test-time intervention进行干预:

  • Type 4: Incorrect final layer weight W_F. 类似于PCBM针对model的global intervention:
    • 找到预测错误的例子。这个例子对concept的预测是正确的,但是对最终结果的越策确实错误的,这就说明最后一层的权重是有问题的;
    • 找到哪一个concept对应的权重是有问题的。这是最困难的一步,因为很可能改变了某一个concept对应的权重之后,原来错误的预测变成了正确的,但是原来正确的也可能变成错误的...
    • 调整weights。需要注意的就是不要把原来正确的给改错了,要用validation检验一下。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
CBM-DC2超声波程序是一种基于超声波技术的测量程序。CBM是嵌入式系统名称,DC2则表示第二代设备。该程序主要应用于测量距离、检测物体的位置、识别物体的形状等方面。 CBM-DC2超声波程序的工作原理是通过超声波发射器发射超声波信号,然后接收器接收到被物体反射后的声波信号。通过计算发射与接收之间的时间差,并结合声速的知识,可以准确地测量出被测物体与传感器之间的距离。这种测量方法具有非接触、快速、准确等优点,因此广泛应用于各个领域。 CBM-DC2超声波程序可以用于测量物体的距离。通过将传感器安装在测量物体附近,即可实时测量物体与传感器之间的距离。比如在机械领域中,可以用来检测机械设备中零件的位置和间距,以及机器人中的障碍物位置,可广泛应用于自动化生产线中。 此外,CBM-DC2超声波程序还可以用于检测物体的位置。通过分析声波信号的强弱或回波的时间差,可以确定物体在空间中的位置。这在自动驾驶领域中具有重要意义,可以用于检测周围车辆、行人或其他障碍物的位置和距离,以保证交通安全。 最后,CBM-DC2超声波程序还能用于识别物体的形状。通过分析声波信号的回波,可以获得物体的轮廓和形状信息。这在制造业中具有广泛的应用,可以用于产品检测、零件测量等,以提高生产效率和质量管理水平。 总之,CBM-DC2超声波程序是一种基于超声波技术的测量程序,可以应用于测量距离、检测物体位置和识别物体形状等多个领域,具有非接触、快速、准确等优点,在各个领域中发挥着重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

exploreandconquer

谢谢老板,老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值