Faithful Vision-Language Interpretation via Concept Bottleneck Models (FVLC)

news2025/3/13 17:15:21

本篇文章发表于ICLR 2024。

文章链接:https://openreview.net/attachment?id=rp0EdI8X4e&name=pdf


一、概述

这篇文章也是CBMs“大家庭”的一员。众所周知,CBMs需要大量的人工annotation,Label-Free CBM借用pre-trained多模态模型自动生成concepts在一定程度上解决了这一问题。但使用pre-trained模型存在unstable的问题,因此作者在Label-Free CBM的基础上提出了更加stable的模型——Faithful Vision-Language Concept (FVLC) models。

作者指出,faithful concept应该具备四个特性:

  • Faithful concept应该尽可能与original concept一致:Significant overlap between the top-k indices of the “faithful concept” and the original concept, ensuring interpretability.
  • 在concept generation过程中可以抵抗噪声和干扰:Inherent stability, with the concept vector remaining robust against random noise and perturbations during LLM concept set generation.
  • 预测结果要与vanilla CBMs保持一致:A prediction distribution close to that of the vanilla CBMs, preserving its outstanding performance.
  • Output distribution具备稳定性(stable):Stable output distribution, remaining robust during self-supervised learning and LLM concept set generation, even in the presence of perturbations.

二、方法

在具体介绍本文提出的方法之前,我们先来回顾一些知识点。

1. Concept Bottleneck Models (CBMs)

首先是概念瓶颈模型CBMs,这一部分已经写过很多篇博客了。如果大家对CBMs熟悉的话,应该知道CBMs有两大主要缺点:1. 因为原始数据特征的不完全提取而导致的性能损失; 2. 需要大量的人工标注。针对这两个问题,已经有大量文献提出了潜在的解决方法,比如SENN、PCBM、Label-Free CBM等。

回顾一下CBMs的notation:We consider a classification task with a concept set denoted as \mathcal{C}=\left \{ p_1,...,p_k \right \} and a training dataset represented as \left \{ (x_i,y_i,c_i) \right \}_{i=1}^N, where for i \in [N]x_i \in \mathbb{R}^d is the feature vector, y_i \in \mathbb{R}^{d_z} denotes the label, where d_z corresponds to the number of classes, and c_i \in \mathbb{R}^k denotes the concept vector whose j-th entry represents the weight of the concept p_j. In CBMs, we aim to learn two representations, one transforms from the input space to the concept space, which is represented by g:\mathbb{R}^d\rightarrow \mathbb{R}^{k}. The other one maps from the concept space to the prediction space, which can be denoted by f:\mathbb{R}^k\rightarrow \mathbb{R}^{d_z}. For any input x, we aim to make its predicted concept vector \hat{c}=g(x) and prediction \hat{y}=f(g(x)) to be close to its underlying ones.

2.  Label-free CBMs

Label-free CBMs有四个步骤:

Step 1: Concept set creation and filtering.

询问GPT-3一系列问题并做筛选,产生概念集合 \mathcal{C}

Step 2 and 3: Learning the Concept Bottleneck Layer (CBL). 

学习从特征空间到概念空间的prejection weights W_c。具体的做法是首先使用CLIP生成concept activation matrix M_{i,j}=E_I(x_i)\cdot E_T(P_j),其中 E_I 与 E_T 分别为CLIP中的image encoder与text encoder,矩阵 M 的行代表不同的图片,列代表不同的概念,其中的元素代表图片 i 中概念 j 的存在情况(表示为乘积)。W_c 是一个 k \times d 的矩阵,代表了特征空间到概念空间的映射,y(x,\boldsymbol{c})=W_{F}g(x)。用 l \in [d] 表示我们关注的神经元,所有图片在该神经元上对应的activation pattern可以表示为 q_l=\left[g_l(bf(x_1)),\cdots,g_l(bf(x_N))\right] ,优化目标是使得第 i 个神经元与第 i 个concept尽可能对齐/匹配,由以下式子给出:

\mathcal{L}(W_c)=\sum_{i=1}^k-\sin(P_i,q_i)=\sum_{i=1}^k-\frac{\bar{q_i}^3\cdot\bar{M_{:,i}}^3}{||\bar{q_i}^3||_2||\bar{M_{:,i}}^3||_2}

Step 4: After successfully learning the Concept Bottleneck Layer, the next step involves training the final predictor using the fully connected layer.

学习从概念到类别的映射 W_F\in\mathbb{R}^{d_z\times k}y(x,\boldsymbol{c})=W_{F}g(x)

接下来介绍本文提出的FVLC。

3. Faithful Vision-Language Concept

由于Label-free CBMs概念集合的产生依赖于GPT-3,因此可能会引入不稳定(instability)和扰动(perturbation)。此外,不仅概念会被干扰,输入图片也会不可避免地存在被干扰的风险,因此在以上情况下更需要保持概念的stability,也就是所谓的“faithful concept”。

那么什么是faithful concept?由上所述我们可以知道,faithful concept要具备当输入或概念集本身被扰动时概念向量仍然能够保持稳定的能力。我们应该对此进行合理的定义。(图片截取自原论文)

定义一:

两个概念向量按激活值从大到小的顺序排列后前 k 个concepts的overlap程度 V_k(x,x^{\prime})

此处是为了后面比较faithful concepts与original concepts之间的差异所作出的定义。

(注: T_k 是一个包含了concept索引的集合,而并不是具体的concept,因此后面对concept进行perturbation后,对于stable and faithful concept而言,这个索引集 T_k 是不会发生太大变化的,即使concept本身发生了变化。)

定义二:

  • Similarity of Explanation: faithful concept \tilde{g}(x) 与original concept g(x) 的 top-k1 overlap 程度大于等于 \beta_1,易知 \beta_1=1 对应于二者的top-k1 concepts完全相同。这一点是为了保证faithful concept要尽可能与original concept在前 k1 个concepts上保持一致;
  • Stability of Explanation: 进行 \rho 的扰动后的概念 \tilde{g}(x)+\rho 与扰动前的概念 \tilde{g}(x) 的top-k2 overlap程度大于等于 \beta_2,易知 \beta_2=1 对应于二者完全相同。这一点是为了保证扰动后概念向量仍然不会发生太大变化(具体来说是扰动后概念的rank尽可能与原来保持一致);
  • Closeness of Prediction: 用faithful concept与original concept产生的结果要尽可能一致,D 代表某种距离度量比如KL散度,\alpha_1=0 时对应于二者的预测结果完全一致;
  • Stability of Prediction: 对faithful concept进行扰动 \delta 后的预测结果不会发生太大变化,\alpha_2=0 时对应于二者的预测结果完全一致;

整体上,我们可以说: 

\color{blue}{for~any~given~x,~\tilde{c}=\tilde{\boldsymbol{g}}(x)~is~a~(D,R,\alpha,\beta,k_1,k_2)\text{-Faithful-Vision-Language~Concept}}

4. FVLC Framework

这一节的写作上有点乱,领会精神吧......

Sensitivity: 除了上面讨论的similarity与stability,sensitivity敏感性指的是,当我们排除掉(exclude)关键的concep时预测应该表现出敏感性,而对其进行微小扰动时应该表现出稳定性。

让我们再次回到定义二,总结一下各个参数的理想值应该是什么:

Top-k approach: \beta_1 尽可能接近于1;

Stability: R_1 应该尽可能大,\beta_2 尽可能接近于1;

Prediction: R_2 应该尽可能大,\alpha_1,\alpha_2 尽可能接近于0;

网络整体示意图:

整体的做法和Label-free CBM基本是一致的,只是使用 \mathcal{L}_1,\mathcal{L}_2,\mathcal{L}_3,\mathcal{L}_4 来限制网络以产生faithful concepts。总体的目标函数为:

\begin{aligned}&\min_{\tilde{W}_c}\mathbb{E}_x[\lambda_1D(y(x,\tilde{\boldsymbol{c}}),y(x,\boldsymbol{c}))-\lambda_2V_{k_1}(\tilde{\boldsymbol{g}}(x),\boldsymbol{g}(x))+\lambda_3\max_{||\delta||\leq R_2}D(y(x,\tilde{\boldsymbol{c}}),y(x,\tilde{\boldsymbol{c}}+\delta))\\&{-\lambda_4\max_{||\rho||\leq R_1}V_{k_2}(\tilde{\boldsymbol{g}}(x),\tilde{\boldsymbol{g}}(x)+\rho)}],\end{aligned}

这四项\mathcal{L}_1,\mathcal{L}_2,\mathcal{L}_3,\mathcal{L}_4分别对应于:prediction closeness,concept similarity,prediction stability,concept stability。

可以使用PSGD解决这个优化问题,但是因为top-k overlap function V_k 是不可微的,所以要用surrogate loss来替代。

具体来说,只优化前k个entries并简单地使用\ell_{1}\operatorname{-norm}使得它们尽可能接近,见下:

(然而,从交集变为\ell_{1}\operatorname{-norm}的“逐点匹配”,虽然使损失函数可微了,但对concept的rank也进行了限制。也就是说,如果是使用原本的交集操作,只要top-k中的concepts存在就行了,对顺序没有要求——比如perturbation之前top-k concepts的indices是{1,3,5,7},perturbation之后是{3,1,7,5},交集的结果是二者“完全重合”,但用\ell_{1}\operatorname{-norm}则不是。)

从而,放宽后的目标函数变为:

\begin{aligned}&\min_{\tilde{W}_c}\mathbb{E}_x[D(y(x,\tilde{\boldsymbol{c}}),y(x,\boldsymbol{c}))+\lambda_1\underbrace{\mathcal{L}_{k_1}(\tilde{\boldsymbol{g}}(x),\boldsymbol{g}(x))}_{\mathcal{L}_2}+\lambda_2\underbrace{\max_{||\delta||\leq R_2}D(y(x,\tilde{\boldsymbol{c}}),y(x,\tilde{\boldsymbol{c}}+\boldsymbol{\delta}))}_{\mathcal{L}_3}\\&+\lambda_3\underbrace{\max_{\|\rho\|\leq R_1}\left.\mathcal{L}_{k_2}(\tilde{\boldsymbol{g}}(x),\tilde{\boldsymbol{g}}(x)+\boldsymbol{\rho})\right]}_{\mathcal{L}_4}.\end{aligned}


三、实验及结果

Datasets: CIFAR-10、CIFAR-100 、CUB和Places365.

Addition of perturbations: 

  • Word perturbation 1 (WP1): 将full concepts输入到GPT-3并让其将5%或10%的单词替换为同义词;
  • Word perturbation 2 (WP2)选择text encoder的最后一层embedding,添加噪声:
  • x_{0}=x_{1}+\aleph(0,\sigma), \sigma=0.001
  • Input perturbation (IP): 向输入图像中添加高斯噪声\sigma=0.001

Evaluation Metrics: Total Concept Perturbation Change (TCPC) and Total Output Perturbation Change (TOPC).

\mathop{\mathrm{TCPC}}(c_{1},c_{2})=\|c_{1}-c_{2}\|/\|c_{1}\|,\mathop{\mathrm{TOPC}}(y_{1},y_{2})=\|y_{1}-y_{2}\|/\|y_{1}\|

Results:

Utility evaluation:

第一行standard指的是没有concept bottleneck layer的黑盒模型;

结果显示在各种扰动下FVLC的表现都是最好的。

Stability evaluation:

perturbation不会引起concept与prediction的较大变化;

Ablation Study:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1453640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle 基础入门指南

一、什么是Oracle? Oracle是一款由美国Oracle公司开发的关系型数据库管理系统。它支持SQL查询语言,并提供了丰富的功能和工具,用于管理大规模数据存储、处理和访问。Oracle被广泛应用于企业级应用中,包括金融、电信、零售等各行各…

Ubuntu Desktop - Details (设备详情)

Ubuntu Desktop - Details [设备详情] 1. OverviewReferences 1. Overview System Settings -> Details -> Overview ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

人力资源智能化管理项目(day10:首页开发以及上线部署)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 首页-基本结构和数字滚动 安装插件 npm i vue-count-to <template><div class"dashboard"><div class"container"><!-- 左侧内…

Code Composer Studio (CCS) - Comment (注释)

Code Composer Studio [CCS] - Comment [注释] References Add Block Comment: 选中几行代码 -> 鼠标右键 -> Source -> Add Block Comment shortcut key: Ctrl Shift / Remove Block Comment: 选中几行代码->鼠标右键->Source->Remove Block Comment s…

AD高速板常见问题和过流自锁

可以使用电机减速器来增大电机的扭矩&#xff0c;低速运行的步进电机更要加上减速机 减速电机就是普通电机加上了减速箱&#xff0c;这样便降低了转速增大了扭矩 HDMI布线要求&#xff1a; 如要蛇形使其等长&#xff0c;不要在HDMI的一端绕线。 HDMI走线时两边拉线&#xff0…

2023年中国数据智能管理峰会(DAMS上海站2023):核心内容与学习收获(附大会核心PPT下载)

随着数字经济的飞速发展&#xff0c;数据已经渗透到现代社会的每一个角落&#xff0c;成为驱动企业创新、提升治理能力、促进经济发展的关键要素。在这样的背景下&#xff0c;2023年中国数据智能管理峰会&#xff08;DAMS上海站2023&#xff09;应运而生&#xff0c;汇聚了众多…

如何清除谷歌浏览器的缓存?这里有详细步骤

如果你想解决加载或格式化问题&#xff0c;以改善你在谷歌Chrome上的浏览体验&#xff0c;那么清除缓存和cookie是一个很好的开始。以下是删除它们的方式和操作。 删除缓存和cookie时会发生什么 当你访问一个网站时&#xff0c;它有时会保存&#xff08;或记住&#xff09;某…

自然语言编程系列(三):自然语言编程工具

自然语言编程工具尝试让用户以更接近日常对话的方式描述任务&#xff0c;然后将其自动转换成合适的代码。 自然语言编程工具&#xff08;Natural Language Programming, NLP&#xff09;旨在降低编程门槛&#xff0c;使得不具备传统编程技能的用户能够以他们习惯的日常对话方式…

【开源】JAVA+Vue.js实现天然气工程业务管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…

排序前言冒泡排序

目录 排序应用 常见的排序算法 BubbleSort冒泡排序 整体思路 图解分析 ​ 代码实现 每趟 写法1 写法2 代码NO1 代码NO2优化 时间复杂度 排序概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递…

记录 | 验证pytorch-cuda是否安装成功

检测程序如下&#xff1a; import torchprint(torch.__version__) print(torch.cuda.is_available()) 或者用终端 Shell&#xff0c;运行情况如下

docker (六)-进阶篇-数据持久化最佳实践MySQL部署

容器的数据挂载通常指的是将宿主机&#xff08;虚拟机或物理机&#xff09;上的目录或文件挂载到容器内部 MySQL单节点安装 详情参考docker官网文档 1 创建对应的数据目录、日志目录、配置文件目录(参考二进制安装&#xff0c;需自己建立数据存储目录) mkdir -p /data/mysq…

SpringBoot实战:打造企业资产管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【C++航海王:追寻罗杰的编程之路】string类

目录 1 -> 为什么学习string类&#xff1f; 1.1 -> C语言中的字符串 2 -> 标准库中的string类 2.1 -> string类 2.2 -> string类的常用接口 3 -> string类的模拟实现 3.1 -> 经典的string类问题 3.2 -> 浅拷贝 3.3 -> 深拷贝 3.3.1 ->…

代码随想录算法训练营第三十四天|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

860.柠檬水找零 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 细节&#xff1a; 1. 首先根据题意就是只有5.的成本&#xff0c;然后就开始找钱&#xff0c;找钱也是10.和5. 2. 直接根据10 和 5 进行变量定义&#xff0c;然后去循环…

从MobileNetv1到MobileNetv3模型详解

简言 MobileNet系列包括V1、V2和V3&#xff0c;专注于轻量级神经网络。MobileNetV1采用深度可分离卷积&#xff0c;MobileNetV2引入倒残差模块&#xff0c;提高准确性。MobileNetV3引入更多设计元素&#xff0c;如可变形卷积和Squeeze-and-Excitation模块&#xff0c;平衡计算…

挑战杯 Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; Yolov安全帽佩戴检测 危险区域进入检测 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&am…

gitlab代码控制平台搭建

docker-compose容器化gitlab docker-compose安装 # 官方链接(不推荐&#xff0c;太慢了) curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 下面的官方链接会快一…

解锁Spring Boot中的设计模式—03.委派模式:探索【委派模式】的奥秘与应用实践!

委派模式 文章目录 委派模式1.简述**应用场景****优缺点****业务场景示例** 2.类图3.具体实现3.1.自定义注解3.2.定义抽象委派接口3.3.定义具体执行者3.4.定义委派者(统一管理委派任务)3.5.定义委派者管理类 4.测试4.1.controller层4.2.测试不同场景4.2.1.测试生产部门计算费用…

人工智能学习与实训笔记(四):神经网络之NLP基础—词向量

人工智能专栏文章汇总&#xff1a;人工智能学习专栏文章汇总-CSDN博客 本篇目录 四、自然语言处理 4.1 词向量 (Word Embedding) 4.1.1 词向量的生成过程 4.1.2 word2vec介绍 4.1.3 word2vec&#xff1a;skip-gram算法的实现 4.2 句向量 - 情感分析 4.2.1 LSTM (Long S…