三重对比学习

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

相关文章

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺