【多模态】ALIGN——使用噪声文本数据进行视觉语言感知预训练

ALIGN: A Large-scale ImaGe and Noisy-text embedding

目录

🍭🍭1.网络介绍

🍭🍭2.大规模噪声图像文本数据集

🐸🐸2.1图像过滤器

🐸🐸2.2文本过滤器

🍭🍭3.预训练和迁移任务

🐸🐸3.1噪声数据预训练

🐸🐸3.2图文匹配

🐸🐸3.3视觉分类

🐸🐸3.4仅带图像编码的视觉分类

🍭🍭4.消融实验

🐸🐸4.1网络结构

🐸🐸4.2超参数

🐸🐸4.3不同数据集

🐸🐸4.4权衡数据数量和数据质量 

🍭🍭5.效果展示

🐸🐸5.1图像检索

🐸🐸5.2图像和文本输入检索图像 

整理不易,欢迎一键三连!!!


摘要:预训练的表征对于许多NLP和感知任务变得至关重要。虽然NLP中的表示学习已经过渡到在没有人工注释的情况下对原始文本进行训练,但视觉和视觉语言表示仍然严重依赖于昂贵或需要专家知识的精心策划的训练数据集。对于视觉应用程序,表示大多是使用具有明确类标签的数据集(如ImageNet或OpenImages)来学习的。对于视觉语言,像概念字幕、MSCOCO或CLIP这样的流行数据集都涉及到一个非琐碎的数据收集(和清理)过程。这种代价高昂的管理过程限制了数据集的大小,因此阻碍了训练模型的扩展。在本文中,我们利用了一个由超过10亿个图像-文本对组成的噪声数据集,该数据集在概念字幕数据集中无需昂贵的过滤或后处理步骤即可获得。一个简单的双编码器架构学习对齐图像的视觉和语言表示

🍭🍭1.网络介绍

        如左上角示意图所示,图像和文本编码器通过对比损失来进行学习,将互相匹配的文本-图像对嵌入到一起,将不匹配的分开,将配对文本视为图像的细粒度标签,我们的图像与文本对比损失类似于传统的基于标签的分类目标;关键区别在于文本编码器生成“标签”权重。

        对齐的图像和文本表示自然适合于跨模态匹配/检索任务,并在相应的基准中实现最先进的(SOTA)结果。例如,在大多数零样本和微调中,ALIGN比以前的SOTA方法好7%以上R@1Flickr30K和MSCOCO中的度量。此外,当将classname输入文本编码器时,这种跨模态匹配自然能够实现零样本图像分类,在不使用任何训练样本的情况下,在ImageNet中实现76.4%的top-1精度。图像表示本身在各种下游视觉任务中也实现了卓越的性能。例如,ALIGN在ImageNet中达到了88.64%的top-1精度。图1-底部(a)-(c)显示了来自ALIGN构建的真实检索系统的跨模态检索示例。

  1. 输入文本——输出图像检索
  2. 输入图像——输出文本检索
  3. 输入图像+文本 ——输出图像检索

🍭🍭2.大规模噪声图像文本数据集

        我们的工作重点是扩大视觉和视觉语言表征学习。为此,我们采用了比现有数据集大得多的数据集。具体来说,我们遵循构建概念字幕数据集的方法来获得原始英语文本数据的版本(图像和文本对)。在这里,为了达到缩放的目的,我们通过放松原作中的大部分清洁步骤,以质量换取大规模。相反,我们只应用基于最小频率的过滤器,如下所述。结果是一个更大(1.8B的图像-文本对)但噪声更大的数据集。图2显示了数据集中的一些示例图像-文本对。

🐸🐸2.1图像过滤器

        基于图像的过滤。继Sharma等人(2018)之后,我们删除了色情图像,只保留短边大于200像素和纵横比小于3的图像,我删除了超过1000个相关文本的图像。为了确保我们不会在测试图像上进行训练,我们还删除了所有与下游评估数据集中重复或接近重复的测试图像

🐸🐸2.2文本过滤器

        基于文本的筛选。我们删除了10张以上图片共享的文本。这些文本通常与图像的内容无关(例如,“1920x1080”、“alt-img”和“cristina”)。我们还丢弃了包含任何罕见标记的文本(原始数据集中1亿个最频繁的unigram和bigram之外),以及那些太短(<3个unigram)或太长(>20个unigrams)的文本,这可以去除诸如“image tid 25&id mggqpuweqdpd&cache 0&lan code 0”之类的嘈杂文本,或者过于通用而无用的文本。

🍭🍭3.预训练和迁移任务

🐸🐸3.1噪声数据预训练

        我们使用双编码器架构预训练ALIGN。该模型由一对图像和文本编码器组成,顶部具有余弦相似性组合函数。我们使用具有全局池化的EfficientNet(不训练分类头中的1x1 conv层)作为图像编码器,使用具有class token嵌入的BERT作为文本嵌入编码器(我们从训练数据集中生成100k个单词片词汇)。在BERT编码器的顶部添加了一个具有线性激活的完全连接层,以匹配图像的尺寸。图像和文本编码器都是从头开始训练的。

        图像和文本编码器通过归一化softmax损失进行优化。在训练中,我们将匹配的图像-文本对视为正样本,将批训练中可以形成的所有其他随机图像-文本配对视为负样本,这一点跟CLIP等文章是相同的。

损失函数:

🐸🐸3.2图文匹配

🐸🐸3.3视觉分类

🐸🐸3.4仅带图像编码的视觉分类

        表5将ALIGN与ImageNet基准测试上以前的方法进行了比较。在冻结功能的情况下,ALIGN略微优于CLIP,并实现了85.5%的SOTA结果,排名前1。经过微调后,ALIGN实现了比BiT和ViT模型更高的精度,并且只比元伪标签差,元伪标签需要在ImageNet训练和大规模未标记数据之间进行更深的交互。与同样使用EfficientNet-L2的NoisyStudent和Meta-Pseudeo标签相比,ALIGN通过使用较小的测试分辨率(600而不是800)节省了44%的FLOPS。

        在VTAB评估中,我们遵循附录I中所示的超参数扫描,每个任务进行50次试验。每个任务在800个图像上进行训练,并且使用200个图像的验证集来选择超参数。

        在扫描之后,所选择的超参数用于对每个任务的1000个图像的组合训练和验证分割进行训练。表6报告了三次微调运行的平均准确度(包括每个小组的分解结果)和标准偏差,并表明在应用类似的超参数选择方法的情况下,ALIGN优于BiT-L。

        表7将ALIGN与BiT-L和SAM进行了比较,它们都对所有任务应用了相同的微调超参数。2对于这样的小任务,微调中的细节很重要。因此,我们列出了baseline结果,但没有使用SAM优化进行更公平的比较。在不调整优化算法的情况下,我们的结果(三次运行的平均值)与SOTA结果相当。

🍭🍭4.消融实验

🐸🐸4.1网络结构

        图3显示了图像和文本backbone的不同组合的MSCOCO零样本检索和ImageNet KNN结果。除了ImageNet KNN度量在EfficientNet-B7和EfficientNet-L2的情况下从BERT Base开始饱和到BERT Large之外,使用更大的backbone可以很好地提高模型质量。正如预期的那样,扩大图像编码器容量对于视觉任务更为重要(例如,即使使用BERT Mini文本塔,L2也比使用BERT Large的B7表现更好)。在图像文本检索任务中,图像和文本编码器的能力同样重要。基于图3所示的良好缩放特性,我们只使用EfficientNet-L2+BERT-Large对模型进行微调。

🐸🐸4.2超参数

        表8描述了关键的架构超参数,包括嵌入维度、批次中随机阴性的数量和softmax温度。表8将许多模型变体与使用以下设置训练的基线模型(第一行)进行了比较。

🐸🐸4.3不同数据集

🐸🐸4.4权衡数据数量和数据质量 

🍭🍭5.效果展示

🐸🐸5.1图像检索

🐸🐸5.2图像和文本输入检索图像 

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

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

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

相关文章

Bean的实例化方法

目录 1.工厂模式通常有三种形态&#xff1a; 2.简单工厂 2.1 静态工厂 2.1通过factory-bean实例化 2.3通过FactoryBean接口实例化 3.测试 关于容器的使用 3.1获得spring文件方式 3.2getBean方式 4.关闭容器 1.工厂模式通常有三种&#xff1a; 第一种&#xff1a;简单工…

利用鸿鹄快速构建公司IT设备管理方案

需求描述 相信应该有一部分朋友跟我们一样&#xff0c;公司内部有很多各种各样的系统&#xff0c;比如资产管理、CRM、issue管理等等。这篇文章介绍下&#xff0c;鸿鹄是如何让我们的资产系统&#xff0c;按照我们的需求展示数据的。 我们的资产管理系统&#xff0c;是使用开源…

Go语音介绍

Go语言介绍 Go 即Golang&#xff0c;是Google公司2009年11月正式对外公开的一门编程语言。 Go是静态强类型语言&#xff0c;是区别于解析型语言的编译型语言。 解析型语言——源代码是先翻译为中间代码&#xff0c;然后由解析器对代码进行解释执行。 编译型语言——源代码编…

Vue3描述列表(Descriptions)

&#x1f601; 整体功能效果与 ant design vue 保持高度一致 &#x1f601; 包含两种组件&#xff1a;Descriptions 和 DescriptionsItem&#xff08;必须搭配使用&#xff01;&#xff09; 效果如下图&#xff1a;在线预览 APIs Descriptions 参数说明类型默认值必传title…

删除注释(力扣)

删除注释 题目 给一个 C 程序&#xff0c;删除程序中的注释。这个程序source是一个数组&#xff0c;其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。 在 C 中有两种注释风格&#xff0c;行内注释和块注释。 字符串// 表示行注释&#xff0c;表示//和其右侧…

冒泡排序【Java算法】

文章目录 1. 概念2. 思路3. 代码实现 1. 概念 比较前后相邻的两个数据&#xff0c;如果前面数据大于后面的数据&#xff0c;就将这两个数据互换。这样对数组的第0个数据到第 N - 1 个数据进行一次遍历后&#xff0c;最大的一个数据就 “沉” 到数组的第 N - 1 个位置。 N N - …

知识区博主转型——兼做知识区和改造区博主!!!!!

想脱单的进来&#xff0c;一起交流如何能脱单&#xff01;&#xff01;&#xff01; 为什么——我太羡慕有对象的人了哭死&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 你是不是很羡慕别人怎么都有女朋友 别人家的女朋友怎么都那么好&#xff…

FPGA学习—通过数码管实现电子秒表模拟

文章目录 一、数码管简介二、项目分析三、项目源码及分析四、实现效果五、总结 一、数码管简介 请参阅博主以前写过的一篇电子时钟模拟&#xff0c;在此不再赘述。 https://blog.csdn.net/qq_54347584/article/details/130402287 二、项目分析 项目说明&#xff1a;本次项目…

RISCV 5 RISC-V调用规则

RISCV 5 RISC-V调用规则 1 Register Convention1.1 Integer Register Convention1.2 Floating-point Register Convention 2. Procedure Calling Convention2.1 Integer Calling Convention2.2 Hardware Floating-point Calling Convention2.3 ILP32E Calling Convention2.4 Na…

大数据课程F4——HIve的其他操作

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握HIve的join&#xff1b; ⚪ 掌握HIve的查询和排序 ⚪ 掌握HIve的beeline ⚪ 掌握HIve的文件格式 ⚪ 掌握HIve的基本架构 ⚪ 掌握HIve的优化&#xff1b; 一、jo…

想了解好用的翻译pdf的软件吗?

在全球化的时代背景下&#xff0c;跨国贸易越来越普遍&#xff0c;跨语言沟通也越来越频繁。小黄是一家跨国公司的员工&#xff0c;他梦想能在全球各地拓展自己的业务&#xff0c;奈何遇到了一个巨大的挑战&#xff1a;跨语言沟通。在这其中&#xff0c;pdf文件是他经常接收到的…

linux基本功系列之cd命令实战

文章目录 前言一. cd命令的介绍二. 语法格式及常用选项三. 参考案例总结 前言 居然发现了落下了CD命令&#xff0c;也不算落下把&#xff0c;主要是cd命令内容太少&#xff0c;撑不起一篇文章&#xff0c;今天也写一写&#xff0c;就当记个笔记吧 &#x1f3e0;个人主页&#…

ubuntu下,在vscode中使用platformio出现 Can not find working Python 3.6+ Interpreter的问题

有一段时间没有使用platformio了&#xff0c;今天突然使用的时候&#xff0c;发现用不了&#xff0c;报错&#xff1a; Ubuntu PlatformIO: Can not find working Python 3.6 Interpreter. Please install the latest Python 3 and restart VSCode。 上网一查&#xff0c;发现…

【Liux下6818开发板(ARM)】触摸屏

(꒪ꇴ꒪ ),hello我是祐言博客主页&#xff1a;C语言基础,Linux基础,软件配置领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff01;送给读者的一句鸡汤&#x1f914;&#xff1a;集中起来的意志可以击穿顽石!作者水平很有限&#xff0c;如果发现错误&#x…

MacOS上用docker运行mongo及mongo-express

MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。 前提 要求…

高校陆续拥抱chatgpt,人工智能会给学术带来什么变化会有什么影响

在当今信息爆炸的时代&#xff0c;人工智能在各行各业都发挥着越来越重要的作用&#xff0c;高校教育领域也不例外。最近&#xff0c;越来越多的高校开始陆续拥抱chatgpt&#xff08;Chatbot GPT&#xff09;这一人工智能技术&#xff0c;在学术领域会带来了怎样的变化与影响&a…

【RabbitMQ(day3)】扇形交换机和主题交换机的应用

文章目录 第三种模型&#xff08;Publish/Subscribe 发布/订阅&#xff09;扇型&#xff08;funout&#xff09;交换机Public/Subscribe 模型绑定 第四、第五种模型&#xff08;Routing、Topics&#xff09;第四种模型&#xff08;Routing&#xff09;主题交换机&#xff08;To…

在线五子棋对战

目录 数据管理模块&#xff08;数据库设计&#xff09; 前端界面模块 业务处理模块 会话管理模块网络通信模块(session,cookie) 在线管理模块 房间管理模块 用户匹配模块 项目扩展 数据管理模块&#xff08;数据库设计&#xff09; 数据库中有可能存在很多张表&#xf…

微信小程序接入腾讯云天御验证码

腾讯云新一代行为验证码&#xff08;Captcha&#xff09;&#xff0c;基于十道安全防护策略&#xff0c;为网页、APP、小程序开发者打造立体、全面的人机验证。在保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时&#xff0c;提供更精细化的用户体验。 …

DataSphere Studio- 1.1.1 安装部署(自动化脚本)

DSSLinkis Ansible一键安装脚本 DSS1.1.1 & Linkis 1.3.0 Ansible 一键部署脚本 作者&#xff1a;wubolive Q Q&#xff1a;1049635685 邮箱&#xff1a;wubolivefoxmai.com Github&#xff1a;https://github.com/wubolive/dss-linkis-ansible 一、简介 为解决繁琐…