CLIP Surgery论文阅读

news2024/11/28 14:54:30

CLIP Surgery for Better Explainability with Enhancement in Open-Vocabulary Tasks(CVPR2023)

M = norm ⁡ ( resize ⁡ ( reshape ⁡ ( F i ˉ ∥ F i ‾ ∥ 2 ⋅ ( F t ∥ F t ‾ ∥ 2 ) ⊤ ) ) ) M=\operatorname{norm}\left(\operatorname{resize}\left(\operatorname{reshape}\left(\frac{\boldsymbol{F}_{\bar{i}}}{\left\|\boldsymbol{F}_{\underline{i}}\right\|_{2}} \cdot\left(\frac{\boldsymbol{F}_{t}}{\left\|\boldsymbol{F}_{\underline{t}}\right\|_{2}}\right)^{\top}\right)\right)\right) M=norm resize reshape Fi 2Fiˉ( Ft 2Ft)
重点是CLIP的图可视化,上面是CLIP Surgery可视化Similarity map的公式

贡献:

https://picx.zhimg.com/80/v2-cf9998060d51d70d47669260a0de3801_720w.webp?source=1940ef5c
1.发现CLIP可视化结果(相似度图)和人的感知是反的,集中在背景(flatten transformer做q可视化,集中在前景
),认为是QK self-attention导致,最相似的token并不是本身或者相同语义区域,而是一些背景的噪声。而用vv attention就不会出现错误的关联。出现这种情况的原因主要是训练的pooling不合适,提出了CLIP Architecture Surgery,如模型图所示

x ^ i + 1 = {  None  i < d f attn  ( x i , { ϕ v } ) + x i i = d , f attn  n v ( x i , { ϕ v } ) + x ^ i i > d , ∀ T & A x i + 1 = { f F F N ( x i ′ ) + x i ′ ,  s.t.  x i ′ = f a t t n q k ( x i , { ϕ q , ϕ k , ϕ v } ) + x i , ∀ T & A f res  ( x i ) + x i , ∀ R e s \begin{array}{l} \hat{x}_{i+1}=\left\{\begin{array}{ll} \text { None } & i<d \\ f_{\text {attn }}\left(x_{i},\left\{\phi_{v}\right\}\right)+x_{i} & i=d, \\ f_{\text {attn } n_{v}}\left(x_{i},\left\{\phi_{v}\right\}\right)+\hat{x}_{i} & i>d \end{array}, \forall T \& A\right. \\ x_{i+1}=\left\{\begin{array}{ll} f_{F F N}\left(x_{i}^{\prime}\right)+x_{i}^{\prime}, \text { s.t. } & \\ x_{i}^{\prime}=f_{a t t n_{q k}}\left(x_{i},\left\{\phi_{q}, \phi_{k}, \phi_{v}\right\}\right)+x_{i} & , \forall T \& A \\ f_{\text {res }}\left(x_{i}\right)+x_{i} & , \forall R e s \end{array}\right. \\ \end{array} x^i+1=  None fattn (xi,{ϕv})+xifattn nv(xi,{ϕv})+x^ii<di=d,i>d,T&Axi+1= fFFN(xi)+xi, s.t. xi=fattnqk(xi,{ϕq,ϕk,ϕv})+xifres (xi)+xi,T&A,Res

2.发现CLIP可视化有非常多的噪声响应
请添加图片描述
算取一个冗余特征,多类的情况显著的类会影响其他的类(带偏了)。所以我们用类之间的分数作为权重,对每个特征做类别的加权,来抑制显著类的影响。然后在类别维度(Nt,text token的数量)求均值作为冗余特征,并对每个特征减去冗余特征,然后求和得到余弦相似度。对于单个类来说,如交互式分割和多模态可视化,则用空文本特征作为冗余特征(知乎上看到这句话才明白,看的一脸懵逼)。category dimension 是(Nt)

具体如下:

  • 先算出multiplied features[Ni,Nt,C]: F m = F ^ i ∥ F ^ i ∥ 2 ⊙ F ^ t ∥ F ^ t ∥ 2 F_m=\frac{\hat{F}_i}{\|\hat{F}_i\|_2}\odot\frac{\hat{F}_t}{\|\hat{F}_t\|_2} Fm=F^i2F^iF^t2F^t

沿C方向做逐元素乘法

  • 再算similarity score[1,Nt]: s = s o f t m a x ( F c ∥ F c ∥ 2 ⋅ ( F t ∥ F t ∥ 2 ) ⊤ ⋅ τ ) s=softmax(\frac{F_c}{\|F_c\|_2}\cdot(\frac{F_t}{\|F_t\|_2})^\top\cdot\tau) s=softmax(Fc2Fc(Ft2Ft)τ)

[CLS]乘token[Nt,C]算相似度

  • 再算category weight[1,Nt]: w = s m e a n ( s ) w=\frac s{mean(s)} w=mean(s)s
  • 再算冗余特征common and redundant features[Ni,1,C]: F r = m e a n ( F m ⊙ e x p a n d ( w ) )   F_r=mean(F_m\odot expand(w))\mathrm{~} Fr=mean(Fmexpand(w)) 

沿C方向做,空文本相似度最大的?

  • 最后算common and redundant features[Ni,Nt]: S = s u m ( F m − e x p a n d ( F r ) )   S=sum(F_m-expand(F_r))~ S=sum(Fmexpand(Fr)) (去掉冗余特征)

模型

不参与训练,只在推理
请添加图片描述

实验

错误的self-attention也能解释为什么有人删掉CLIP中ResNet的最后一个self-attention可以做可视化。但是ViT每层都是self-attention,所以现有的方法在ViT上表现很差(全是self-attention删最后一层没用)

开放多标签分类
除此之外我们的算法做open-vocabulary的多标签分类也有效果,可以作为一种后处理任意插到算法里面来提高mAP。原理是抑制冗余特征后会让误报少一些。注意,单类没有效果,因为冗余特征是一个common bias,不改变单张图别之间的位次,而是影响跨图之间的排位来减少误报

请添加图片描述
多模态可解释性
做了多模态的可解释性,解释CLIP训练过程中文本和图片是怎么匹配的,也发现了一些有趣的现象。比如CLIP训练数据一般关注部分物体,如第一张图片只关注了自行车。而且CLIP对文本也有一定的感知,如最后一张。对于文本的解释,一些不重要的词如 ‘in’ ‘the’ ‘.’ 也经常也有高响应,而且结束符[end]是最高频的。这说明clip会把全局特征编码到固定的token中。
请添加图片描述

ref

https://www.zhihu.com/question/595372017

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

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

相关文章

Linux认识协议

目录 TCP协议通信流程TCP三次握手数据传输过程四次挥手过程TCP 和 UDP 对比 认识协议协议的概念结构化数据的传输序列化和反序列化 网络版计算器服务端代码面向字节流 协议定制客户端代码编写代码测试守护进程守护进程创建 关于协议制定中使用现成方法实现 TCP协议通信流程 下…

华为H12-831题库

单选&#xff09;当IS-IS网络中有多条冗余链路时&#xff0c;可能会出现多条等价路由。关于IS-IS网络内的等价路由&#xff0c;以下哪个描述是错误的? A、当组网中存在的等价路由数量大于通过命令配置的数量&#xff0c;且这些路由优先级相同时&#xff0c;优选下一跳设备Sys…

三、机器学习基础知识:Python常用机器学习库(SKlearn)

文章目录 1、Scikit learn简介2、主要步骤3、数据预处理4、模型选择与算法评价 1、Scikit learn简介 Scikit learn 的简称是 SKlearn&#xff0c;专门提供了 Python 中实现机器学习的模块。Sklearn 是一个简单高效的数据分析算法工具&#xff0c;建立在 NumPy、SciPy和 Matplo…

深入研究Android内存

深入研究Android内存 Android应用程序开发时&#xff0c;我们始终意识到自己是Android硬件和操作系统的一部分。 从硬件角度来看&#xff0c;我们可以将Android手机分为不同级别。基本上&#xff0c;我们可以将它们分类为适用于低端硬件或API的入门级、中级和高级硬件-API手机…

Python+Selenium WebUI自动化框架 -- 基础操作封装

前言&#xff1a; 封装Selenium基本操作&#xff0c;让所有页面操作一键调用&#xff0c;让UI自动化框架脱离高成本、低效率时代&#xff0c;将用例的重用性贯彻到极致&#xff0c;让烦人的PO模型变得无所谓&#xff0c;让一个测试小白都能编写并实现自动化。 知识储备前提&a…

WordPress自适应图片主题源码CX-UDY主题模板 带会员积分下载系统

说明&#xff1a;该主题只适用于WordPress 4.8及以下版本&#xff0c;高版本暂不支持&#xff0c;介意的请勿下&#xff01; 下载地址 qnziyw点cn/cmsmb/wordpress/8084点html

Flutter:安装依赖报错doesn‘t support null safety

项目中需要引用http依赖&#xff0c;在pubspec.yaml文件中添加如下信息&#xff1a; 当同步时&#xff0c;报错信息如下&#xff1a; [myflutter] flutter pub upgrade Resolving dependencies... The current Dart SDK version is 3.1.3. Because myflutter depends on http &…

超简单的Mac双开微信,升级后失败重复操作仍然有效

首先找到安装的微信 应用程序 -> 微信 右键 -> 复制 复制出来效果如下&#xff1a; 在复制出来的微信应用右键-> 点击显示包内容 但是每次打开微信都特别麻烦&#xff0c;这里选择脚本右键制作替身&#xff0c;最后多出来的替身图标&#xff0c;拖拽到桌面就可以了…

6.数据类型与运算符

目录 mysql数据类型 整型数据类型 浮点数类型和定点数类型 1、日期时间类型 1、YEAR 2、TIME 3、DATE类型 4、DATETIME 5、TIMESTAMP 2、字符串类型 1、CHAR 和 VARCHAR类型&#xff1a; 2、TEXT类型 3、ENUM类型 4、SET类型 二进制字符串类型 1、BIT类型 2、…

Java学习 7.Java-方法的使用

一、为什么要使用方法 在编程中&#xff0c;某段功能的代码可能频繁使用&#xff0c;如果在某个位置重新实现一遍&#xff0c;会&#xff1a; 1.使程序变得繁琐 2.开发效率底下&#xff0c;做了大量重复性工作 3.不利于维护&#xff0c;需要改动时&#xff0c;所有用到该段…

Flink SQL DataGen Connector 示例

Flink SQL DataGen Connector 示例 1、概述 使用 Flink SQL DataGen Connector&#xff0c;可以快速地生成符合规则的测试数据&#xff0c;可以在不依赖真实数据的情况下进行开发和测试。 2、使用示例 创建一个名为 “users” 的表&#xff0c;包含 6 个字段&#xff1a;id…

智能井盖生产商家,万宾科技井盖传感器产品详情

市政府管理水平决定城市人民幸福程度&#xff0c;所以在智慧城市推进过程中&#xff0c;市政府也在加快城市信息基础设施建设&#xff0c;希望提高公共服务水平&#xff0c;以此来满足城市居民的需求&#xff0c;进一步推进城市信息化智能化发展。作为城市生命线的一个组成部分…

Docker学习——④

文章目录 1、Docker Image&#xff08;镜像&#xff09;2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Image&#xff…

第七章《搞懂算法:线性回归是怎么回事》笔记

线性回归算法是机器学习算法中最简单的一类&#xff0c;线性回归算法主要用于连续值的预测问题。 7.1 什么是线性回归 这种刻画了不同变量之间关系的模型叫作回归模型&#xff0c;如果这个模型是线性的&#xff0c;则为线性回归模型。 线性回归主要是应用回归分析来确定两种…

webgoat-Path traversal

Path traversal 路径&#xff08;目录&#xff09;遍历是一种漏洞&#xff0c;攻击者能够访问或存储外部的文件和目录 应用程序运行的位置。这可能会导致从其他目录读取文件&#xff0c;如果是文件&#xff0c;则会导致读取文件 上传覆盖关键系统文件。 它是如何工作的&#…

京东数据分析:2023年9月京东打印机行业品牌销售排行榜

鲸参谋监测的京东平台9月份打印机市场销售数据已出炉&#xff01; 鲸参谋数据显示&#xff0c;今年9月&#xff0c;京东平台打印机的销量为60万&#xff0c;环比增长约32%&#xff0c;同比下滑约25%&#xff1b;销售额为5亿&#xff0c;环比增长约35%&#xff0c;同比下滑约29%…

“掌握高效图片管理:轻松成为图像处理达人!“

您是否曾经为找不到合适的图片而烦恼&#xff1f;或者因为无法批量处理图片而感到困扰&#xff1f;现在&#xff0c;我们为您带来了一款全新的图像管理工具&#xff0c;让您轻松实现批量图片处理&#xff0c;变身为图像管理达人&#xff01; 第一步&#xff0c;首先我们要进入首…

Windows桌面便签工具推荐使用哪一款?

电脑桌面上张贴便利贴可以将近期需要完成的工作计划逐一添加到便利贴中&#xff0c;电脑桌面悬挂便利贴工具可以督促日常各项事务的完成。当前可悬挂在电脑桌面上的便利贴工具是比较多的&#xff0c;其中桌面小工具便签软件敬业签可满足各行业的办公需求。 建议大家在Windows桌…

软件测试从0offer到20k,你只差银行测试这一步!!!

金融类软件测试 举个栗子&#xff0c;银行里的软件测试工程师。横向跟互联网公司里的测试来说&#xff0c;薪资相对稳定&#xff0c;加班少甚至基本没有&#xff0c;业务稳定。实在是测试类岗位中的香饽饽&#xff01; 一、什么是金融行业 金融业是指经营金融商品的特殊行业&am…

【笔记】系统集成项目管理工程师-各管理输入输出整理

目录 一、整体管理 二、范围管理 三、进度管理 四、成本管理 五、质量管理 六、人力资源管理 七、干系人管理 八、风险管理 九、word 版本整理 十、PPT图版本管理 一、整体管理 1. 制订项目章程 2. 制订项目管理计划 3. 指导与管理项目工作 4. 监控项目工作 5. 实施…