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

多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读

目录

1、基于对比学习的VLMs

1.1 CLIP

2、基于mask的VLMs

2.1 FLAVA

2.2 MaskVLM

2.3 关于VLM目标的信息理论视角

3、基于生成的VLM

3.1 学习文本生成器的例子:

3.2 多模态生成模型的示例:

3.3 使用生成的文本到图像模型进行下游视觉语言任务

4、 基于预训练主干网络的视觉语言模型(VLM)

4.1 Frozen

4.2 MiniGPT模型示例

MiniGPT-4的应用

MiniGPT-5的扩展

MiniGPT-v2的多任务应用

4.3 使用预训练主干的其他热门模型

Qwen模型

BLIP-2模型


论文: https://arxiv.org/pdf/2405.17247

这里主要整理了多模态的技术发展历程,没有一些实验对比的数据。

VLM家族: 

1)对比训练是一种广泛应用的策略,它采用正面例子和负面例子的配对方式。视觉语言模型(VLM)通过这种方式被训练,以针对正面配对预测出相似的表示,同时对于负面配对则预测出不同的表示。

2)掩码技术是另一种训练VLM的策略,它通过重构给定的未掩码文本字幕中缺失的部分来实现。类似地,通过在字幕中掩码词语,也可以训练VLM来重构给定未掩码图像中的这些词语。

3)尽管大多数方法采用中间表示或部分重构技术,但生成式VLM经过特殊训练后,能够生成完整的图像或极长的字幕。考虑到这些模型的复杂性,它们通常需要较高的训练成本。

4)基于预训练主干网络的VLM经常利用像Llama这样的开源大型语言模型(LLM),学习图像编码器(也可能事先经过训练)与LLM之间的映射关系。重要的是,这些模型不是互斥的;许多方法依赖于对比、掩蔽和生成几种标准的结合。

1、基于对比学习的VLMs

基于对比的训练通常可以通过基于能量的模型(Energy-Based Models, EBM)的观点来更好地解释,如LeCun等人在2006年提出的,其中一个由参数θ定义的模型Eθ,被训练以赋予观察到的变量较低的能量,而未观察到的变量则赋予较高的能量。来自目标分布的数据应该具有较低的能量,而其他任何数据点则应具有较高的能量。为了训练这些模型,我们考虑输入数据x与一个能量函数Eθ(x),该能量函数由参数θ给出。相应的学习目标的玻尔兹曼分布密度函数可以写成:

其中归一化因子为 𝑍𝜃=∑𝑥𝑒−𝐸𝜃(𝑥)。为了估计输入数据抽取的目标分布PD,我们原则上可以使用传统的最大似然目标函数:

其梯度为:

然而,上述方法需要从模型分布 𝑃𝜃(𝑥) 中采样出样本 𝑥−,而这样的样本可能难以得到。目前有几种技术可以近似地模拟这种分布。一种方法依赖于马尔可夫链蒙特卡罗(MCMC)技术,通过迭代过程找出能够最小化预测能量的样本。第二种方法依赖于得分匹配[Hyvärinen, 2005]和去噪得分匹配[Vincent, 2011]的标准,它们通过只学习输入数据相对于概率密度的梯度来移除归一化因子。另一类方法,最近在自监督学习(SSL)和视觉语言模型(VLM)的研究中使用最多的,是噪声对比估计(NCE)[Gutmann和Hyvärinen, 2010]。

与其使用模型分布来采样负样本,NCE背后的直觉是,采样自噪声分布 𝑢′∼𝑝𝑛(𝑢′) 在某些情况下可能足够好地近似模型分布样本。尽管从理论上难以证明这种方法为何可行,但是广泛的实验证据表明,近期自监督学习文献中基于NCE的方法是成功的[Chen等人,2020]。原始的NCE框架可以描述为一个二元分类问题,模型应当为来自真实数据分布的样本预测标签 𝐶=1,而为来自噪声分布的样本预测 𝐶=0。通过这种方式,模型学会了区分真实数据点和噪声数据点。因此,损失函数可以定义为具有交叉熵的二元分类:

𝐿𝑁𝐶𝐸(𝜃):=−∑𝑖log⁡𝑃(𝐶𝑖=1∣𝑥𝑖;𝜃)−∑𝑗log⁡𝑃(𝐶𝑗=0∣𝑥𝑗;𝜃)

其中 𝑥𝑖 是从数据分布中采样的,而 𝑥𝑗∼𝑝𝑛(𝑥),𝑗≠𝑖 是从噪声分布中采样的。

Wu等人[2018]提出了一种无需正样本对的噪声对比估计(NCE)方法,该方法采用非参数化Softmax函数,通过显式归一化和一个温度参数τ实现。而Oord等人[2018, CPC]在使用正样本对的同时保留了非参数化Softmax,并将这种方法命名为InfoNCE,具体如下:

InfoNCE损失不是简单地预测一个二元值,而是利用如余弦相似度这样的距离度量,在模型的表示空间中进行计算。这就需要计算正样本对之间的距离,以及所有负样本对之间的距离。通过Softmax函数,模型学习预测在表示空间中最相近的一对样本,同时将较低的概率赋予其他所有的负样本对。在如SimCLR [Chen et al., 2020]这样的自监督学习(SSL)方法中,正样本对被定义为一张图片及其经过手工数据增强的版本(例如,对原始图片应用灰度转换),而负样本对则是用一张图片与小批量(mini-batch)中的所有其他图片构建。InfoNCE基方法的主要缺点是引入了对小批量内容的依赖性。这通常需要大的小批量来使得对比训练准则在正负样本之间更为有效。

1.1 CLIP

一个常用的使用InfoNCE损失的对比方法是对比语言-图像预训练(CLIP)[Radford et al., 2021]。正样本对被定义为一张图像及其对应的真实标注文字,而负样本则是相同的图像配上mini-batch中描述其他图片的所有其他标注文字。CLIP的一个创新之处在于训练一个模型来在共享的表示空间中结合视觉和语言。CLIP训练随机初始化的视觉和文本编码器,通过对比损失将图像和其标注的表示映射到相似的嵌入向量中。在网络上收集的4亿个标注-图像对上进行训练的原始CLIP模型显示出了显著的零样本分类迁移能力。具体来说,使用ResNet-101架构的CLIP达到了与受监督ResNet[He et al., 2015]模型相匹配的性能(实现了76.2%的零样本分类准确率),并在多个鲁棒性基准测试中超越了它。

SigLIP [Zhai et al., 2023b] 类似于CLIP,不同之处在于它使用基于二元交叉熵的原始NCE损失,而不是使用基于InfoNCE的CLIP的多类别目标。这一改变使得在比CLIP更小的batch大小上获得了更好的零样本表

相关文章:

多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读

目录 1、基于对比学习的VLMs 1.1 CLIP 2、基于mask的VLMs 2.1 FLAVA 2.2 MaskVLM 2.3 关于VLM目标的信息理论视角 3、基于生成的VLM 3.1 学习文本生成器的例子: 3.2 多模态生成模型的示例: 3.3 使用生成的文本到图像模型进行下游视觉语言任务 4、 基于预训练主干网…...

28.找零

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/744 题目描述 有一台自动售票机,每张票卖 …...

[方法] 《鸣潮》/《原神》呼出与锁定光标的功能细节

本方法适用于Cinemachine - FreeLook。 1. 锁定与呼出光标的功能实现 // 锁定光标 private void LockMouse() {// 将光标锁定在屏幕中间Cursor.lockState CursorLockMode.Locked;// 隐藏光标Cursor.visible false; }// 呼出光标 private void UnLockMouse() {// 释放光标Cu…...

计算机网络-NAT配置与ACL

目录 一、ACL 1、ACL概述 2、ACL的作用 3、ACL的分类 4、ACL的配置格式 二、NAT 1、NAT概述 2、NAT分类 2.1 、 静态NAT 2.2 、 动态NAT 3、NAT的功能 4、NAT的工作原理 三、NAT配置 1、静态NAT配置 2、动态NAT配置 四、总结 一、ACL 1、ACL概述 ACL&#xff…...

哈尔滨三级等保测评需要测哪些设备?

哈尔滨三级等保测评需要测的设备,主要包括物理安全设备、网络安全设备和应用安全设备三大类别。这些设备在保障哈尔滨地区信息系统安全方面发挥着至关重要的作用。 首先,物理安全设备是确保信息系统实体安全的基础。在哈尔滨三级等保测评中,物…...

大学体育(二)(华中科技大学) 中国大学MOOC答案2024版100分完整版

大学体育(二)(华中科技大学) 中国大学MOOC答案2024版100分完整版 有氧运动 有氧运动单元测验 1、 世界卫生组织对18-64岁年龄组成年人的运动建议是:每周至少( )分钟的中等强度有氧身体活动,或者每周至少&a…...

Web前端策划:从理念到实现的全方位解析

Web前端策划:从理念到实现的全方位解析 在数字化时代的浪潮中,Web前端策划作为连接技术与用户界面的桥梁,扮演着至关重要的角色。它涉及从用户需求分析、设计构思到技术实现的全方位过程,要求策划者具备深厚的技术功底和敏锐的市…...

经济与安全兼顾:茶饮店购买可燃气体报警器的价格考量

可燃气体报警器在如今的社会中扮演着至关重要的角色。它们用于检测环境中的可燃气体浓度,及早发现潜在的火灾隐患,保护人们的生命和财产安全。 在这篇文章中,佰德将介绍可燃气体报警器的安装、检定以及价格,通过实际案例和数据&a…...

鞠小云张霖浩闪耀北京广播电视台春晚发布会,豪门姐弟感爆棚

昨日,2025年北京广播电视台“追梦春晚”全国海选发布会在杭州举行,中国内地青年女演员鞠小云同人气幕后张霖浩,受主办方盛情邀请出席本次活动。从现场流露出的照片中可以看出,鞠小云一袭白色长裙灵动温婉素雅,而张霖浩…...

java Function 用法

**Function 接口是 Java 8 引入的一个核心函数式接口,用于表示一个接受单一输入参数并产生结果的函数**。Function 接口主要用在数据处理和转换操作中,如集合处理、流处理等场景。下面将深入探讨 Function 接口的用法: 1. **基本概念**&…...

LabVIEW与Python的比较及联合开发

LabVIEW和Python在工业自动化和数据处理领域各具优势,联合开发可以充分发挥两者的优点。本文将从语言特性、开发效率、应用场景等多个角度进行比较,并详细介绍如何实现LabVIEW与Python的联合开发。 语言特性 LabVIEW 图形化编程:LabVIEW使用…...

RAG技术在教育领域的应用

一、引言 点击可以查看最新资源 随着人工智能技术的飞速发展,教育领域正迎来一场深刻的变革。大型语言模型(LLM)和检索增强生成(Retrieval-Augmented Generation,RAG)技术的结合,为教育领域注入…...

玉米粒计数检测数据集VOC+YOLO格式107张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):107 标注数量(xml文件个数):107 标注数量(txt文件个数):107 标注类别…...

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0.

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0. 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!&#x1f38…...

stm32之USMART调试组件的使用

一、什么是USMART? USMART是正点原子团队为其STM32开发平台开发的一种类似linux的shell的调试工具。具体工作过程是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数,并执行,同时支持返回结果。 二、USMART调…...

【Python】成功解决TypeError: ‘int’ object is not iterable

【Python】成功解决TypeError: ‘int’ object is not iterable 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 &#…...

【日常记录】【JS】中文转拼音的库 pinyin-pro

文章目录 1、介绍2、pinyin-pro 基本使用3、参考链接 1、介绍 pinyin-pro 是一个专业的 JavaScript 中文转拼音的库,具备多音字识别准确、体积轻量、性能优异、功能丰富等特点。 常用的案例 搜索功能增强:在输入框输入汉字时,可以转化为拼音输…...

CopyOnWriteArrayList详解

目录 CopyOnWriteArrayList详解1、CopyOnWriteArrayList简介2、如何理解"写时复制"3、CopyOnWriteArrayList的继承体系4、CopyOnWriteArrayList的构造函数5、CopyOnWriteArrayList的使用示例6、CopyOnWriteArrayList 的 add方法7、CopyOnWriteArrayList弱一致性的体现…...

CUDA 编程(1):使用Grid 和 Block分配线程

1 介绍 1.1 Grid 和 Block 概念 核函数以线程为单位进行计算的函数,cuda编程会涉及到大量的线程(thread),几千个到几万个thread同时并行计算,所有的thread其实都是在执行同一个核函数。 对于核函数(Kernel),一个核函数一般会分配1个Grid, 1个Grid又有很多个Block,1个Bloc…...

ArcGIS for js 4.x FeatureLayer 加载、点选、高亮

安装arcgis for js 4.x 依赖&#xff1a; npm install arcgis/core 一、FeatureLayer 加载 代码如下&#xff1a; <template><view id"mapView"></view></template><script setup>import "arcgis/core/assets/esri/themes/li…...

倩女幽魂手游攻略:云手机自动搬砖辅助教程!

《倩女幽魂》手游自问世以来一直备受玩家喜爱&#xff0c;其精美画面和丰富的游戏内容让人沉迷其中。而如今&#xff0c;借助VMOS云手机&#xff0c;玩家可以更轻松地进行搬砖&#xff0c;提升游戏体验。 一、准备工作 下载VMOS云手机&#xff1a; 在PC端或移动端下载并安装VM…...

Typesense-开源的轻量级搜索引擎

Typesense-开源的轻量级搜索引擎 Typesense是一个快速、允许输入错误的搜索引擎&#xff0c;用于构建愉快的搜索体验。 开源的Algolia替代方案& 易于使用的弹性搜索替代方案 官网: https://typesense.org/ github: https://github.com/typesense/typesense 目前已有18.4k…...

探索 LLM 预训练的挑战,GPU 集群架构实战

万卡 GPU 集群实战&#xff1a;探索 LLM 预训练的挑战 一、背景 在过往的文章中&#xff0c;我们详细阐述了LLM预训练的数据集、清洗流程、索引格式&#xff0c;以及微调、推理和RAG技术&#xff0c;并介绍了GPU及万卡集群的构建。然而&#xff0c;LLM预训练的具体细节尚待进一…...

高考分数查询结果自动推送至微信(卷II)

祝各位端午节安康&#xff01;只要心中无结&#xff0c;每天都是节&#xff0c;开心最重要&#xff01; 在上一篇文章高考分数查询结果自动推送至微信&#xff08;卷Ⅰ&#xff09;-CSDN博客中谈了思路&#xff0c;今天具体实现。文中将敏感信息已做处理&#xff0c;读者根据自…...

python类动态属性,以属性方式访问字典

动态属性能够用来描述变化的类&#xff0c;在实际应用中容易遇到用到。 import logging class Sample:def __init__(self):self.timeNoneself.sampleidNoneself.massNoneself.beizhu""self.num0self.items{}#字典属性def __getattribute__(self, attr): #注意&#…...

招聘在家抄书员?小心是骗局!!!

在家抄书员的骗局是一种常见的网络诈骗手段&#xff0c;旨在利用人们想要在家轻松赚钱的心理。这种骗局通常会以招聘兼职抄写员的形式出现&#xff0c;声称只需在家中抄写书籍即可赚取可观的收入。然而&#xff0c;实际上这背后隐藏着诸多陷阱和虚假承诺。 首先&#xff0c;这些…...

Pytorch学习11_神经网络-卷积层

1.创建神经网络实例 import torch import torchvision from torch import nn from torch.nn import Conv2d from torch.utils.data import DataLoaderdatasettorchvision.datasets.CIFAR10("../dataset_cov2d",trainFalse,transformtorchvision.transforms.ToTensor(…...

Qt实现程序单实例运行(只能运行1个进程)及QSharedMemory用法

1. 问题提出 在开发时&#xff0c;经常遇到这样的需求或场景&#xff1a;程序只能被启动一次&#xff0c;不能启动多次&#xff0c;启动多次会导致混乱&#xff0c;如&#xff1a;可执行程序用到文件指针、串口句柄等。试想如果存在多个同一个文件的句柄或同一个串口的句柄&…...

HTTP协议分析实验:通过一次下载任务抓包分析

HTTP协议分析 问&#xff1a;HTTP是干啥用的&#xff1f; 最简单通俗的解释&#xff1a;HTTP 是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。 在Internet上的Web服务器上存放的都是超文本信息&#xff0c;客户机需要通过HTTP协议传输所要访问的超文本信息。 一、…...

http网络服务器

wwwroot(目录)/index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>比特就业课</title>…...

昆明网站设计方案/我赢网提供的高水平网页设计师

CentOS MySQL安装目录在哪可以通过下面这些方法查看MySQL在centos上的安装目录&#xff1a;一、查看文件安装路径安装了mysql&#xff0c;但是不知道文件都安装在哪些地方、放在哪些文件夹里&#xff0c;可以用下面的命令查看所有的文件路径whereis mysql回车&#xff0c;如果你…...

自己做网站和凡科的区别/青岛seo建站

名字 strstr, strcasestr - 在字符串中定位一个子串概要 #include <string.h>char *strstr(const char *haystack, const char *needle);char *strcasestr(const char *haystack, const char *needle); // 是GNU的扩展描述 strstr()函数在haysta…...

asp动态网站设计/百度推广代理赚钱

电气原理图英语缩写 符号汇总 FANC 风扇控制信号 RELAYC 继电器控制信号 RTMP 温度信号 BRR 制动 NDC 地 P 正极 positive pole N 负极 negative pole B 制动 brake F 反馈 feedback L 火线 N 零线 即地线 CLK 时钟信号 Vpp峰峰值 Vcc 电源电压 Rms 有效值 Duty 占空比 Vdd 芯片…...

海城 网站建设/营销新闻

连接方法请移步这里 http://www.cnblogs.com/hangxin1940/archive/2013/04/05/3000395.html 这里使用Python的curses包开发cli窗口程序,用来实时刷新传感器的读数 最终的效果 ![gy85](http://images.cnblogs.com/cnblogs_com/hangxin1940/466697/o_GY-85.jpg "gy85")…...

深圳做网站优化工资多少/百度助手下载安装

Window对象 Window对象是客户端JavaScript程序的全局对象。 计时器 setTimeout() 和 setInterval() 可以用来注册在指定的时间之后单词或重复调用的函数。 Window对象的setTimeout()方法用来实现一个函数在指定的毫秒之后运行。setTimeout()返回一个值&#xff0c;这个值可以…...

美国一级a做爰片免费网站/音乐接单推广app平台

这几天修真院又又又迎来了一位退伍的兵哥哥&#xff0c;所以在征得兵哥哥的允许后&#xff0c;我们决定把他的转行历程分享出来&#xff0c;供大家参考参考。 这位兵哥哥呢姓王&#xff0c;我们就暂时称呼他为王大锤同学吧。 大锤同学在来到修真院之前呢&#xff0c;已经在家颓…...