当前位置: 首页 > news >正文

CLIP-MMA: Multi-Modal Adapter for Vision-Language Models

当前的问题

CLIP-Adapter仅单独调整图像和文本嵌入,忽略了不同模态之间的交互作用。此外,适应性参数容易过拟合训练数据,导致新任务泛化能力的损失。

动机

图1所示。多模态适配器说明。

通过一种基于注意力的 Adapter ,作者称之为多模态 Adapter (图1),通过整合它们的信息,共同调整文本和图像特征,导致更全面的适配。此外,适配是针对特定任务的,有效地利用每个任务的视觉和文本信息。这使得模型能够更有效地避免在训练任务上过拟合,从而在未见过的任务上获得更好的泛化能力。

方法

多模态 Adapter 包括三个不同的部分:一个嵌入降采样器、一个 Mask 多头注意力网络以及两个带有非线性激活函数的线性层。

维度下采样

在 Adapter 中使用了多头注意力层来聚合多模态信息。然而,多头注意力层可能会给网络引入参数昂贵的操作,尤其是当嵌入维度较大时,例如,原始CLIP的嵌入维度 ( C Emb ) = 512 (\text{C}_{\text{Emb}})=512 (CEmb)=512。为了降低可训练参数的数量,作者在注意力层之前在CLIP嵌入上引入了一个维度下采样器。下采样器由一个线性层 D ( ⋅ ) D(\cdot) D()组成,该层降低嵌入维度。最后,多头注意力层的输入通过 D ( ⋅ ) D(\cdot) D()传递,其中 W D ∈ R C Emb × C Emb / 4 W_D\in \mathbb{R}^{\text{C}_{\text{Emb}}\times \text{C}_{\text{Emb}}/4} WDRCEmb×CEmb/4

每个图像样本创建多头注意 ( MHA ( ⋅ ) ) (\text{MHA}(\cdot)) (MHA())输入。提示符 Emb text \text{Emb}_{\text{text}} Embtext的文本嵌入和视觉输入 Emb image \text{Emb}_{\text{image}} Embimage的图像嵌入被连接成一个序列:

其中 Input MHA ∈ R ( N c l a s s e s + 1 ) × N B a t c h × E N \text{Input}_{\text{MHA}}\in \mathbb{R}^{(N^{classes}+1)\times N^{Batch}\times E_N} InputMHAR(Nclasses+1)×NBatch×EN。其中, N c l a s s e s + 1 N^{classes}+1 Nclasses+1表示类(文本嵌入)和一个图像嵌入的数量之和(图2), E N E_N EN表示嵌入的维数。

图2所示。 Input MHA \text{Input}_{\text{MHA}} InputMHA的插图。文本表示与视觉表示串联成一个序列,通过掩模多头注意网络传递。

Mask 多头注意力

在维度下采样后,通过多头注意力层聚合潜在表示。为了区分多头注意力层的文本和图像输入,使用注意力 Mask 来调整每个模态内的信息交互。**使用“0”表示正向交互,“-∞”表示负向交互。**因此,**每个文本嵌入仅由相应的图像信息调整,而部分忽略其他文本嵌入中的信息。图像嵌入也是如此。**给定 P P P个 Prompt 和 I I I个图像, T = P + I T=P+I T=P+I总元素数。

me:图示如下

其中, i i i表示行(取值范围为 0 ∼ T − 1 0\sim T-1 0T1), j j j表示列(取值范围为 0 ∼ T − 1 0\sim T-1 0T1)。

掩码计算完成后,通过求和运算将掩码应用到多头注意力网络中:

多模态 Adapter

随后,MHA的输出经过两个线性上采样层 U 1 ( ⋅ ) , U 2 ( ⋅ ) U_1(\cdot),U_2(\cdot) U1(),U2(),其间使用GELU,其中 W U 1 ∈ R C Emb / 4 × C Emb / 16 , W U 2 ∈ R C Emb / 16 × C Emb W_{U1}\in \mathbb{R}^{\text{C}_{\text{Emb}/4}\times \text{C}_{\text{Emb}}/16},W_{U2}\in \mathbb{R}^{\text{C}_{\text{Emb}}/16 \times \text{C}_{\text{Emb}}} WU1RCEmb/4×CEmb/16,WU2RCEmb/16×CEmb

总之,我们完成了多模态适配器

实验结果

参考资料

论文下载(arxiv,3 Sep 2024)

https://www.arxiv.org/abs/2409.02958

代码地址

https://github.com/dqmis/clip-mma

参考文章

https://mp.weixin.qq.com/s/VP4R9-ZYSohwxdY9W3xJQg

http://www.lryc.cn/news/495143.html

相关文章:

  • 三维扫描仪-3d扫描建模设备自动检测尺寸
  • vue3+ant design vue实现日期选择器默认显示当前年,并限制用户只能选择当前年及之前~
  • 【electron-vite】搭建electron+vue3框架基础
  • 05《存储器层次结构与接口》计算机组成与体系结构 系列课
  • elasticsearch报错fully-formed single-node cluster with cluster UUID
  • Milvus×Florence:一文读懂如何构建多任务视觉模型
  • DAPP
  • 生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
  • 【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)
  • 23种设计模式-原型(Prototype)设计模式
  • Qt—QLineEdit 使用总结
  • go-zero使用自定义模板实现统一格式的 body 响应
  • BUGKU printf
  • 深度学习:梯度下降法
  • `console.log`调试完全指南
  • ROS VSCode调试方法
  • 16 —— Webpack多页面打包
  • 微服务即时通讯系统的实现(服务端)----(3)
  • .net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)
  • VUE 入门级教程:开启 Vue.js 编程之旅
  • Ubantu系统docker运行成功拉取失败【成功解决】
  • mvn-mac操作小记
  • 机器学习——生成对抗网络(GANs):原理、进展与应用前景分析
  • 「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏
  • Ps:存储 Adobe PDF
  • DDR3保姆级使用教程:ZYNQ 7010
  • OpenCV 模板匹配全解析:从单模板到多模板的实战指南
  • 【JAVA] 杂谈: java中的拷贝(克隆方法)
  • 使用 PDF API 合并 PDF 文件
  • 关于BeanUtils.copyProperties是否能正常复制字段【详细版】