模态内重叠优化,简单有效的CLIP微调方法 | BMVC'24 Oral
来源:晓飞的算法工程笔记 公众号,转载请注明出处
论文: CLIP Adaptation by Intra-modal Overlap Reduction
创新点
- 提出一种基于轻量级适配的新方法,直接在图像空间中减少
CLIP
中的模态内重叠(IMO
)。新特征与任何利用缓存模型的无训练方法兼容,这些新特征提高了所有被检查的无训练方法的整体性能。 - 表明直接减少模态内重叠(
IMO
)与性能之间存在正相关关系。 - 探索了通过在监督和自监督方式下训练轻量级适配器来减少模态内重叠(
IMO
)的可能性。
内容概述
许多方法尝试将预训练的基础CLIP
模型适应于少样本分类,因为CLIP
在大规模语料库上进行训练,它能够通过适应少样本分类而具有良好的泛化能力。但当尝试在与预训练数据的分布差异显著的数据集上使用这一基础模型时,观察到性能并不理想。
论文分析了图像空间内的模态重叠,从嵌入表示的角度出发。由于对比训练最大化了配对图像和文本之间的余弦相似性(跨模态),而忽略了图像与图像之间的相似性(模态内),在图像空间中比较来自CLIP
的嵌入是有问题的。这导致了非配对(不同类别的图像)和配对图像(同一类别的图像)之间存在显著的模态内重叠(IMO
),这影响了依赖于图像空间相似性进行预测的少样本无训练分类方法的性能。
为了解决模态内的重叠,在Google Open Images
数据集的通用样本集上训练一个轻量级适配器。只需训练一个epoch
,即可提高少样本无训练分类的准确性。
通过广泛的证明了其有效性,减少模态内重叠可以带来 a ) 在多个标准数据集上提高性能,b ) 增强对分布变化的鲁棒性,以及 c ) 提高特征方差,使特征在下游任务中更具区分能力。
模态内重叠
模态内重叠分析
由于对比学习最大化了成对图像与文本之间的余弦相似度(模态间),但忽略了图像与图像之间的相似度(模态内),导致模态内重叠(IMO
)。
通过适应校正模态内重叠(IMO
)
为了在CLIP
视觉编码器中校正模态内重叠(IMO
),引入了瓶颈适配器并在来自Google Open Images
数据集的小样本图像上以监督方式进行微调。适配器是轻量级组件,向模型中添加了0.80%
(大约1M
)的新参数。
微调得到新的CLIP
视觉编码器(VEimo
)后,利用它创建一个改进的缓存模型,类似于Tip-Adapter
。使用校正了IMO
的编码N
个类别各K
张的训练图像 \(G_{train} \in \mathbb{R}^{NK\times d}\) ,将这些编码作为键,它们对应的one-hot
编码标签 \(L_k, k \in \{1, NK\}\) 作为值,以形成键值缓存模型,目的是增强CLIP
模型的先验知识。
给定一个通过VEimo
编码的测试图像 \(U_i \in \mathbb{R}^{d}\) ,Affinity
矩阵 \(Y\) 和Tip-Adapter
++(TA
++)的对数计算如下(用于softmax
标签预测):
Y = exp(-\beta(1-U_i G_{train}^T)), Y \in \mathbb{R}^{NK}
\label{eq:ta_affinity_modgap}
\end{equation}
\]
\text{TA++logits} = T_i W^T + \alpha YL_{train}, \text{TA++logits} \in \mathbb{R}^{N}
\end{equation}
\]
同样,通过用校正后的IMO
矩阵 \(Y\) 替换标准Tip-X
的亲和矩阵 \(A\) 来改进标准Tip-X
,从而获得Tip-X
++(TX
++)的对数值(用于softmax
标签预测):
\text{TX++logits} = T_i W^T + \alpha YL_{train} + \gamma \phi(-M) L_{train}, \text{TX++logits} \in \mathbb{R}^{N}
\end{equation}
\]
主要实验
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
模态内重叠优化,简单有效的CLIP微调方法 | BMVC'24 Oral的更多相关文章
- 一个关于内联优化和调用约定的Bug
很久没有更新博客了(博客园怎么还不更新后台),前几天在写一个Linux 0.11的实验 [1] 时遇到了一个奇葩的Bug,就在这简单记录一下调试过程吧. 现象 这个实验要求在Linux 0.11中实现 ...
- 技术干货:实时视频直播首屏耗时400ms内的优化实践
本文由“逆流的鱼yuiop”原创分享于“何俊林”公众号,感谢作者的无私分享. 1.引言 直播行业的竞争越来越激烈,进过2018年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近正好在做 ...
- jvm之方法内联优化
前言 在日常中工作中,我们时不时会代码进行一些优化,比如用新的算法,简化计算逻辑,减少计算量等.对于java程序来说,除了开发者本身对代码优化之外,还有一个"人"也在背后默默的优化 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第四版,稳定支持Qt5编程,zqt5语法升级,MA函数提升性能1000%,更多公式算法的内置优化实现。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- thinkphp内置标签简单讲解
thinkphp内置标签简单讲解 1.volist循环 name 需要遍历的数据 id 类似于foreach中 value offset 截取数据起始位置 length 截取数据的个数 mod 奇偶数 ...
- MySQL实验 内连接优化order by+limit 以及添加索引再次改进
MySQL实验 内连接优化order by+limit 以及添加索引再次改进 在进行子查询优化双参数limit时我萌生了测试更加符合实际生产需要的ORDER BY + LIMIT的想法,或许我们也可以 ...
- Go 中的内联优化
文讨论 Go 编译器是如何实现内联的以及这种优化方法如何影响你的 Go 代码. 请注意:本文重点讨论 gc,实际上是 golang.org 的 Go 编译器.讨论到的概念可以广泛用于其他 Go 编译器 ...
- Oracle 优化器_访问数据的方法_单表
Oracle 在选择执行计划的时候,优化器要决定用什么方法去访问存储在数据文件中的数据.我们从数据文件中查询到相关记录,有两种方法可以实现:1.直接访问表记录所在位置.2.访问索引,拿到索引中对应的r ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法
一.简述 先简单介绍一下模态与非模态对话框. 模态对话框 简单一点讲就是在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭.这时一般需要点击对话框中 ...
随机推荐
- You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux.
You are currently using minified code outside of NODE_ENV === 'production'. This means that you are ...
- TCP/TP协议栈(逐渐更新版)
TCP/IP协议栈 应用层 DNS协议 传输层 TCP协议 TCP协议报文结构 源端口 目的端口 序列号 确认号 头长度header length or data offset 保留字段reserve ...
- LuCI Themes
Bootstrap Bootstrap Light Bootstrap Light 就是 Bootstrap Bootstrap Dark Material OpenWrt OpenWrt 2020
- GPG 用法
GPG (GnuPG) 是一种加密工具,用于数据加密和数字签名. 密钥配置 # 生成密钥 gpg --full-generate-key # 列出密钥 gpg --list-keys # 列出公钥 g ...
- Kubernetes-13:存储卷Volume介绍及使用
Volume介绍 Volume存在的意义 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失--容器以 ...
- 测距技术 超声波、毫米波、激光雷达LIDAR
超声波 技术成熟,成本之选 声波传输慢,高速时误差大 超声波雷达有40kHz.48kHz和58kHz三种,频率越高,灵敏度越高,探测角度越小.在工作状态,通过收发超声波,超声波雷达能以1-3cm精度测 ...
- Graph 学习
Graph basic terms 里面介绍了常见的一些基本概念,如 directed/undirected, weighted, cyclic/acyclic, Adjacency Matrix, ...
- Unity 配置 SQLite
原Github仓库链接: https://github.com/robertohuertasm/SQLite4Unity3d?tab=readme-ov-file All you have to do ...
- 事务TRANSACTION 1
MySQL事务是指一组SQL语句作为一个工作单元,同生共死.类似JS中的Array.prototype.every方法 事务的特点 原子性(Atomicity):即事务中的SQL像原子一样牢不可破,无 ...
- 【合合TextIn】深度解析智能文档处理技术与应用
一.智能文档处理介绍 智能文档处理(Intelligent Document Processing, IDP)是利用人工智能(AI).机器学习(ML).计算机视觉(CV).自然语言处理(NLP)等技术 ...