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} WD∈RCEmb×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} InputMHA∈R(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 0∼T−1), j j j表示列(取值范围为 0 ∼ T − 1 0\sim T-1 0∼T−1)。
掩码计算完成后,通过求和运算将掩码应用到多头注意力网络中:
多模态 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}}} WU1∈RCEmb/4×CEmb/16,WU2∈RCEmb/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
相关文章:
CLIP-MMA: Multi-Modal Adapter for Vision-Language Models
当前的问题 CLIP-Adapter仅单独调整图像和文本嵌入,忽略了不同模态之间的交互作用。此外,适应性参数容易过拟合训练数据,导致新任务泛化能力的损失。 动机 图1所示。多模态适配器说明。 通过一种基于注意力的 Adapter ,作者称之…...
三维扫描仪-3d扫描建模设备自动检测尺寸
在现代工业制造领域,三维扫描仪已成为实现高精度尺寸检测的关键设备。CASAIM自动化智能检测系统以其自动化三维立体扫描技术,为产品尺寸的自动检测提供了高效、可靠的解决方案。 CASAIM自动化智能检测系统通过非接触式测量方式,通过激光扫描…...
vue3+ant design vue实现日期选择器默认显示当前年,并限制用户只能选择当前年及之前~
1、思路:之前想拿当前年直接做赋值操作,实际上是行不通的,因为组件本身有数据格式限制,会出现报错,然后索性直接获取当前日期(YYYY-MM-DD)赋值给日期组件,这样不管你用的是年&#x…...
【electron-vite】搭建electron+vue3框架基础
一、拉取项目 electron-vite 中文文档地址: https://cn-evite.netlify.app/guide/ 官网网址:https://evite.netlify.app/ 版本 vue版本:vue3 构建工具:vite 框架类型:Electron JS语法:TypeScript &…...
05《存储器层次结构与接口》计算机组成与体系结构 系列课
目录 存储器层次结构概述 层次结构的定义 存储器的排名 存储器接口 处理器与存储器的速度匹配 存储器接口的定义 存储器访问命中率 两种接口 第1种方式:并行 命中率的计算 存储器访问时间 第2种方式:逐级 结语 大家好,欢迎回来。…...
elasticsearch报错fully-formed single-node cluster with cluster UUID
1.问题描述 k8s集群内部署的es中间件起不来,查看日志发现如下警告,节点发现功能开启,但是目前我是单节点服务,所以尝试编辑sts将节点发现功能去掉或者在部署时将你的sts的yaml文件和chart文件修改重新部署以去掉该功能 {"t…...
Milvus×Florence:一文读懂如何构建多任务视觉模型
近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…...
DAPP
02-DAPP 1 啥是 DApp? DApp,部署在链上的去中心化的应用。 DApp 是开放源代码,能运行在分布式网络上,通过网络中不同对等节点相互通信进行去中心化操作的应用。 DAPP 开放源代码,才能获得人的信任。如比特币ÿ…...
生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢 关键参数计算方法评估步骤总结 在生产环境中,Nginx最多可以代理的服务器数量并没有一个固定的限制,它取决于多个因素,包括Ng…...
【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)
StrongSort详解 1、论文及源码2、DeepSORT回顾3、StrongSORT的EMA4、StrongSORT的NSA Kalman5、StrongSORT的MC6、StrongSORT的BOT特征提取器7、StrongSORT的AFLink8、StrongSORT的GSI模块 1、论文及源码 论文地址:https://arxiv.org/pdf/2202.13514 源码地址&#…...
23种设计模式-原型(Prototype)设计模式
文章目录 一.什么是原型设计模式?二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图: 原型设计模式类图 一.什么是原型设计模式? 原型模式(Prototype…...
Qt—QLineEdit 使用总结
文章参考:Qt—QLineEdit 使用总结 一、简述 QLineEdit是一个单行文本编辑控件。 使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。 通过改变 QLineEdit 的 echoMode() ,可以设置其属性,比如以密码的形式输入。 文本的长度可以由 m…...
go-zero使用自定义模板实现统一格式的 body 响应
前提 go环境的配置、goctl的安装、go-zero的基本使用默认都会 需求 go-zero框架中,默认使用goctl命令生成的代码并没有统一响应格式,现在使用自定义模板实现统一响应格式: {"code": 0,"msg": "OK","d…...
BUGKU printf
整体思路 实现循环-->获取libc版本和system函数地址->将strcpy的got表项修改为system并获得shell 第一步:实现循环 从汇编语句可以看出,在每次循环结束时若0x201700处的值是否大于1则会继续循环。 encode1会将编码后的结果保存至0x2015c0处&am…...
深度学习:梯度下降法
损失函数 L:衡量单一训练样例的效果。 成本函数 J:用于衡量 w 和 b 的效果。 如何使用梯度下降法来训练或学习训练集上的参数w和b ? 成本函数J是参数w和b的函数,它被定义为平均值; 损失函数L可以衡量你的算法效果&a…...
`console.log`调试完全指南
大家好,这里是 Geek技术前线。 今天我们来探讨 Console.log() 的一些优点。并分析一些基本概念和实践,这些可以让我们的调试工作变得更加高效。 理解前端 log 与后端 log 的区别 前端 log 与后端 log 有着显著的不同,理解这一点至关重要。…...
ROS VSCode调试方法
VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…...
16 —— Webpack多页面打包
需求:把 黑马头条登陆页面-内容页面 一起引入打包使用 步骤: 准备源码(html、css、js)放入相应位置,并改用模块化语法导出 原始content.html代码 <!DOCTYPE html> <html lang"en"><head&…...
微服务即时通讯系统的实现(服务端)----(3)
目录 1. 消息存储子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 数据管理1.4.1 数据库消息管理1.4.2 ES文本消息管理 1.5 接口的实现1.5.1 消息存储子服务所用到的protobuf接口实现1.5.2 最近N条消息获取接口实现1.5.3 指定时间段消息搜索接口实现1.5.4 关键字消…...
.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)
说一下情况: 代码没问题,能成功从数据库里查到数据,能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值,但是发布到线上后报这个错: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...
VUE 入门级教程:开启 Vue.js 编程之旅
一、Vue.js 简介 Vue.js 是一套构建用户界面的渐进式 JavaScript 框架。它专注于视图层的开发,能够轻松地与其他库或现有项目进行整合。Vue.js 的核心库只关注视图层,通过简洁的 API 实现数据绑定和 DOM 操作的响应式更新,让开发者可以高效地…...
Ubantu系统docker运行成功拉取失败【成功解决】
解决docker运行成功拉取失败 失败报错 skysky-Legion-Y7000-IRX9:~$ docker run hello-world docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial uni…...
mvn-mac操作小记
1.安装brew 如果报错,Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc,最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…...
机器学习——生成对抗网络(GANs):原理、进展与应用前景分析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一. 生成对抗网络的基本原理二. 使用步骤2.1 对抗性训练2.2 损失函数 三. GAN的变种和进展四. 生成对抗网络的应用五. 持续挑战与未来发展方向六. 小结 前言 生…...
「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏
本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字,应用会判断是否接近目标数字,并提供提示“高一点”或“低一点”,直到用户猜中目标数字。这个小游戏结合状态管理和用户交互,是一个入门级的互动应用示例。 关键词 UI互…...
Ps:存储 Adobe PDF
在 Adobe Photoshop 中,将图像保存为 PDF 文件时, 会弹出“存储 Adobe PDF” Save Adobe PDF对话框。在此对话框中提供了多个选项,用于控制 PDF 文件的输出,包括一般设置(选择预设、兼容性和保留编辑功能)、…...
DDR3保姆级使用教程:ZYNQ 7010
内容:使用DDR3 IP核,向DDR3写入数据,然后再读出数据,通过串口打印。 设备:ZYNQ 7010 xc7z010clg-400-1。软件VIVADO 2018.3 (1)工程模块:一个写FIFO,一个读FIFO。一个ZYNQ IP核&am…...
OpenCV 模板匹配全解析:从单模板到多模板的实战指南
简介:本文深入探讨 OpenCV 中的模板匹配技术。详细介绍构建输入图像与模板图像的步骤,包括读取、截取、滤波与存储等操作。剖析 cv2.matchTemplate 语法及其参数含义,阐述不同匹配方法下结果值的意义。同时讲解 cv2.minMaxLoc 语法࿰…...
【JAVA] 杂谈: java中的拷贝(克隆方法)
这篇文章我们来介绍什么是拷贝,并且实现浅拷贝到深拷贝。 目录 一、浅拷贝 1.1 clone 方法 1.2 实现浅拷贝: 1.2.1 重写 clone方法 1.2.2 实现接口 Cloneable 1.2.3 调用克隆方法 1.2.4 原理图: 1.3 浅拷贝的不足 1.3.1 增加引用…...
使用 PDF API 合并 PDF 文件
内容来源: 如何在 Mac 上合并 PDF 文件 1. 注册与认证 您可以注册一个免费的 ComPDFKit API 帐户,该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。 ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥&…...
北京代办营业执照的正规公司/郑州seo哪家专业
mysql数据库有⼀个wait_timeout的配置,默认值为28800(即8⼩时). 在默认配置不改变的情况下,如果连续8⼩时内都没有访问数据库的操作,再次访问mysql数据库的时候,mysql数据库会拒绝访问。 查看超时时间: show variables…...
郑州治疗精神病哪家好/河南seo推广
过几天小弟要去面试了,当然免不了要好好复习下功课,其实很多东西也不是特别清楚,今天都当作一个回顾和巩固,希望我的这篇文章能对即将去找工作的同学有所帮助。 1. Q:什么是activity? 虽然这个问题现在不流…...
pc开奖网站开发/网址缩短在线生成器
来源是:Text at LEFT如何更改CSS以使两个DIV看起来像?----------------------|Text at LEFT | ####|| | ####|| | ####|| | || | |----------------------即。文本在左侧DIV左上角,图像在右侧DIV右上方对齐。更新:我使用的是&…...
广东门户网站建设/淘宝推广平台
author:skate time:2012/05/24 数据结构设计(表,索引的创建)的说明 表的设计 1.数据类型的选择 1) 数字类型:分为整数数据类型和浮点数据类型,它们之间的区别是取值范围不同,存储…...
网站搭建就来徐州百度网络非常好/如何在百度上推广自己
用了 Docker,好处挺多的,但是有一个不大不小的问题,它会一不小心占用太多磁盘,这就意味着我们必须及时清理。作为一个有信仰的技术公司,我们Fundebug的后台采用了酷炫的全 Docker 化架构,所有服务ÿ…...
哪里有学习做网站的/网络营销方式都有哪些
2016-12-12 11:57:12使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。如果直接以json的格式返回则方便很多,有时候通过后台直接写到页面中则会以字符串的方式存在,那么就用到了将字符串…...