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

【VLM小白指北 (1) 】An Introduction to Vision-Language Modeling

开一个新坑Vision-Language Modeling (VLM) ,原文76页,慢慢更,for beginners,但也不能之前啥都不会啊。

原文链接:An Introduction to Vision-Language Modeling


Introduction

  • 存在的问题:将语言与视觉相结合的问题并未完全解决。例如,大多数模型在理解空间关系或计数时仍存在困难,这需要依赖额外数据标注的复杂工程开销。许多VLM也缺乏对属性和顺序的理解。它们常常忽略输入提示的一部分,导致需要大量的提示工程努力才能产生期望的结果。有些模型还可能产生既不必要也不相关的幻觉内容。因此,开发可靠的模型仍然是研究领域的热点。

The Families of VLMs

VLM家族作者分为四类,如下:
在这里插入图片描述

  1. Contrastive:使用正负对。训练为:正例对的相似表示,负例对表示相离。
  2. Masking:通过给定未遮蔽文本标题,重建缺失图像块。同样地,通过在标题中遮蔽单词,可以训练VLM在给定未遮蔽图像的情况下重建这些单词。
  3. Generative:图生文,文生图。通常是最昂贵的训练方式。
  4. Pretrained backbones:基于Pretrained backbones的VLM通常利用开源的LLMs,如Llama,来学习图像编码器(也可能预训练)与LLM之间的映射map。

这些范式并不是相互排斥的;许多方法依赖于对比、遮蔽和生成标准的混合。


基于Transformer的VLMs早期工作

最早是LLM中的BERT表现出很好的性能,基于此,出现了结合image的visual-BERT和ViLBERT。这些模型基于两个目标进行训练:1)一个经典的mask重建任务,旨在预测给定输入中的缺失部分;2)一个句子到图像的预测任务,旨在预测一个标题是否实际描述了图像内容。


基于对比的VLMs

这里首先要对“对比学习”有一定了解。我的理解是,与NCE不同的是,InfoNCE损失不是预测二进制值,而是利用在模型表示空间中计算的距离度量,比如余弦相似度。这需要计算正对样本和所有负对样本之间的距离。该模型通过softmax学习预测在表示空间中最接近的最有可能的一对示例,同时将较低的概率与所有其他对负示例关联起来。InfoNCE损失函数:
在这里插入图片描述


InfoNCE引出了一个重要工作:CLIP

一种常用的对比方法,使用InfoNCE损失的是对比语言-图像预训练(CLIP)。正例对定义为一张image及其对应的真实标题,而负例定义为相同的image,但与之配对的是包含在mini-batch中的描述其他图像的所有其他标题。CLIP的一个新颖之处在于训练一个模型,以在共享的表示空间中融合视觉和语言。CLIP训练随机初始化的视觉和文本encoder,以使用对比损失将图像及其标题的表示映射到相似的embedding。原始的CLIP模型在网络上收集的4亿个text-image对上进行训练,展示了显著的零样本分类迁移能力。具体来说,一个ResNet-101 CLIP模型与监督式ResNet 模型(达到76.2%的零样本分类准确率)的性能相匹配,并在几个鲁棒性基准测试中超过了它。

另外两个工作:

SigLIP:与 CLIP 类似,不同之处在于它使用基于二元交叉熵的原始NCE损失,而不是使用 CLIP 基于InfoNCE的多类目标。这种改变使得 SigLIP 在小于 CLIP 的批量大小上能够实现更好的零样本性能。
Llip:潜在语言图像预训练(Llip)考虑到一张图像可以用多种不同的方式来描述。它提出通过一个交叉注意力模块,根据目标标题来条件化图像的编码。考虑标题的多样性增加了表示的表达性,并且通常提高了下游零样本迁移分类和检索性能。


具有mask的VLMs


更不动了明天再更

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ER论文阅读-Decoupled Multimodal Distilling for Emotion Recognition
  • CV之OCR:GOT-OCR2.0的简介、安装和使用方法、案例应用之详细攻略
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • 微服务漏洞最小化:CKS考试核心实践指南
  • 深度学习后门攻击分析与实现(一)
  • “滑动窗口”思想在算法里面的应用
  • JavaWeb--纯小白笔记04:Tomcat整合IDEA
  • 解决 TortoiseGitPlink Fatal Error:深入解析
  • 【QT】系统-下
  • MacOS升级Ruby版本的完整指南
  • 基于机器学习的区域能源生产与消费的分析与预测系统实现,前端layui,后端flask,可视化echarts
  • Vue的指令v-model的原理
  • Python中的null是什么?
  • MySQL 及 SQL 注入
  • 全国及分(31个)省全社会就业人数(1978-2022年)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • @angular/forms 源码解析之双向绑定
  • 【个人向】《HTTP图解》阅后小结
  • 77. Combinations
  • Asm.js的简单介绍
  • Docker入门(二) - Dockerfile
  • Golang-长连接-状态推送
  • Java反射-动态类加载和重新加载
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Java教程_软件开发基础
  • MySQL-事务管理(基础)
  • React-flux杂记
  • React的组件模式
  • Redis在Web项目中的应用与实践
  • Vue--数据传输
  • Web Storage相关
  • 给github项目添加CI badge
  • 技术发展面试
  • 免费小说阅读小程序
  • 前端之React实战:创建跨平台的项目架构
  • 嵌入式文件系统
  • 实现简单的正则表达式引擎
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据仓库的几种建模方法
  • 算法---两个栈实现一个队列
  • 跳前端坑前,先看看这个!!
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #java学习笔记(面向对象)----(未完结)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (6)添加vue-cookie
  • (苍穹外卖)day03菜品管理
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (汇总)os模块以及shutil模块对文件的操作
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)mysql_MYSQL(三)