多模态系列论文--CoCa 详细解析

这篇具有很好参考价值的文章主要介绍了多模态系列论文--CoCa 详细解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文地址:CoCa: Contrastive Captioners are Image-Text Foundation Models
代码地址:CoCa

1 摘要

CoCa代表Contrastive Captioners的缩写,代表模型用两个目标函数训练出来的,一个是Contrastive Loss,一个是Captioning Loss。本文因为数据集更大,模型也更大,所以它的效果很好,在多模态所有的任务均SOTA,而且在单模态里,在ImageNet上也得到了90以上的Top1准确度,在视频动作识别领域,在Paper with Code上CoCa在K400、K600、K700这些数据集上排名前三。

2 网络结构

多模态系列论文--CoCa 详细解析,多模态论文,多模态,COCA

CoCa是ALBEF的一个后续工作,它与ALBEF的模型类似,左边是一个Image Encoder,右边是一个Text Decoder,注意,这里是Decoder
不是Encoder。从左右来看还是左边图像分支,右边文本分支,文本分支分两部分,前面用来抽取Unimodel的文本特征,后面做多模态的特征。整个模型就是用两个目标函数训出来的,一个是ITC,一个是Language Modeling Loss,也就是Contrastive和Captioning,具体步骤如下:

  1. 图像通过Image Encoder,得到一系列的Token,文本通过文本的解码器,得到一系列的文本特征。
  2. 图像的CLS Token和文本的CLS Token计算ITC loss
  3. 图像其他的Token做Attention Pooling,然后再传到多模态的Text Decoder里做Cross Attention,这样把视觉和文本的特征融合在一起了。多模态的特征用Captioning Loss训练,也就是BLIP、GPT用的Language Modeling Loss。

所以CoCa的布局跟ALBEF是一模一样的,区别是:

  1. 在图像分支做Attentional Pooling,这一部分是可学的,这种可学的Pooling方式能够针对不同的任务学到更好的特征。
  2. 不论是单模态的文本特征的学习还是多模态的特征学习,整个文本端统一都用Decoder训练目标函数,使用Captioning的Loss,文本的输入从一开始前面的Self-Attention Layer就是Causal的(也就是mask住一个句子后半部分,然后用前半部分去预测句子后面内容)。因为作者在超大的几十亿的数据集上去做预训练,所以文本如何mask关系不大,模型应该是什么都见过。

Coca的模型实现并不难,但是想复现它难度非常大。原因是:

  1. 模型大:虽然很简单,但它训练出来最大的模型参数量已经达到了2.1 billion,算是视觉或者多模态里面非常大的一个模型(当然在NLP那边已经有几十亿上百亿的模型)
  2. 训练的数据集∶作者不只用了之前训练Align用的多模态的数据集,同时还把GFT 3 billion(google私有数据)图像分类的数据集转化成了多模态数据集,加在一起有几十亿的训练数据,所以不论是模型还是这个数据都远超之前所有工作的这个scale,效果也是非常明显的。

3 损失函数

  1. ITC loss:Contrastive Loss,图像的CLS Token和文本的CLS Token计算ITC loss。
  2. LM(Captioning) Loss:单模态、多模态的文本特征学习,计算LM Loss。

文本端统一都用Decoder训练目标函数,并且只用一个Captioning Loss而不用ITM Loss,原因是作者这里想解决训练的效率问题,之前不论是ALBEF还是VLMO,因为算各种的目标函数,往往一个Training Iteration要forward这个模型好几次,无形中增加了模型训练的时间长度,比如训练100个Epoch,其实forward三次之后相当于训练了300个Epoch。作者这里为了让ITC Loss和Captioning Loss能同时计算,所以文本的输入从刚开始就必须是Causal的,这样通过Unimodal Text Decoder出来的特征能直接做ITC Loss,同样的输入得到的多模态特征也直接能做Captioning Loss。这样一个Iteration就是只forward一次,训练时间就会降低一些。

4 实验结果

多模态系列论文--CoCa 详细解析,多模态论文,多模态,COCA
CoCa画了一张图,里面多边形的每一个顶点代表了一个数据集,或者说是一个任务。黄色圈指的是之前在所有的这些数据集上不同的方法表现出来的SOTA的performance。CoCa就是在这些State of Art的外面的紫色的框,就是CoCa的性能比之前所有的方法在这些所有的任务和数据集上都取得了更好的效果,而且在大部分数据集上都获得大幅度的提升。
多模态系列论文--CoCa 详细解析,多模态论文,多模态,COCA
CoCa用表格2展现了它在各个数据集上的表现。

5 总结

其实不论用ALBEF或者CoCa模型结构,还是VLMO、 BLIP,共享参数都是可以的。当把这个模型做大,数据集做大后,模型性能都差不多,其实往往最后拼的都是数据文章来源地址https://www.toymoban.com/news/detail-550749.html

到了这里,关于多模态系列论文--CoCa 详细解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分享AIGC前沿论文系列二 面向区域级图像理解的端到端多模态大模型GPT4RoI

    面向区域级图像理解的端到端多模态大模型 带来了超越图像级理解的全新对话和交互体验 进行丝滑的人机互动,不仅仅是文字级别的人机互动 本文提出对感兴趣区域进行Instruction Tuning,并提出GPT4RoI: 一种区域级视觉-语言模型,带来了超越图像级理解的全新对话和交互体验,

    2024年02月15日
    浏览(28)
  • DETR系列:RT-DETR(一) 论文解析

    论文:《DETRs Beat YOLOs on Real-time Object Detection》 2023.4 DETRs Beat YOLOs on Real-time Object Detection:https://arxiv.org/pdf/2304.08069.pdf 源码地址:https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/rtdetr 本文是RT0-DETR的论文解析,详细部署请查看DETR系列:RT-DETR实战部署 第一行是YOLO系列算法

    2024年02月05日
    浏览(35)
  • 更快更准 | YOLOv3算法超详细解析(包括诞生背景+论文解析+技术原理等)

    前言: Hello大家好,我是小哥谈。 YOLOv3是一种基于深度学习的目标检测算法,它可以快速而准确地在图像中检测出多个目标。它是由Joseph Redmon和Ali Farhadi在2018年提出的,是YOLO(You Only Look Once)系列算法的第三个版本。YOLOv3算法使用了Darknet-53网络作为其主干网络,并且采用了

    2024年01月20日
    浏览(29)
  • 【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)

    从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的大佬们于2015年提出的一种新的目标检测算法。它与之前的目标检测算法

    2024年02月04日
    浏览(38)
  • 【YOLO系列】YOLOv4论文超详细解读2(网络详解)

     上一篇我们一起读了YOLOv4的论文《YOLOv4:Optimal Speed and Accuracy of Object Detection》(直通车→【YOLO系列】YOLOv4论文超详细解读1(翻译 +学习笔记)),有了初步的印象,论文里面涉及到很多tricks,上一篇介绍的比较简略,我们这篇来详细介绍一下。 一、YOLOv4的简介  二、YO

    2024年02月02日
    浏览(34)
  • 【YOLO系列】YOLOv2论文超详细解读(翻译 +学习笔记)

    时隔一年,YOLOv2隆重登场,新的YOLO版本论文叫《YOLO9000: Better, Faster, Stronger》,作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基础上,进行了大量改进,提出了 YOLOv2 和 YOLO9000,重点解决YOLOv1召回率和定位精度方面的不足。 论文原文:[1612.08242] YOLO9000: Better, Faster, Stronger (arxiv.org) 项

    2023年04月08日
    浏览(33)
  • 【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

    终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯-_-)╯╧╧)。 其实关于YOLOv7的网络结构还有很多细节值得深入研究,以及代码

    2024年02月02日
    浏览(40)
  • 【YOLO系列】YOLOv3论文超详细解读(翻译 +学习笔记)

    YOLOv3(《Yolov3:An incremental improvement》)是Joseph Redmon大佬关于YOLO系列的最后一篇,由于他反对将YOLO用于军事和隐私窥探,2020年2月宣布停止更新YOLO。  YOLOv3在YOLOv2的基础上改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来

    2024年02月07日
    浏览(35)
  • 安卓系列机型永久去除data分区加密 详细步骤解析

    安卓机型玩机搞机刷写第三方twrp存储出现乱码 存储不显示等情况都是没有解密data分区的原因。用户需要在twrp里格式化data分区重启后存储显示正常。那么这个操作后你的数据分区就会呗彻底清除。   今天主要解析下如何操作可以永久解密data分区。其实data分区加密原则上也

    2024年02月11日
    浏览(29)
  • C++ 引用(&)的超详细解析(小白必看系列)

    目录 一、前言  二、引用的概念介绍 三、引用的五大特性   💦  引用在定义时必须初始化  💦 一个变量可以有多个引用   💦 一个引用可以继续有引用 💦 引用一旦引用一个实体,再不能引用其他实体  💦 可以对任何类型做引用【变量、指针…】  四、引用的两种

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包