《ClipCap》阅读笔记(上)

news2024/11/25 23:35:35

原文出处

[2111.09734] ClipCap: CLIP Prefix for Image Captioning (arxiv.org)

原文笔记

What

ClipCap: CLIP Prefix for Image Captioning

一言以蔽之:使用 CLIP 编码作为标题的前缀使用简单的映射网络然后微调语言模型以生成图像标题

优点:

  • 无需额外的注释或预训练
  • 即使只训练映射网络而 CLIP 和语言模型都保持冻结,我们的方法也能很好地工作。从而允许具有更少可训练参数的轻量级架构。
  • 训练快速

本文的主要贡献如下

  • 一种轻量级的字幕方法,它利用预训练的冻结模型进行视觉和文本处理。
  • 即使语言模型进行了微调,我们的方法也更简单、更快进行训练,同时在具有挑战性的数据集上展示了与最先进的模型的相当的结果。

Why

1、传统的图像描述的两阶段模型需要大量的资源来 弥合视觉和文本表示之间具有挑战性的差距。

我们在训练期间的主要挑战是在 CLIP 和语言模型的表示之间进行翻译。尽管这两个模型都开发了一个丰富多样的文本表示,但它们的潜在空间是独立的,因为它们没有联合训练。)

2、轻量型描述模型更受青睐(训练时间的问题)

3、以往的图像描述模型应用到不同数据集需要再微调

(每个Caption数据集都包含不同的风格,如果训练集和测试集合来源于不同的数据集,这对于预训练的语言模型来说生成的Caption可能是不自然的。)

Challenge

在图像任务中主要存在两个挑战:

1、semantic understanding语义理解(就是生成特征阶段)

2、how to describe a single image描述图片(就是用特征生成描述阶段)

3、如何在1、2中做好衔接,并保证模型的轻量化与泛化性

Idea

1、作者利用强大的视觉语言预训练模型来简化字幕过程——利用CLIP(它的视觉和文本表示密切相关解决了why的1)这种相关性节省了训练时间和数据要求。(选CLIP是因为它包含的语义信息足够多,所以用它来作为Encoder部分,解决了why的3

2、至于解码器:传统的基于Transformer的预训练范式需要大量时间来预训练由于我们的视觉信息驻留在前缀中,我们使用了强大的自回归语言模型GPT-2[30]。考虑到训练损失项,早期的工作采用有效交叉熵,而当代的方法也采用自临界序列训练[15,32,45]。也就是说,需要一个额外的训练阶段来优化CIDEr指标。我们故意避免这种优化,以保留一个快速的培训过程。

Model

一些总结

mapper/mapper输出的带prefix的序列 就是做一个CLIP和GPT2的桥梁,如果是训练时不冻结decoder则decoeder和mapper都适应clip,效果自然好,这会儿用mlp或者tansformer结构的mapper都可以,但是作者又通过实验证明:我们得出结论,当采用语言模型的微调时,转换器体系结构的表达能力是不必要的。;如果decoder冻结,mapper就完全当一个转接器做一个承上启下的作用,这时候就更建议用能力更强的Transformer结构的mapper

从模型的角度来看要看方法上是否创新,效果怎么样,模型时空规模怎么样(测试效率怎么样,训练效率怎么样,内存占用怎么样),泛化性怎么样,衍生性怎么样

原文翻译

Abstract

图像字幕是视觉语言理解的一项基本任务,其中模型预测到给定输入图像的文本信息字幕。在本文中,我们提出了一种简单的方法来解决此任务。我们使用 CLIP 编码作为标题的前缀使用简单的映射网络然后微调语言模型以生成图像标题。最近提出的 CLIP 模型包含丰富的语义特征,这些特征使用文本上下文进行训练,使其最适合视觉语言感知。我们的关键思想是,将Clip与预训练的语言模型 (GPT2) 结合在一起,使我们对视觉和文本数据都有了广泛的理解。因此,我们的方法只需要相当快速的训练并产成有能力的字幕模型无需额外的注释或预训练,它有效地为大规模和多样化的数据集生成有意义的标题。令人惊讶的是,即使只训练映射网络而 CLIP 和语言模型都保持冻结,我们的方法也能很好地工作。从而允许具有更少可训练参数的轻量级架构。通过定量评估,我们证明了我们的模型在具有挑战性的概念字幕和nocaps数据集上取得了与最先进方法相当的结果,同时更简单、更快、更轻。我们的代码可在 https://github 获得。com/rmokady/CLIP_prefix_caption。

1. Introduction

在图像字幕中,任务是给输入图像提供有意义且有效的自然语言的描述。这项任务带来了两个主要挑战。第一个是语义理解。这方面的范围从简单的任务,例如检测主对象,到更多涉及的任务,例如理解图像描述部分之间的关系。例如,在图 1 的左上角图像中,模型理解对象是礼物。第二个挑战是描述单个图像的大量可能方法。在这方面,训练数据集通常指示给定图像的首选选项

已经提出了许多用于图像字幕的方法[4,9,13,19,34,35,42,44,47]。通常,这些作品利用编码器的视觉线索和文本解码器来产生最终的标题。从本质上讲,这导致需要弥合视觉和文本表示之间具有挑战性的差距。由于这个原因,这些模型需要大量的资源。它们需要大量的训练时间、大量的可训练参数、大量的数据集,在某些情况下甚至需要额外的注释(如检测结果),这限制了它们的实际适用性。(两阶段的问题)

过多的训练时间对于需要多个培训步骤的应用程序来说甚至更有限制。例如,在不同的数据集上训练多个字幕模型会给不同的用户(或应用程序)提供相同图像的不同字幕(过多的训练时间会造成更大的限制)。此外,给定新的样本,需要用新数据定期更新模型。因此,轻量级字幕模型更可取。具体来说,具有更快的训练时间和更少的可训练参数的模型将是有益的,特别是如果它不需要额外的监督的话更好。(轻量级的问题)

在本文中,我们利用强大的视觉语言预训练模型来简化字幕过程。更具体地说,我们使用Radford等人[29]最近引入的CLIP(对比语言-图像预训练)编码器。CLIP 旨在为图像和文本对提供强加共享表示。它使用对比损失在大量图像和文本描述上进行训练。因此,它的视觉和文本表示密切相关。正如我们所展示的,这种相关性节省了训练时间和数据要求。

如图 2 所示,我们的方法通过在 CLIP 嵌入上应用映射网络每个描述生成一个前缀。这个前缀是一个固定大小的嵌入序列,拼接到字幕嵌入前面。这些被馈送到语言模型,该模型与映射网络训练一起进行了微调。在推理时,语言模型逐个单词的生成图片描述,从 CLIP 前缀开始。该方案缩小了视觉和文本世界之间的上述差距,允许使用简单的映射网络。为了实现更轻的模型,我们引入了我们方法的另一个变体,我们只训练映射网络,而 CLIP 和语言模型都保持冻结。通过利用富有表现力的转换器架构,我们成功地生成了有意义的字幕,同时强加的可训练参数要少得多。我们的方法受到Li等人[20]的启发,它展示了通过拼接学习到的前缀来有效地将现有语言模型适应到新任务的能力。我们使用 GPT-2 [30] 作为我们的语言模型,该模型已被证明可以生成丰富多样的文本。

由于我们的方法利用了CLIP的丰富视觉文本表示,我们的模型需要更少的训练时间。例如,我们仅仅在单个 Nvidia GTX1080 GPU 上用大规模概念字幕数据集的 300 万个样本训练我们的模型 80 小时,尽管如此,我们的模型可以很好地推广到复杂场景,如图一所示(例如,在日落的海滩上练习瑜伽)。

我们广泛评估了我们的方法,展示了成功的真实和有意义的字幕。尽管我们的模型需要更少的训练时间,但它仍然在具有挑战性的Conceptual Captions [33] 和 nocaps [1] 数据集上实现了与最先进的方法相当的结果,并且在更受限制的 COCO [7, 22] 基准上略低。此外,我们对所需的前缀长度微调语言模型的效果进行了彻底的分析,包括对我们生成的前缀的解释。总体而言,我们的主要贡献如下:

  • 一种轻量级的字幕方法,它利用预训练的冻结模型进行视觉和文本处理。
  • 即使语言模型进行了微调,我们的方法也更简单、更快进行训练,同时在具有挑战性的数据集上展示了与最先进的模型的相当的结果。

2. Related Works

最近,Radford等人[29]提出了一种新的方法,称为CLIP,以联合表示图像和文本描述。CLIP包括两个编码器,一个用于视觉线索,一个用于文本。它在由无监督对比损失指导下利用超过 4 亿个图像-文本对进行训练,从而产生视觉和文本数据共享的丰富语义潜在空间。许多作品已经成功地将CLIP应用于需要理解一些辅助文本的计算机视觉任务,例如基于自然语言条件生成图像或编辑图像 [5, 14, 28]。在本文中,我们利用强大的 CLIP 模型来完成图像字幕的任务。请注意,我们的方法不使用 CLIP 的文本编码器,因为没有输入文本,输出文本由一个语言模型生成。

通常,图像描述[34]模型首先将输入像素编码为特征向量,然后这些特征向量用于生成最终的单词序列。早期的作品利用了从预训练的分类网络中提取的特征[6,9,13,42],而后来的作品[4,19,47]则利用了目标检测网络更具表现力的特征[31]。虽然预训练的目标检测网络可用于流行的COCO基准[7,22],但对于其他数据集并不一定正确。这意味着大多数方法需要额外的对象检测注释来操作新的和不同的数据集。为了进一步利用视觉线索,通常利用注意力机制[4,6,42]来关注特定的视觉特征。此外,最近的模型应用自注意[16,43]或使用表达性视觉Transformer[12]作为编码器[23]。我们的作品使用CLIP的表达嵌入来进行视觉表现。由于CLIP是在非常多的图像上训练的,我们可以在任何一组自然图像上操作,而不需要额外的注释。

为了产生描述本身,使用了文本解码器。早期的作品使用了LSTM变体[8,38,39],而最近的作品[16,26]采用了改进的Transformer架构[36]。在变压器的基础上,最著名的作品之一是BERT[11],展示了新引入的范式的主导地位。使用这种范式,语言模型首先在大型数据集上进行预训练,以解决辅助任务。然后,针对特定的任务对模型进行微调,其中使用了额外的监督。由于我们的视觉信息驻留在前缀中,我们使用了强大的自回归语言模型GPT-2[30]。考虑到训练损失项,早期的工作采用有效交叉熵,而当代的方法也采用自临界序列训练[15,32,45]。也就是说,需要一个额外的训练阶段来优化CIDEr指标。我们故意避免这种优化,以保留一个快速的培训过程。

与我们最接近,是使用视觉和语言预训练来创建视觉和文本的共享潜在空间的工作 [19,25,35,46,47]。Zhou等人[47]使用从对象检测器中提取的视觉token作为caption token的前缀。然后预训练整个模型以使用 BERT [11] 架构进行预测。Li等人[19]和Zhang等人[46]也利用了BERT,但需要对对象标签进行额外的监督。因此,这些方法仅限于此类对象检测器或注释可用的数据集。Wang等人[40]的方法减轻了对补充注释的需求,但仍然进行了广泛的预训练过程,其中包含数百万个图像文本对,导致训练时间很长。这种详尽的预训练步骤需要弥补语言和视觉的联合表示的不足,(因为Clip利用对比学习的范式训练了大规模的图像文本对,内在的包含了很全面很精准的视觉问本潜在空间,所以)我们直接地通过使用 CLIP 获得(完备的语言和视觉的联合表示)。

3. Method

我们从我们的问题陈述开始。给定一个成对的图像和标题 {xi, ci}i=1->N 的数据集,我们的目标是学习为从未见过的输入图像生成有意义的标题。我们可以将图片描述称为一系列tokens ci = ci1,。, ci l,我们将标记填充到最大长度 l。那么我们的训练目标如下:

其中 θ 表示模型的可训练参数。我们的关键思想是使用CLIP的丰富语义嵌入,它几乎包含基本的视觉数据作为条件。继最近的工作 [47] 之后,我们将条件视为标题的前缀。由于所需的语义信息被封装在前缀中,我们可以利用自回归语言模型来预测下一个标记,而不考虑未来的标记。因此,我们的目标可以描述为:

3.1. Overview

我们的方法的说明如图2所示。我们使用GPT-2(large)作为我们的语言模型,并利用其tokenizer将caption投影到一系列嵌入中。为了从图像xi中提取视觉信息,我们使用预训练的CLIP[29]模型的视觉编码器。接下来,我们使用表示为 F 的轻量级映射网络将 CLIP 嵌入映射到 k 个嵌入向量:

其中每个向量 pi j 与词嵌入具有相同的维度。然后,我们将获得的视觉嵌入拼接到标题嵌入ci后边:

在训练期间,我们将前缀标题连接 {Zi}N i=1 馈送到我们的大语言模型(GPT2-)当中。我们的训练目标是以自回归方式预测以前缀为条件的字幕标记。为此,我们使用简单而有效的交叉熵损失来训练映射组件 F:

我们现在转向讨论我们方法的两个变体,以了解语言模型的额外微调及其含义。

3.2. Language model fine-tuning

我们在训练期间的主要挑战是在 CLIP 和语言模型的表示之间进行翻译。尽管这两个模型都开发了一个丰富多样的文本表示,但它们的潜在空间是独立的,因为它们没有联合训练。此外,每个Caption数据集都包含不同的风格,这对于预训练的语言模型来说可能不是自然的。因此,我们建议在映射网络训练期间微调语言模型。这为网络提供了额外的灵活性,并产生更具表现力的结果

然而,微调语言模型自然会显着增加可训练参数的数量。因此,我们提出了一种我们方法的附加变体,其中我们在训练期间保持语言模型固定。我们调整冻结语言模型的尝试受到 Li 和 Liang [20] 工作的启发。在他们的工作中,他们通过仅学习前缀,将这样的预训练模型应用到新的任务中。这种前缀经过自动优化,以在标准训练过程中引导语言模型朝着新目标方向发展。按照这种方法,我们建议避免微调以实现更轻的模型,其中只训练映射网络。如第 4 节所述,我们的模型不仅产生了现实和有意义的字幕,而且在没有微调语言模型的情况下,在一些实验中也取得了优异的结果。请注意,微调 CLIP 不会有利于结果质量,而是会增加训练时间和复杂性。因此,我们假设 CLIP 空间已经封装了所需的信息,并使其适应特定样式会限制模型的灵活性。

3.3. Mapping Network Architecture

我们的关键组件是映射网络,它将 CLIP 嵌入转换为 GPT-2 空间。当语言模型(伴随mapping网络的训练)同时进行微调时,映射就不那么困难了,因为我们很容易控制两个网络。因此,在这种情况下,我们可以使用一个简单的多层感知器 (MLP)。即使仅使用单个隐藏层,我们也实现了现实和有意义的字幕,因为 CLIP 是针对视觉-语言目标进行预训练的。

然而,当语言模型被冻结时,我们建议利用更具表现力的Transformer [36] 架构。Transformer 在减少长序列的参数数量的同时,可以在输入标记之间进行全局注意力。这使我们能够通过增加前缀大小来改进我们的结果,如第 4 节所述。我们向变压器网络提供两个输入,CLIP的视觉编码和可学习的常数输入。该常数具有双重作用,首先,通过多头注意力从 CLIP 嵌入中检索有意义的信息。其次,它通过学习将固定语言模型适应新数据(mapper/mapper输出的带prefix的序列 就是做一个CLIP和GPT2的桥梁,如果是训练时不冻结decoder则decoeder和mapper都适应clip,效果自然好,这会儿用mlp或者tansformer结构的mapper都可以,但是作者又通过实验证明:我们得出结论,当采用语言模型的微调时,转换器体系结构的表达能力是不必要的。;如果decoder冻结,mapper就完全当一个转接器做一个承上启下的作用,这时候就更建议用能力更强的Transformer结构的mapper)。这将在第 1 节中演示。4,其中我们为生成的前缀提供可解释性。可以看出,当语言模型固定时,Transformer映射网络在没有任何文本含义的情况下学习一组细致的嵌入。这些优化使中间特征适应语言模型。

3.4. Inference

在推理过程中,我们使用CLIP编码器和映射网络f提取输入图像x的视觉前缀。我们首先生成以视觉前缀为条件的标题,并在语言模型输出的指导下逐个预测下一个标记。对于每个标记,语言模型输出词汇表中所有词汇token的概率,这些概率用于(通过贪婪方法或波束搜索的方法)确定下一个单词token。

4. Results

见下篇

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

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

相关文章

[el-form] 表单验证:一次验证两个值,传参

一次验证两个值 要在表单的el-form-item 一次验证两个值,都不能为空 在验证规则rules里,要验证的值里加上validator验证规则,“valTowValue”是自己定义的。 传参 const validateField (key, errorMessage) > (rule, value, callback) &g…

virtualbox(7.0) ubuntu(22) 和win11共享文件夹

在虚拟机中安装增强功能。在virtualbox中配置 执行命令将用户加入vboxsf组 sudo adduser your_usrname vboxsf 重启ubuntu即可

语音识别FBank特征提取学习笔记

语音识别就是把一段语音信号转换成对应的文本信息,这一过程包括四个大的模块,分别是:特征提取、声学模型、语言模型、字典与解码。 本篇就来梳理一下特征提取模块的实现思路和方法。 常用的语音特征有: 梅尔频率倒谱系数&#x…

windows电脑如何运行python的定时任务

这里需要使用:windows系统设置-控制面板里的计划任务 1.打开计划任务之后,选择:创建基本任务 2.填写名称,这里根据自己具体的项目需求填写,然后点击下一步。 3.选择每日,再点击下一步 4.设置时间&…

告别写作难题,这些AI写作工具让你文思泉涌

在现实生活中,除了专业的文字工作者,各行各业都避免不了需要写一些东西,比如策划案、论文、公文、讲话稿、总结计划……等等。而随着科技的进步,数字化时代的深入发展,AI已经成为日常工作中必不可少的工具了&#xff0…

全新升级!中央集中式架构功能测试为新车型保驾护航

“软件定义汽车”新时代下,整车电气电气架构向中央-区域集中式发展已成为行业共识,车型架构的变革带来更复杂的整车功能定义、更多的新技术的应用(如SOA服务化、智能配电等)和更短的车型研发周期,对整车和新产品研发的…

基于合成 VIIRS(NTL)夜间光照数据-印度

GAN based Synthetic VIIRS (NTL) India 基于合成 VIIRS(NTL)的广域网 印度 简介 本研究利用了两个主要来源的夜间光照(NTL)数据:国防气象卫星计划(DMSP)和苏美国家极地伙伴关系(…

使用 Nginx + GeoIP2 获取客户端地理位置及限制指定地区访问

要实现防火墙只允许单个城市的访问,您可以采取以下几种方法: 1、IP地理位置过滤: 使用GeoIP数据库(如MaxMind的GeoIP2)来确定IP地址的地理位置。 配置防火墙规则,只允许来自特定城市的IP地址访问。 2、内容…

SpringCloud-服务网关-Gateway

1.服务网关在微服务中的应用 (1)对外提供服务的难题分析: 微服务架构下的应用系统体系很庞大,光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪器和链路聚合,还有Kaka和MQ之类的中间件&…

macOS使用Karabiner-Elements解决罗技鼠标G304连击、单击变双击的故障

记录一下罗技鼠标G304单击变双击的软件解决过程和方案(适用于macOS, 如果是Windows,使用AutoHotKey也有类似解决办法、方案,改日提供): 背景:通过罗技Logitect G HUB软件对罗技的游戏鼠标侧键b…

TikTok美区日销二十万美金爆款黑马!胸贴赛道成功起飞!

从去年开始,一项名为“No bra”(无胸罩)的挑战就长期刷屏TikTok。随着平台内各大博主和明星站台发声,越来越多用户也参与其中,话题的热度逐渐走向高潮。截止到目前, TikTok上相关话题累计播放量已高达8.3亿…

数据恢复篇:5 款最佳 Mac 数据恢复软件

说到保护我们的数字生活,数据恢复软件的重要性怎么强调都不为过。无论您是意外删除了假期照片的普通用户,还是面临硬盘损坏的专业人士,随之而来的恐慌都是普遍存在的。幸运的是,数据恢复工具可以缓解这些压力。在Mac用户可用的众多…

Postman接口测试工具详解【保姆级教程】

大家好,我是CodeQi! 在我们日常的开发工作中,无论是前端还是后端,API 接口的测试都是必不可少的一环。 你有没有遇到过这样的情况:接口测试工具复杂难用,使用起来让人抓狂;或者手动构造请求效率低下,容易出错? 别担心,我今天要介绍的 Postman 工具,将会彻底改变你…

【实用小工具】Aconvert文件转换神器

1 Aconvert简介 Aconvert.com在线转换各类PDF,文档,电子锁,图像,图标,视频,音频和压缩文件。域名中的“A”代表“ALL”。您可以点击右上角的转换按钮开始快速转换:无需进入目录,直接…

visual studio远程调试

场景一(被远程调试的电脑) 确定系统位数 我这里是x64的 找到msvsmon.exe msvsmon.exe目录位置解释: “F:\App\VisualStudio\an\Common7\IDE\”是visual studio所在位置、 “Remote Debugger\”是固定位置、 “x64”是系统位数。 拼起来就是…

【Linux】正确的关机方法

1. Linux正确的关机方式 如何关机呢?我想,很多朋友在DOS年代已经有在玩计算机了。在当时我们关闭DOS的系统时,常常是直接关闭电源开关,而Windows 在你不爽的时候,按着电源开关四秒也可以关机,但是在Linux则…

每日一题——Python实现PAT乙级1026 程序运行时间(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码结构和逻辑 时间复杂度 空间复杂度 代码优化建议 总结 我要更强 …

C基础-标准库上

目录 零. 简介 一. assert 二. ctype 三. errno 四. float 五. limits 六. locale C基础-标准库下连接: http://t.csdnimg.cn/LCcXR 零. 简介 C 语言标准库是一组由 ANSI C 标准规定的头文件和函数的集合,为 C 语言提供了常用的功能,以满足各种基…

晨持绪科技:抖音店铺运营思路

在抖音这个充满活力与创意的平台上,店铺运营不仅仅是一种商业行为,它更是一种艺术的展示。如同画家在画布上勾勒出色彩斑斓的画面,抖音店铺的运营者们也在平台上精心策划着每一个细节,以吸引更多的目光和流量。 内容创作。内容是吸…

注意!!2024《信息系统运行管理员》易混淆知识点来了,赶紧收藏

宝子们,在复习信息系统运行管理员中,是不是觉得有很多知识点含义比较相近,很多友友刚看的时候估计会像我一样迷迷糊糊的,作为一个软考老鸟,在这里给大家整理了信息系统运行管理员学习过程中易混淆的知识点,…