三重对比学习

2024-01-03 03:59
文章标签 学习 对比 三重

本文主要是介绍三重对比学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要了解三重对比学习,首先要了解一些预备知识

对比学习:对比式学习着重于学习同类实例之间的共同特征,区分非同类实例之间的不同之处。

与生成式学习(与对比学习一样属于自监督的一种)比较,对比式学习不需要关注实例上繁琐的细节,只需要在抽象语义级别的特征空间上学会对数据的区分即可,因此模型以及其优化变得更加简单,且泛化能力更强。

MI(mutual information Maximization):互信息(MI)的目的是为了在衡量随机变量之间的关系或确定共享信息的数量

动量编码器:采用动量编码器来提高当前和早期keys之间的表示一致性。

论文内容:

提出背景:

视觉语言表示学习很大程度上受益与通过对比损失的图像文本对齐,而这种对齐策略的成功归因于他能够最大化图像与文本之间的MI(mutual information),但是简单的地执行跨模态对齐会忽略每个模态内的数据潜力

提出的方法:

三重对比学习(TCL)的视觉语言预训练,利用跨模态和模态内的自监督,除了CMA(cross-modal-alignment),TCL还引入了一个模态内对比学习,并且,为了利用来自图像和文本输入的局部信息和结构信息,TCL还进一步最大化了图像/文本的局部区域与全局摘要之间的平衡MI。

对于一些多模态任务,自我监督的视觉语言与训练是必不可少的,而这些任务很大程度上依赖联合的多模态嵌入,而这些都需要建模视觉与语言特征之间的交互,而对于这个任务,最近提出的一些方法中最为关键的是将融合编码器应用到视觉与语言特征的连接来学习联合表示,但是这方法虽然简单有效却存在视觉和语言特征位于不同的嵌入空间的问题,而针对这问题最近提出的方法是将学习过程分成两个阶段,1)先使用对比损失(InfoNCE)也就是对齐跨模态特征,将匹配的图像文本对拉到一起,同时将非匹配对的嵌入分开 2)将对齐的图像-文本表示应用到融合编码器中来学习。而这种方法忽略了I或者T都不能完全表示对方,如果简单的执行跨模态对齐会导致文本只关注成对的图像中的突出对象,而忽略其他的详细的细粒度的信息。但是随着transformer的流行,通过transformer体系结构来提取视觉和语言特征。但是这存在一些问题:它鼓励编码器会学习某些不相关的/mass的图像补丁或者文本本标记的信息

文章通过引入TCL,通过利用跨模态和模态内的自监督学习生成令人满意的表示,从而使得融合编码器可以更容易学习多模态交互

模型组成:包含一个视觉编码器(学习视觉特征)和一个文本编码器(学习语言特征),以及一个融合编码器(学习多模态交互),这些编码器均采用transformer体系结构,并且对于每一个编码器都保持一个成对的动量编码器,利用单模态编码器g(·)和h(·)从给定的输入中学习鲁棒的视觉和语言特征,然后对学习到的特征应用对齐模块,在融合前对跨模态和模态模态内表示进行对齐。

TCL三个对比模块:

CMA(跨模态对齐):最大化匹配的图像和文本之间的全局MI,将匹配的文本-图像对的嵌入拉到一起,同时将不匹配的图像文本对的嵌入分开,由于连续和高维变量的MI直接最大化是难以处理的,将最大化MI改为最小化代表MI下界的InfoNCE损失。形式上,图像到文本的InfoNCE损失定义为:

IMC(模态内对齐):作为CMI的补充,IMC通过最大化其全局MI来最大化同一数据示例的不同增强视图(同一数据生成多个增强视图)之间的一致性,与CMA不同,IMC试图学习同一模态中正样本和负样本之间的语义差异。对视觉模态,在随机数据增强的视图(正样本)同I~(负样本)使用和CMA使用Lnce计算损失;对于文本模块,使用标准的dropout来做最小增强,对相同的正对用独立抽样的dropout掩码;总而言之,通过最小化一下式子来保证合理的模态内学习:

CMA和IMC被设计为在表示学习中发挥互补作用: i) CMA映射嵌入空间中匹配的图像-文本对,ii) IMC最大限度地提高同一数据实例的不同增强视图之间的一致性。将它们组合在一起可以提高学习表示的质量(图1 B),并可以进一步促进融合编码器中的联合多模态学习。

LMI(局部MI最大化):旨在补全全局MI最大化所引起的副作用,LMI可以学到所有local共享的表示,解决了部分local支配互信息。同时使得模型更好地捕捉细粒度的信息。通过最小化以下损失,来最大化全局和局部区域之间的平均MI:

 Image-Text Matching (ITM)图像文本匹配:为了融合视觉和语言表征,这里采用了在以往的VLP研究中广泛使用的ITM。给定一个图像-文本对,ITM预测它们是否匹配(正例子)(负例子),这可以看作是一个二值分类问题。ITM损失的定义为:

 Masked Language Modeling (MLM) 掩码语言模型:这里采用了BERT的mlm,预测被掩码文本的真实label,与BERT不同,这里的MLM的条件是T msk的周围文本标记和图像表示。The MLM loss is defined as:

 模型的总体训练目标是:

 论文模型框架:

图1. (A):框架的概述,它包括一个视觉编码器、一个文本编码器和一个融合编码器。每个编码器都有一个成对的动量编码器,由基于动量的移动平均数更新。对于图像输入,我们应用了两个独立的数据增强运算符(a和b),它们从同一个增强家族中采样。对齐模块包含三个对比目标(即CMA、IMC和LMI),分别用于跨模态和模态内表示学习(使融合编码器更容易学习联合多模态嵌入)。 (B): 同时利用跨模式和模式内监督的动机。原始图像(粉红色)被增强为两个不同的视图(绿色)。仅对于CMA,中间的图像只有一个正的文本示例(绿色),并将其他文本(红色)视为负的文本。它的嵌入(蓝色的圆形)将接近它的积极的文本例子。通过合并IMC,它有两个积极的例子(一个文本和一个图像)和两组消极的例子(一个来自文本,一个来自图像),并倾向于学习更合理的嵌入(蓝色方块)。[CLS],作为整个图像或文本的表示。

实验结果:

Flickr30K实体数据集测试了系统将标题中的短语与图像中的边界区域相联系的能力。任务是,给定句子的跨度,选择它们对应的边界区域。该数据集包括3万张图片和近25万个标注。

 NLVR2是一个关于自然语言和图像联合推理的数据集,重点是语义多样性、构成性和视觉推理挑战。其任务是确定一个自然语言的标题对于一对图像是否真实。该数据集由超过10万个与网络图片配对的英文句子的例子组成。

SNLI-VE是为视觉蕴涵(VE)任务提出的数据集,该任务在NeurIPS 2018 ViGIL研讨会的视觉基础语言学习的视觉蕴涵任务中进行了研究

这篇关于三重对比学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/564510

相关文章

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专