百科问答小站 logo
百科问答小站 font logo



多模态训练,怎么解决不同模态之间差异的问题? 第1页

  

user avatar   wei-si-qi-20-24 网友的相关建议: 
      

今天给大家分享一篇商汤科技关于多模态预训练的工作“Supervision exists everywhere: A data efficient contrastive language-image pre-training paradigm”。

motivation:

现如今大规模对比学习语言-图片预训练已经在零样本学习以及下游任务上取得很好的效果(如CLIP)。但是例如CLIP这样的大模型需要大量的训练数据进行训练,CLIP需要400M数据进行预训练,为了提高训练的效率,可以让模型在较少的训练数据下依然取得不错的效果,本文提出一种高效的多模态预训练模型DeCLIP。不同于CLIP仅仅使用图片文本对匹配作为自监督信号,DeCLIP提出了更多种自监督信号:1,单一模态的自监督学习;2,跨模态的多视角监督学习;3,最近邻监督信号。

引言:

近年来,预训练技术在CV领域任务以及NLP领域任务都取得了很好的效果。最初的预训练技术应用到CV领域,利用带标注的ImageNet数据集预训练一个卷积神经网络,之后利用该卷积神经网络执行下游任务。但是这类方法的缺点是需要对预训练数据集进行标注。NLP领域的预训练技术主要是使用Mask语言模型(BERT)或者语言模型(GPT)作为自监督任务。在多模态领域,学者尝试使用语言监督对图片信息进行学习,比如CLIP和ALIGN模型,都需要大量的图片-文本对进行训练,预训练任务为:将匹配的图片文本对之间的距离拉近,将未匹配的图片-文本对之间的距离拉远。以上的方法需要大量的数据以及计算资源,这对于一些企业以及公司是不友好的。

本文提出了一种数据利用效率更高的多模态预训练模型DeCLIP。提出了更多的自监督任务,从而实现对数据的高效利用。

模型方法:

首先回顾一下CLIP:

CLIP直接学习源图片所对应的文本信息,使用两个encoder分别编码文本信息和图片信息。图片encoder一般使用CNN或者VIT,文本encoder一般使用transformer。之后将文本和视觉嵌入映射到相同空间中,之后使用对比学习的思想,将匹配的图片-文本embedding的距离拉近,将不匹配的embedding拉远。假设batchsize为 ,共计 个图片-文本对 ,损失函数infoNCE公式如下:

接下来介绍DeCLIP的详细内容:

1,模态内的自监督任务。使用SimSiam作为视觉模态的自监督任务。使用掩码语言模型MLM作为文本模态的自监督任务。

视觉模态的SimSiam:

首先将一张图片经过数据增广得到两个view ,将两个数据增广后的结果经过相同的encoder得到两个嵌入向量 ,之后将其中一个嵌入向量 再经过一个预测层得到嵌入向量 ,让预测层得到的嵌入 和 无限接近。

文本模态的MLM:

本文使用掩码语言模型作为文本模态中的自监督任务,即随机MASK掉文本中15%的token,利用前后token预测被mask掉的token。

2,跨模态multi-view监督学习。原始的CLIP直接使用原始的文本和语言嵌入计算自监督InfoNCE损失。DeCLIP中使用的是数据增强后的文本和图片,进行四次InfoNCE,相比CLIP多了三倍的量。

对于原始文本对 ,原始图片经过数据增强得到 ,原始文本经过数据增强得到 。经过书增强的文本-图片对,可以彼此计算InfoNCE 损失, , , , 计算四次InfoNCE loss,相较于CLIP多计算三次。

3,最近邻监督。

因为相同的图片可能会有类似的语言描述,因此作者选择语言描述相似的图文对,进行对比学习。

最终将三个loss加权求和,得到最终的loss。

实验:

数据集:

DeCLIP数据集包括两部分开源数据集以及网络下载数据集,DeCLIP数据规模相较于CLIP小很多。

Zero-shot准确率:

下游任务表现:

消融实验:

数据规模实验:




  

相关话题

  国内做NLP业务的香侬科技值得去吗? 
  如何评价清华大学发布的自研深度学习框架-计图(Jittor)? 
  如何比较Keras, TensorLayer, TFLearn ? 
  为何感觉“知识蒸馏”这几年没有什么成果? 
  请解释下variational inference? 
  如何评价微软亚洲研究院提出的LightRNN? 
  nlp有哪些值得完整实现一遍的算法? 
  你遇见过什么当时很有潜力但是最终没有流行的深度学习算法? 
  有没有可能运用人工神经网络将一种编程语言的代码翻译成任意的另一种编程语言,而不经过人工设计的编译过程? 
  神经网络的损失函数为什么是非凸的? 

前一个讨论
为什么 BERT 的 intermediate_size 这么大?
下一个讨论
怎么计算某一年的干支所表示的是一甲子中的第几年?





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利