DeCap DECODING CLIP LATENTS FOR ZERO-SHOT CAPTIONING VIA TEXT-ONLY TRAINING

DeCap: DECODING CLIP LATENTS FOR ZERO-SHOT CAPTIONING VIA TEXT-ONLY TRAINING

论文:https://arxiv.org/abs/2303.03032

代码:https://github.com/dhg-wei/DeCap

OpenReview:https://openreview.net/forum?id=Lt8bMlhiwx2

TL; DR:拿 CLIP text encoder 用 text-only 数据训一个 text decoder,基于 CLIP 图文特征的对齐性质,拿 image embedding 送到 text decoder 中解码,实现 zeroshot captioning。为了缓解 CLIP text-image 联合特征空间中 modality gap 带来的影响,提出了基于映射的解码方法,把 image embedding 映射为 text embedding 支撑集的加权和。captioning 的结果倒是不是很在意,真要做captioning也不至于绕这么大个圈子,主要想看一下关于 CLIP text-image 联合特征空间中 modality gap 的最新研究成果。 understanding modality gap in CLIP models through zero-shot captioning ^^

方法

在这里插入图片描述

拿 CLIP 的 text encoder 和 text-only 的数据去训一个 text decoder,推理时拿 CLIP 的 image encoder 提的图像 embedding 作为输入,实现 zeroshot 的 captioning。为了缓解 CLIP text-image 特征空间中 modality gap 的问题,提出了一种基于映射的方法,维护一个 text embedding 的支撑集,将 image embedding 映射为文本支撑集特征的加权和。大幅度优于直接拿 image embedding 进行生成。

训练 text decoder

只需要文本语料库即可,是一种 text-only + self-supervised 的训练方式。这样的 text decoder 训练方式有两个好处:

  1. 可以自由控制生成文本的风格,因为就是输入语料的风格
  2. 只需要 text 数据,由于是 clip text encoder 的 embedding,对齐了 image embedding,方便后面接受图像输入,做 zeroshot 的 caption

解码方法

CLIP text-image 联合特征空间中虽然说是对齐了图文特征,但是存在明显的 modality gap ref。估计直接用 image embedding 去在 text embedding 上训练的 text decoder 上进行解码效果不会好。

这里作者提出了 PD(Projection-based Decoding)。先找一个语料库,用 CLIP text encoder 提取 text embedding,作为 support memory。做 captioning 时,提取到 image embedding 之后,把 image embedding 映射为 support memory 中 text embedding 的加权和。其中权重就是 image embedding 和各个 text embedding 的余弦相似度,乘一个温度系数之后 softmax 归一化。

在这里插入图片描述

作者还找了几个其他的 decoding 的 baseline 作为对比:

  1. CLPRe:直接检索各 text embedding 和 image embedding 最近的那个文本
  2. Visual Decoding(VD):直接拿 image embedding,用 text decoder 解码
  3. Nearest Neighbor Decoding(NND):在 support memory 中,直接找和 image embedding 相似度最大的一个 text embedding,用 text decoder 解码

实验结果

定量结果

zero-shot captioning 的结果如下。我们主要看下各 decoding 方式的对比。PD 的结果当然是最好的,NND 相当于是 PD 的 argmax hard 版本,比 PD 低不少,但也还行。CLIPRe 按说应该和 NND 差不多,但是没有用到 decoder,稍差一些。VD 也用了 decoder,却是最差的,遥遥落后,也就是说 text/image embedding 并不怎么 align。说明 CLIP 中的 modality 确实是不可忽视的,直接拿 image embedding 用 text-only 数据训的 text decoder 作解码,是完全不可行的。

在这里插入图片描述

可视化

文章附录的最后贴了两个可视化结果,都是 t-SNE 可视化。

第一个是对 10k 个 COCO 数据集中的文本,使用 CLIP text encoder 提取 text embedding,然后 t-SNE 降到二维,进行可视化。可以看到,COCO caption 中的文本确实按照类别聚集在一起的。不过我没看懂这个实验和文章主题有啥关系

在这里插入图片描述

第二个可视化还是有点意思的。取 500 个图文对,提取 image embedding 和 text embedding 进行降维可视化。图 (a)(b) 可见,image/text embedding 确实是分得很开的,这就是 modality gap 现象,和文章里的结果一致。再看图 © 发现 PD 的解码方式确实给力,经过映射的的 projected embedding 能和 text embedding 分布在一起了。再看图 (d),确实 projected embedding 和人类标注对应 5 个 text 的 embedding 很接近。CLIPRe 的结果也很接近,但是 PD 比 CLIPRe 更位于 5 个标注的中心。但是文章说能很好地保持视觉信息,这个从可视化中没怎么看出来。

在这里插入图片描述

总结

文章提出的 Projection Decoding 的方式来弥合 CLIP text/image embedding 之间的 modality gap 还是很有意思的。可能也能做图像的生成?现在 SD 都是拿 CLIP text encoder 来做文本引导,这篇看下来直接拿 image embedding 做应该是不行了,但可能拿 PD 做个映射,也能有结果?

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

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

相关文章

AIGC(生成式AI)试用 15 -- 小结

断断续续的尝试在实际的工作使用中理解和测试AIGC,运用会越来越多、越来越广范,但也是时候做个小结了。 没有太用热火的ChatGPT,只是拿了日常最容易用到的CSDN创作助手(每周写文章总是看到)和文心一言(…

多层记忆增强外观-运动对齐框架用于视频异常检测 论文阅读

MULTI-LEVEL MEMORY-AUGMENTED APPEARANCE-MOTION CORRESPONDENCE FRAMEWORK FOR VIDEO ANOMALY DETECTION 论文阅读 摘要1.介绍2.方法2.1外观和运动对其建模2.2.记忆引导抑制模块2.3. Training Loss2.4. Anomaly Detection 3.实验与结果4.结论 论文标题:MULTI-LEVE…

springboot整合vue,将vue项目整合到springboot项目中

将vue项目打包后&#xff0c;与springboot项目整合。 第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-t…

虚拟机下Ubuntu上网设置

文章目录 一、虚拟机上网的两种方式1.1 NAT模式&#xff08;Network Address Translation&#xff09;1.2 桥接模式&#xff08;Bridge Mode&#xff09;1.3 简介 二、实际配置2.1 NAT模式配置2.2 桥接模式配置 之前跟着博客配了好几个也没用&#xff0c;后来自己慢慢模式实践测…

MySQL数据库 DML

目录 DML概述 添加数据 修改数据 删除数据 DML概述 DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增、删、改操作。 添加数据(工NSERT)修改数据(UPDATE)删除数据(DELETE) 添加数据 (1)给指定字段添加数据 INSERT …

【FPGA/verilog -入门学习9】verilog基于查找表的8位格雷码转换

本文参考&#xff1a;FPGA杂记5——格雷码转换设计-CSDN博客 1&#xff0c;什么是查表法&#xff0c;做什么用&#xff0c;有什么好处 查找表&#xff08;Look-Up-Table&#xff09; 查找表&#xff0c;简单说&#xff0c;就是一个预先存储好结果的数据表 通过访问这张预先存储…

【数据分享】2019-2023年我国区县逐年新房房价数据(Excel/Shp格式)

房价是一个区域发展程度的重要体现&#xff0c;一个区域的房价越高通常代表这个区域越发达&#xff0c;对于人口的吸引力越大&#xff01;因此&#xff0c;房价数据是我们在各项城市研究中都非常常用的数据&#xff01;之前我们分享了2019—2023年我国区县逐月的新房房价数据&a…

解决“bat中文路径乱码“问题

今天&#xff0c;在使用.bat脚本&#xff0c;将hello.png从"D:\mypic\备份"目录&#xff0c;拷贝到"D:\mypic\备份"时&#xff1b;发现中文乱码,弹出如下对话框: 图(1) bat中文路径乱码 原来的命令是&#xff1a; copy D:\mypic\one\hello.png D:\mypic\备…

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统

【LangChain学习之旅】—&#xff08;3&#xff09; LangChain快速构建本地知识库的智能问答系统 项目及实现框架开发框架核心实现机制数据准备及加载加载文本文本的分割向量数据库存储文本的“嵌入”概念向量数据库概念 相关信息获取RetrievalQA生成回答并展示示例小结 Refere…

四. 基于环视Camera的BEV感知算法-BEVDet4D

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value

问题描述 使用Springcloudalibaba的nacos作为配置中心&#xff0c;服务启动时报错&#xff1a; java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is …

【动态规划精选题目】2、路径问题模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解路径问题模型中的6道经典题&#xff0c;会在讲解题目同时给出AC代码 目录 1、不同路径 2、不同路径2 3、珠宝的最大价值 4、下降路径最小和 5、最小路径和 6、地下城游戏 1、不同路径 class Solution { publi…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Pycharm 环境Android环境 相关其它博客工程源代码下载其它资料下载 前言 本项目采用VGG-16网络模型&#xff0c;使用Kaggle开源数据集&#xff0c;旨在提取图片中的用户特征&#xff0c;最终在移…

数据分析-14-基于Python的信用评分卡数据分析(包含代码数据)

文章目录 0. 数据代码下载1. 分析思路2. 理解数据3. 数据清洗3.1 选择子集3.2 列名重命名3.3 缺失数据处理3.4 异常值处理 4. 建立模型4.1 借款逾期超过90天的人数&#xff0c;即借款客户的整体质量情况&#xff1f;4.2 借款人月收入分布情况及月收入对违约客户数量的影响&…

低代码在制造业的应用前景

引言 数字化转型已经成为制造业的必然趋势&#xff0c;为了应对市场的快速变化、提高效率、降低成本&#xff0c;制造业企业不得不追求更智能、更敏捷的生产方式。在这一转型过程中&#xff0c;低代码技术崭露头角&#xff0c;成为了一种强大的工具&#xff0c;有望加速制造业…

PyCharm community 安装教程

目录 链接cudatoolkit 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/other.html 双击打开 安装路径&#xff0c;可自行更换到D盘 不导入设置 链接cudatoolkit

设计模式(2)--对象创建(5)--单件

1. 意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2. 一种角色 单件(Singleton) 3. 优点 3.1 对唯一实例的受控访问 3.2 缩小名空间(对全局变量的改进) 3.3 允许对操作和表示精化(可以有子类) 3.4 允许可变数目的实例 3.5 比类操作更灵活 4. 缺点…

【C语言】cache和程序访问的局部性对程序性能的影响

文章目录 1&#xff0e;源程序比较其性能影响2&#xff0e;内存分配&#xff08;1&#xff09;静态存储区&#xff08;static&#xff09;&#xff1a;&#xff08;2&#xff09;栈区&#xff08;stack&#xff09;&#xff1a;&#xff08;3&#xff09;堆区&#xff08;heap&…

msvcp140.dll丢失怎样修复?全面分析msvcp140.dll的修复方法

在执行特定程序时&#xff0c;有可能遭遇msvcp140.dll文件遗失的困扰&#xff0c;此时该如何处理呢&#xff1f;此次将为您讲述面临此类问题的有效解决方案&#xff0c;涉及到多种修复方法&#xff0c;其中包括利用DLL修复工具进行操作。您可依据个人需求选择相应的修复方式&am…

Linux:时间显示(函数介绍)

文章目录 1、sleep&#xff1a;延迟函数2、time/localtime3、示例&#xff1a;sleep time localtime4、Linux时间调整 1、sleep&#xff1a;延迟函数 函数原型&#xff1a;unsigned int sleep(unsigned int seconds); 功 能&#xff1a;延时 参 数&#xff1a;seconds:秒&am…