CoCa论文笔记

news2024/11/24 17:57:54

摘要

计算机视觉任务中,探索大规模预训练基础模型具有重要意义,因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa(Contrastive Captioner),一个极简设计,结合对比损失和captioning损失预训练一个image-text encoder-decoder基础模型,该模型包含对比方法,如CLIP,和生成方法,如SimVLM,的学习能力。与基本的encoder-decoder transformer使用所有的decoder层来编码输出不同,CoCa在上半部分的decoder中舍去cross-attention来编码unimodel单模态文本表示,然后级联剩下的decoder结合image encoder用于multimodel图文对表示。在单模态的图像和文本表示之间使用对比损失函数,对多模态decoder的输出应用captioning损失来自动预测文本tokens。通过共享相同的计算图,两个训练目标以最小的开销有效地训练。CoCa在网络文本数据和带注释的图像数据上进行预训练,图像的标签被简单视为文本来学习特征表示。此外,CoCa在零样本迁移和各种特定的下游任务上都取得了最好的效果,包含视觉识别(ImageNet,Kinetics-400/600/700,Moments-in-Time),检索,多模型理解和图像字幕。在图像分类任务上,CoCa的zero-shot取得86.3%的top-1准确率,linear probe取得90.6%,微调上取得91.0%的精度。

Introduction

深度学习最近已经见证了基础语言模型的兴起,例如BERT,T5,GPT-3,该模型使用大规模数据进行预训练,并通过零样本、少样本或迁移学习展示通用多任务处理能力。与专用模型相比,针对大量下游任务的预训练基础模型可以摊销训练成本。
对于视觉和视觉-语言问题,几个基础模型已经进行探究过:

  • Single-encoder model:之前的工作验证了single-encoder模型的有效性,该模型在图像分类数据集,如ImageNet,上使用交叉熵损失函数进行预训练。模型的编码器提供通用的视觉特征表示,可以在各种图像和视频理解的下游任务上进行微调。但是这些模型非常依赖于图像的标注,同时不涉及任何自然语言知识,阻碍其在视觉和语言多模态的下游任务上的应用。

  • Dual-encoder model:指的是CLIP这一条线上的研究。利用海量从网络上采集的图文对,以对比损失函数优化两个encoder,即image encoder和text encoder分别对图像和文本进行独立编码。CLIP模型在zero-shot图像分类任务和图像-文本检索上都取得出色的成绩,但是由于CLIP是图像和文本独立编码,且编码过程中没有任何图像和文本侧的交叉,只在最后计算余弦相似度,缺少图像和文本的融合表示,因此不适用于VQA等需要对图像和文本联合理解的任务。

  • Encoder-Decoder model:这种模型使用encoder-decoder的结构,encoder侧对图像进行编码,decoder侧学习一个跨模态的语言模型,预测图像对应的文本。这种生成式方法天然适用于看图说话任务,并且图像和文本在encoder-decoder的attention交互有助于多模态信息融合,适用于多模态理解相关任务。缺点在于,没有像CLIP一样生成单独的文本表示,不能灵活应用到图文匹配任务中。


CoCa统一上面三种范式,训练一个图像-文本模型既可以生成图像侧和文本侧的单独表示,又能进行更深层次的图像、文本信息融合,适用于更广泛的任务。

模型结构

介绍CoCa网络结构之前,首先回顾一下之前三种基础模型的不同之处。

  • Single-Encoder Classification:该方法使用一个大型图像标注数据集,如ImageNet、Instagram、JFT,来训练一个视觉encoder。这些图像标签通常使用交叉熵损失函数来映射到固定的类别空间分布中,公式如下。

L c l s = − p ( y ) l o g q θ ( x ) L_{cls}=-p(y)logq_{\theta}(x) Lcls=p(y)logqθ(x)

  • Dual-Encoder Contrastive Learning:该方法使用海量从网络上采集的图像对进行训练,以对比损失函数优化image和text encoder,公式如下:

L c o n = − 1 N ( ∑ i N l o g e x p ( x i T y i / σ ) ∑ j = 1 N e x p ( x i T y i / σ ) + e x p ( y i T x i / σ ) ∑ j = 1 N e x p ( y i T x i / σ ) ) L_{con}=-\frac{1}{N}(\sum_i^Nlog\frac{exp(x_i^Ty_i/\sigma)}{\sum_{j=1}^Nexp(x_i^Ty_i/\sigma)}+\frac{exp(y_i^Tx_i/\sigma)}{\sum_{j=1}^Nexp(y_i^Tx_i/\sigma)}) Lcon=N1(iNlogj=1Nexp(xiTyi/σ)exp(xiTyi/σ)+j=1Nexp(yiTxi/σ)exp(yiTxi/σ))
其中 x i x_i xi y j y_j yj分布为图像和文本的归一化编码。 σ \sigma σ为温度系数来缩放逻辑值。

  • Encoder-Decoder Captioning:encoder侧对图像进行编码,decoder侧学习一个跨模态的语言模型,预测图像对应的文本,损失函数如下:

L c a p = − ∑ t = 1 T l o g P θ ( y t ∣ y < t , x ) L_{cap}=-\sum_{t=1}^TlogP_{\theta}(y_t|y_{<t},x) Lcap=t=1TlogPθ(yty<t,x)
如下图所示,CoCa模型的整体框架包含3个部分:一个encoder(image encoder)和两个decoder(Unimodel Text Decoder和Multimodel Text Decoder)。Image Encoder采用图像模型对图像进行编码,例如ViT等。Unimodel Text Decoder和CLIP中的text encoder类似,用于提取文本的特征,是一个不和图像侧进行信息交互的文本解码器。Unimodel Text Decoder和Image Encoder之间没有cross attention,而MultiMode Text Decoder建立在Unimodel Text Decoder之上,和Image Encoder进行交互,生成图像和文本交互信息,并解码还原对应文本。

整个模型的损失包括对比学习和看图说话两部分。损失函数如下:
L C o C a = λ c o n ∗ L c o n + λ c a p ∗ L c a p L_{CoCa}=\lambda_{con}*L_{con}+\lambda_{cap}*L_{cap} LCoCa=λconLcon+λcapLcap
单模态文本decoder生成文本编码,末尾的cls token包含文本统一表示,和图像侧编码进行对比学习。多模态文本编码部分和图像侧编码输出进行更深入交互,生成文本预测结果。
此外,CoCa采用attention pooling的方式融合图像侧信息。对于图像识别任务,使用单个图像编码获取全局表示效果更好,而对于多模态理解任务需要更多视觉tokens获取局部特征。因此CoCa在图像侧使用attention pooling既可以提取一个统一的编码,也可以提取每个token的表示。对于生成式任务会用一个维度为256的query进行attention,而对比学习则采用维度为1的query提取全局信息。

实验结果

预训练设置

Data:CoCa使用JFT-3B和ALIGN两个数据集从头开始训练模型,不同于之前的模型首先使用交叉熵损失函数预训练一个图像编码器,CoCa直接从头开始训练所有参数。
Optimization:batch size设置为65536,其中每个batch中的数据来自JFT和ALIGN数据集各一半。训练步数为500k,大约是JFT训练5个epoch,ALIGN训练10个epoch。优化函数采用Adafactor, β 1 = 0.9 , β 2 = 0.999 \beta_1=0.9,\beta_2=0.999 β1=0.9,β2=0.999,权重衰减率为0.01。CoCa预训练的输入大小为288×288,patch size为18×18,之后又以576×576的分辨率训练了一个epoch。

实验结果

CoCa在图像分类、图文检索、看图说话等多个任务上都取得非常亮眼的效果。下图为CoCa在多个任务上的效果对比,可以看到CoCa在多个任务和数据集上都达到SOTA,在ImageNet上达到91%的效果。

视觉识别任务

CoCa分别在图像分类数据集ImageNet和视频数据集Kinetics-400, 600, 700上进行实验验证其有效性。实验过程中的超参数设置如下。

冻结CoCa的预训练权重,然后在数据集上进行训练,在相同的设置下,与其他模型进行对比,效果如下,可以看到CoCa已经取得较好的Top-1精度,同时在视频任务上超过之前的SOTA方法。进一步微调CoCa的encoder,在所有数据集上效果都有提升,在ImageNet上取得新的SOTA达到91%的Top-1值。

跨模式对齐任务

在该任务中,CoCa的所有参数冻结直接用来提取特征进行zero-shot,在这部分多模态decoder没有被使用。

零样本图文检索

CoCa在MSCOCO和Flickr30K两个基础的图文检索数据集上进行测试。按照CLIP的测试方法,首先分别输入图像/文本到对应的encoder中得到测试集中所有的图像/文本embeddings,然后通过余弦相似度召回。如下图所示,CoCa在所有评价指标上都超过之前方法很多。结果显示CoCa可以学习到很好的单模态表示并且跨膜态对齐它们。

零样本图像分类

如下图所示,CoCa在ImageNet上取得一个新的SOTA零样本图像分类结果。此外,通过对比平均值可以知道CoCa具有较好的泛化性。

零样本视频检索

CoCa在MSR-VTT数据集上测试视频-文本检索效果。如下图所示CoCa在text-to-video和video-to-text召回上都取得最好的效果。

多模态理解任务

CoCa一个关键的优势在于其可以像encoder-decoder模型一样处理多模态embeddings,因此CoCa可以进行看图描述和多模态理解任务。

多模态理解

CoCa分别在VQA、SNLI-VE、NLVR2上进行多模态理解任务测试,如下图所示,CoCa效果超过最强的视觉语言预训练模型,同时在这三个任务上都取得了SOTA。

看图说话

除了多模态分类任务,CoCa同样可以直接应用到看图说话任务中。使用captioning损失函数在MSCOCO数据集上微调CoCa,然后进行MSCOCO的Karpathy-test子集测试,同时在线测试NoCaps数据集。如下图所示,Coca在MSCOCO数据集上超越使用交叉熵损失训练的最强模型。在NoCaps测试上,CoCa分别在测试和验证子集上取得SOTA。

结论

本文提出了一个新的图像文本基础模型CoCa,融合了已有的图像预训练范式。CoCa可以使用图像文本对进行端到端训练,并在encoder-decoder范式中有效地对比和caption损失。最重要的是CoCa在一系列下游任务中都取得了最好的效果。

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

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

相关文章

Spring中的核心概念

&#x1f388;个人公众号:&#x1f388; :✨✨✨ 可为编程✨ &#x1f35f;&#x1f35f; &#x1f511;个人信条:&#x1f511; 知足知不足 有为有不为 为与不为皆为可为&#x1f335; &#x1f349;本篇简介:&#x1f349; 本篇记录Spring中的核心概念&#xff0c;如有出入还…

QQ文件怎么恢复?3个方法解决文件丢失问题!

无论是在学习还是工作中&#xff0c;我们都有可能需要接触到QQ这款软件。QQ传输文件十分方便&#xff0c;因此仍然有许多小伙伴喜欢用QQ来发送各种类型的文件。对于大家来说&#xff0c;最害怕的莫过于重要的文件出现丢失的情况。 当我们发现QQ文件意外删除或者过期时该怎么办…

【第28例】IPD体系进阶 | 需求管理:需求实现过程

目录 简介 内容详解 CSDN学院相关推荐 作者简介 简介 继续 IPD 体系中的需求管理相关的专题。 先来看看整个需求管理涉及的过程内容: 需求管理流程主要包含五个阶段: 需求收集; 需求分析; 需求分发/分配;

软件开发项目文档系列之九如何撰写测试方案

测试方案是任何软件开发和项目实施过程中的重要组成部分&#xff0c;它提供了确保系统质量和可靠性的蓝图。通过明确定义测试的范围、策略、资源和计划&#xff0c;测试方案确保项目团队明白如何有效地执行测试&#xff0c;并提供客观的评估和反馈。它有助于降低项目风险&#…

【PyTorch 卷积】实战自定义的图片归类

前言 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络&#xff0c;是深度学习的代表算法之一&#xff0c;它通过卷积层、池化层、全连接层等结构&#xff0c;可以有效地处理如时间序列和图片数据等。关于卷积的概念网络上也比较多&#xff0c;这里就不一一描述了。…

苹果手机黑屏了怎么恢复正常?这些修复方法记得收藏好!

苹果手机黑屏是一种常见的手机故障&#xff0c;很多人在遇到手机突然黑屏的情况时感到束手无策。手机黑屏会干扰用户的正常使用&#xff0c;带来不便&#xff0c;并给用户带来不好的体验。苹果手机黑屏了怎么恢复正常&#xff1f;本文将为大家详细介绍修复苹果手机黑屏的方法。…

3.网络之UDP

UDP协议 文章目录 UDP协议1. UDP概述2. UDP报文格式3. UDP传输限制4. UDP校验和4.1 CRC 循环冗余校验算法4.2 md5 校验算法 1. UDP概述 UDP&#xff08;UserDatagramProtocol&#xff09;是一个简单的面向消息的传输层协议&#xff0c;尽管UDP提供标头和有效负载的完整性验证&a…

Linux指令【下】

目录 时间 date 时间戳 cal 查找 find which whereis grep uniq 打包压缩 zip/unzip tar uname 其他热键 关机 系统互传 linux和Windows Linux和Linux 时间 date 用法&#xff1a;date[option] [format] 选项功能%Y年%d日%m月%H时%M分%s秒%X%H:%M%S%F%Y-%…

「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)

本教程将指导开发者如何生成一个可运行的Spring MVC客户应用程序&#xff0c;该应用程序实现域模型的CRUD应用程序模式。在本教程中&#xff0c;您将学习如何&#xff1a; 从数据库表的Scaffold到现有项目部署搭建的应用程序 使用Spring MVC搭建需要MyEclipse Spring或Bling授…

【MySQL数据库】 一

本文主要介绍了关系型数据库和非关系数据库的区别,以及主流的关系型数据库mysql的安装 , 以及mysql数据库客户端-服务器的结构. 一.数据库的分类 我们可以简单的把数据库看成是一类软件 数据库分成两大类 1.关系型数据库 通常以表格的方式来组织 2.非关系型数据库 通常以键值…

电脑关机很慢?这几个优化技巧请收好!

当我们使用电脑时&#xff0c;一个令人不快的问题是&#xff0c;关机变得异常缓慢。电脑在关机时可能需要很长时间&#xff0c;甚至让人感到沮丧。这不仅是时间浪费&#xff0c;还可能表明系统存在问题。在本文中&#xff0c;我们将介绍四种解决电脑关机很慢的方法&#xff0c;…

怎么向国外客户催单?这样做既有效又不让客户反感

外贸业务员接单的过程其实是一场利益博弈的过程&#xff0c;而且外贸销售永远靠结果说话&#xff0c;所以无论你的客户如何承诺&#xff0c;甚至有时候都已经签订了定单合同做了PI&#xff0c;但客户钱没到账公司&#xff0c;一切就有可能归零。 01 心态一定要稳住 对于每个有…

如何在业务代码中优雅地使用责任链模式

通过使用责任链模式&#xff0c;我们可以更加灵活和优雅地处理请求&#xff0c;降低代码之间的耦合度&#xff0c;提高代码的可维护性和可扩展性。在一些具有复杂业务逻辑或需要动态处理请求的场景下&#xff0c;使用责任链模式将是一个很好的选择。本文将通过一个具体的示例来…

【错误解决方案】ModuleNotFoundError: No module named ‘tensorboardX‘

1. 错误提示 在python程序中&#xff0c;尝试导入一个名为tensorboardX的模块&#xff0c;但Python提示找不到这个模块。 错误提示&#xff1a;ModuleNotFoundError: No module named ‘tensorboardX‘ 2. 解决方案 在python出现中&#xff0c;遇到这个问题是Python无法找到…

无需编程技术,快速搭建个人网站

如果你想拥有一个属于自己的个人网站&#xff0c;但又没有任何编程经验&#xff0c;别担心&#xff0c;我们今天将为你介绍一个简单的方法&#xff0c;让你轻松搭建网站&#xff0c;无需任何编程知识。让我们一起来看看吧&#xff01; 在乔拓云建站工具中&#xff0c;自带了许多…

TypeScript之装饰器

一、是什么 装饰器是一种特殊类型的声明&#xff0c;它能够被附加到类声明&#xff0c;方法&#xff0c; 访问符&#xff0c;属性或参数上 是一种在不改变原类和使用继承的情况下&#xff0c;动态地扩展对象功能 同样的&#xff0c;本质也不是什么高大上的结构&#xff0c;就…

图纸管理制度《八》设计图纸管理制度

第一章 总则 第1条 目的。为做好设计图纸的管理工作&#xff0c;使其收发及时、手续齐全、废图绝迹、不遗失、无差错&#xff0c;特制定本办法。 第2条 适用范围。本办法适用于企业所有工程项目的图纸管理工作。 第3条 相关部门及人员职责 (1) 工程技术部负责图纸管理的监督…

双十一百亿美元补贴,AWS阿里云腾讯云华为云国际版钜惠

双十一来袭&#xff01;阿里云/腾讯云/华为云国际站该怎么玩&#xff1f;九河云&#xff08;双十一特大促销&#xff0c;低至5.18折 (9he.com)&#xff09;这次双十一活动汇聚了一系列前所未有的优惠&#xff0c;不仅能享受服务器和CDN的超值折扣&#xff0c;还有机会赢取华为M…

智慧工地建造平台源码、智慧化工地云平台源码

概述&#xff1a;智慧工地管理平台充分运用数字化技术&#xff0c;聚焦施工现场岗位一线&#xff0c;依托物联网、互联网、AI等技术&#xff0c;围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三大体系为基础应用&#xff0c;实…

Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现

Spring Cloud Alibaba中Nacos的安装&#xff08;Windows平台&#xff09;以及服务的发现 下载安装Nacos解压启动验证是否启动搭建一个简单的Spring Cloud Alibaba项目Spring Cloud Alibaba 以及 Nacos的引入如何选择对应的版本 服务的注册Nacos相关组件的说明 下载安装Nacos G…