一文读懂OpenGVLab带来的最新视觉预训练框架

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

在过去的十年中,ImageNet预训练的视觉模型显著提高了计算机视觉水平,在各种视觉任务中不断取得突破。ImageNet的成功激发了人们进一步探索从头开始预训练视觉模型的更好方法。最近,预训练的重点已从手动注释数据转移到大规模的网络爬虫图像文本数据。这一转变的一个关键里程碑是CLIP,它利用的图像-文本对的数据比ImageNet大数百倍,在各种任务中提供卓越的性能,并逐渐成为视觉模型预训练的主流方法。

基于这一趋势,人们对探索图像-文本交错的数据的兴趣越来越大,这在互联网上更为普遍。与CLIP中使用的结构化图像-文本对不同,这种交错数据是自由格式和非配对的,规模更大,文本信息更丰富。充分利用这些图像-文本交错的数据对于进一步大规模改进视觉模型预训练是必要的。

一图读懂

这张图片完整的对比了新模型与CLIP的差异。(a)展示了来自CLIP的对比学习框架,而(b)展示了新颖的LCL预训练框架。整体而言,与CLIP相比,LCL可以在训练视觉编码器的时候使用图像和文本交叉的训练数据。值得注意的是这两个框架在训练完毕的时候,可以将其中的text-encoder或者使用的大模型丢弃。

(c)则是展示了多模态的增量训练过程,将训练好的视觉编码器有选择地冻结或微调,然后按照传统的训练模型进行。当然这个过程也是支持图像-文本的交错训练数据。但是,其主要目标是使预训练的视觉编码器和大语言模型保持一致。

研究人员提出这种训练框架的思路在于自然语言处理最近一项研究表明,现代语言模型的成功源于将训练数据集压缩为模型参数。这种压缩学习也适用于多模态领域,只是要压缩的数据从结构化纯文本扩展到图像-文本交错的数据。因为图像是原始像素和非结构化的,通常包含不必要和不可预测的细节。这些细节与高级语义任务无关,应该在压缩学习中丢弃。所以应该调整这种压缩算法,以便于能够适应图像数据的加入。另外文本-图像交错的学习数据的将会更好的提取语义抽象。

整体而言,Latent Compression Learning是一个新的视觉预训练框架,旨在通过最大化因果注意模型输出和输入之间的互信息来进行有效的潜在压缩学习。

两个随机变量的互信息(mutual Information,MI)度量了两个变量之间相互依赖的程度。具体来说,对于两个随机变量,MI是一个随机变量由于已知另一个随机变量而减少的“信息量”(单位通常为比特)。互信息的概念与随机变量的熵紧密相关,熵是信息论中的基本概念,它量化的是随机变量中所包含的“信息量”。

框架的核心思想是通过因果注意模型来实现潜在的信息压缩学习。

因果注意模型通常用于序列预测或生成任务,确保每个输出仅依赖于前面的输入

LCL 时的模型架构概览如上图所示。在交错的图像文本输入序列中,引入特殊标记 <BoI> 和 <EoI>,分别作为图像中视觉嵌入的开始和结束的特殊标记。原文采用 Vision Transformer (ViT) 作为视觉编码器,它输入一系列图像块并输出一系列潜在表示。这最为关键的是损失函数,也就是训练目标的设定。

目前优化目标可以分解为两部分:第一部分为对比学习,就是上图最上面的那根线,对比视觉“潜变量”和先前上下文的语义一致性(对比的对象是<BOI>标识的输出)。第二部分为自回归预测:就是传统文本生成的对比,大白话就是将生成的字符和预期的字符比较。综合两者的差异,反向的微调和训练模型。

这两个训练目标相互补充,学习到的视觉潜变量既保留了可以从先前上下文中预测的信息,又包含了预测后续上下文所需的信息,从而实现了有效的视觉预训练。

潜在压缩学习

自回归语言建模等同于压缩学习。假设 𝑔𝜙 是一个具有可学习参数 𝜙 的语言模型 (LM)。给定一个输入文本序列 𝑥=(</s>,𝑥1,𝑥2,…,𝑥𝑁) ,其中</s>是一个指示文本开头的特殊标记,模型根据前面的上下文输出 𝑦=𝑔𝜙⁢(𝑥)=(𝑦1,𝑦2,…,𝑦𝑁) 预测下一个标记:

而其中x的概率为:

该模型使用NLL损失进行优化,这等于最小化数据分布 𝑝 和模型分布 𝑞 之间的交叉熵:

然而在训练的过程中,却出现了塌方。研究人员发现将潜在压缩和最大熵约束相结合,完全等同于最大化模型输入和输出之间的互信息。

因此, 将𝐼使用作为优化目标可以实现潜在压缩,同时通过最大的熵约束避免视觉z的坍缩。压缩𝑧使模型提取有用的信息并丢弃图像的不可预测信息。同时,最大化𝐼⁢要求每个𝑦𝑘能从先前的潜伏𝑧中获得足够的信息来预测 𝑧𝑘 。每个 𝑧𝑘 都应该携带可预测的信息。

这保证了图像表示能够将丰富的语义信息编码,当然这些编码和文本对齐。假设通过图像表示学习到的上述属性是视觉语言预训练所需要的,因此使用方程该方程作为我们的预训练目标。参数 𝜙 和 𝜃 在此目标下共同优化。直观地,视觉编码器 𝑓𝜃 学习通过高级抽象来表示图像,而因果注意力模型 𝑔𝜙 学习压缩数据集的高级抽象。

最终的效果

LCL首次探索了使用交错图像文本数据,进行视觉模型预训练。这篇文章从理论上证明了latent compression等价于最大化因果模型的输入和输出之间的相互信息,并将该目标进一步分解为两个基本的训练任务(对比学习+生成任务),最终得到了更鲁棒的视觉表征。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么直接用 cv2.imwrite 保存 PIL 的图片会导致奇怪的颜色?

在处理图像保存时&#xff0c;使用不同的库可能会导致颜色显示上的差异。特别是 Image.fromarray(synthesis).save 和 cv2.imwrite(save_dir, image) 两种方法之间的区别&#xff0c;会导致保存的图像颜色不同。这篇博客将解释这些方法的区别&#xff0c;以及具体导致颜色差异的…

.NET周刊【6月第3期 2024-06-18】

国内文章 记一次 .NET某游戏币自助机后端 内存暴涨分析 https://www.cnblogs.com/huangxincheng/p/18243233 文章讨论了程序中非托管内存暴涨的问题。作者描述了友人发现内存问题并请他帮助分析的背景&#xff0c;利用WinDbg工具分析Linux平台上的内存泄漏情况。文章介绍了如…

Maven POM:掌握项目对象模型的艺术

Maven POM&#xff1a;掌握项目对象模型的艺术 1. 引言 Maven&#xff0c;作为一个强大的项目管理和构建自动化工具&#xff0c;已经成为了Java社区中不可或缺的一部分。在Maven的世界里&#xff0c;POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09…

N32G031 DMA

目录 N32G031 DMA概述 DMA主要特点 DMA总线架构 DMA使用场景 DMA配置和使用 优点&#xff1a; 缺点&#xff1a; N32G031 DMA概述 N32G031系列芯片基于32位ARM Cortex-M0微控制器&#xff0c;其内置了DMA&#xff08;直接内存访问&#xff09;控制器。DMA控制器允许数据…

潮玩宇宙大逃杀APP系统开发成品案例分享指南

这是一款多人游戏&#xff0c;玩家需要选择一个房间躲避杀手。满足人数后&#xff0c;杀手会随机挑选一个房间杀掉里面所有的参与者&#xff0c;其他房间的幸存者将平均瓜分被杀房间的元宝。玩家在选中房间后&#xff0c;倒计时结束前可以自由切换不同房间。 软件项目开发成品…

LabVIEW开发为什么沟通需求非常重要

在LabVIEW开发项目中&#xff0c;需求沟通是项目成功的基石。以下是需求沟通的重要性及其原因&#xff1a; 明确项目目标&#xff1a; 定义清晰的目标&#xff1a;通过与用户的沟通&#xff0c;可以明确项目的目标和范围&#xff0c;确保开发团队理解用户的实际需求&#xff0c…

【Android-Compose】流式布局FlowRow 不能居中对齐的一种解决办法

问题描述&#xff1a; 在安卓Compose 开发中使用LazyColumn 流式布局 FlowRow 有时候比延迟网格布局更灵活&#xff0c;但是也可能出现自动流向下一行之后&#xff0c;末尾处留下一些小空白。如图&#xff1a; 问题解决&#xff1a; 为了尽可能居中对齐&#xff0c;我们可…

专业技能篇---计算机网络篇

文章目录 前言计算机网络基础一、网络分层模型 HTTP一、从输入URL到页面显示发生了什么&#xff1f;二、Http的状态码有哪些&#xff1f;三、 HTTP与HTTPS有什么区别&#xff1f;四、URI 和 URL 的区别是什么?五、Cookie和Session有什么区别&#xff1f;六、GET与POST 前言 主…

dmhs同步因目的端表自增列报错解决方法

dmhs同步因目的端表自增列报错解决方法 1 dmhs copy 装载数据时报错 HY000 CODE:-27232 配置源端捕获器cpt 1 dmhs copy 装载数据时报错 HY000 CODE:-2723 ERR:Only if specified in the column list and SET IDENTITY INSERT is ON, then identity column could be assigned …

2023-2024年新能源汽车市场盘点与展望

本文全面盘点了2023年和2024年新能源汽车市场的新车型、价格走势、智能化趋势以及市场竞争格局&#xff0c;涵盖了各个价格级别和车型类别&#xff0c;为消费者提供购车参考和市场洞察。 文章目录 1.1 2023年新能源汽车市场总结1.2 2024年新能源汽车市场趋势1.3 新车型发布概览…

洛谷 P3379:最近公共祖先(LCA)← RMQ+欧拉序

【题目来源】https://www.luogu.com.cn/problem/P3379【题目描述】 如题&#xff0c;给定一棵有根多叉树&#xff0c;请求出指定两个点直接最近的公共祖先。【输入格式】 第一行包含三个正整数 N,M,S&#xff0c;分别表示树的结点个数、询问的个数和树根结点的序号。 接下来 N−…

PostgreSQL源码分析——INSERT

这里我们对INSERT语句进行分析&#xff0c; 只分析其宏观过程&#xff0c;具体细节后续再分析。我们就分析下面的语句的执行过程。 insert into t1 values(4,4);主流程 主流程如下&#xff1a; exec_simple_query --> pg_parse_query //语法解析--> raw_parser-->…

数据库面试题-ElasticSearch

数据库面试题-ElasticSearch 1、ElasticSearch是什么?2、谈谈ElasticSearch分词与倒排索引的原理?3、说说ElasticSearch分段存储的思想?4、说说你对ElasticSearch段合并的策略思想的认识?5、知道什么是文本相似度TF-IDF吗?6、说说ElasticSearch写索引的逻辑?7、说说Elast…

AI大模型的战场:通用大模型VS垂直大模型,谁会赢?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

Clickhouse备份恢复_clickhouse-backup方式备份恢复的使用介绍

https://clickhouse.com/docs/zh/operations/backup https://github.com/Altinity/clickhouse-backup?tabreadme-ov-file#readmeclichouse-backup备份的总结 1、clichouse-backup备份的方式是物理备份 2、clichouse-backup只能在数据库本机运行备份&#xff0c;在远程异机去备…

联合类型和交叉类型

联合类型和交叉类型 在TypeScript中,除了基本的类型(如 number、string、boolean 等),我们还可以使用更加高级的类型来描述复杂的数据结构。其中,联合类型和交叉类型就是两个非常有用的高级类型。 联合类型(Union Types) 联合类型允许一个变量可以是多种类型中的任意一种。我…

Mybatis (plus 也适用)原生直接执行某句SQL

场景 想要不论传入什么sql 都能直接执行 示例 Autowiredprivate SqlSessionTemplate sqlSessionTemplate;public void executeSql(String replaceSql) {if (StringUtils.isEmpty(replaceSql)) {return;}try {SqlSession sqlSession sqlSessionTemplate.getSqlSessionFactory…

二、利用YOLOv8解决现实世界的问题

Ultralytics Solutions提供顶尖的YOLO模型应用&#xff0c;提供现实世界的解决方案如&#xff1a;目标记数&#xff0c;模糊和安全系统&#xff0c;提升效率和准确率在各种工业中。探索YOLOv8在实用性和有效性上的强大功能。 解决方案&#xff1a; 下面展示利用Ultralytics So…

abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized?

在 Java 中&#xff0c;abstract 方法不能同时是 static、native 或 synchronized。让我们详细解释每种情况&#xff0c;并提供相应的代码示例和解释&#xff1a; abstract 方法不能是 static&#xff1a; abstract 方法必须被子类实现&#xff0c;而 static 方法是与类相关的&…

使用vscode插件du-i18n处理前端项目国际化翻译多语言

前段时间我写了一篇关于项目国际化使用I18n组件的文章&#xff0c;Vue3 TS 使用国际化组件I18n&#xff0c;那个时候还没真正在项目中使用&#xff0c;需求排期还没有定&#xff0c;相当于是预研。 当时就看了一下大概怎么用&#xff0c;改了一个简单的页面&#xff0c;最近需…