【文献笔记】ALBEF

LBEF:Align before Fuse
任务:阅读论文 理解模型 明白专有名词 调试代码
创新点
一个VLP的改进框架 动量蒸馏Momentum distillation
现有方法是用transformer—based multimodel encoder
但是对齐是难题
所以在融合之前,引入constrasive loss to align
优点 不需要bounding box annotations 边界框标注
也不需要高分辨率的图片

从动量模型产生的伪目标中学习的自训练方法
动量蒸馏是一种模拟人类学习新任务的方法,它利用已经学到的知识(即“动量”)来帮助学习新任务。
在动量蒸馏中,教师模型会先训练一个较大的预训练模型(学生模型),该模型会从大量的无标签文本中学习语言表示。然后,教师模型会使用标签数据来微调预训练模型,以适应特定任务。

在蒸馏过程中,教师模型会使用已经学到的知识(即动量)来指导学生模型的训练。具体来说,教师模型会生成一系列的问题和答案,这些问题和答案将作为学生模型的指导。学生模型会尝试回答这些问题,并生成与教师模型生成的答案相似的答案。通过这种方式,学生模型可以利用教师模型的动量来加速学习过程,并提高推理能力。

动量蒸馏的主要优点是可以利用教师模型的先验知识来指导学生模型的训练,从而提高模型的泛化能力和推理能力。此外,动量蒸馏还可以减轻计算资源的需求,因为学生模型的参数数量通常比教师模型少得多。

https://zhuanlan.zhihu.com/p/442457531
https://blog.csdn.net/qq_38276972/article/details/117791237
下游视觉
https://blog.csdn.net/jiangqixing0728/article/details/124348625
下游任务更多的是评估任务,相当于项目落地,需要去做具体任务来评价模型好坏。
图文单独编码,引入中间图文对比ITC损失
12层图像编码器 预训练的权重初始化 VIT-B/16 训练结束时结果比较好的一组权重值
IMageNet 数据集
文本Bertbase

图文对齐之后再融合,利用动量蒸馏进行表征学习
KL散度(Kullback-Leibler Divergence)是一种度量两个概率分布之间差异的方法。它可以用来比较两个概率分布的相似性或差异性,也可以用来评估一个概率分布对另一个概率分布的逼近程度

摘要

一个Vision-and-Language Pre-training (VLP)的改进框架,是一种大规模视觉和语言表征学习的方法,大多数是基于Transformer的多模态编码器去联合视觉与文本模型,因为它们是不对齐的,所以交互具有挑战性。在本文中,我们引入对比损失,通过跨模态注意力对齐融合前的图像和文本表示( ALBEF )。为了改进从含噪网络数据中的学习,我们提出了动量蒸馏(Momentum distillation),这是一种从动量模型产生的伪目标中学习的自训练方法。

前言

VLP 从大规模图像—文本对中学习多模态表示,大多数依赖于预训练的目标检测器来提取基于区域的图像特征,以及利用多模态编码器将图片特征和单词标记融合,这个多模态编码器用来解决需要对图像和文本进行联合理解的任务 但是有缺点1、嵌入在各自的空间中,交互有难度2、标注成本和计算成本高,对图像分辨率有要求3、噪声过多,可能会过拟合噪声文本从而降低模型的泛化性能。

所以提出ALBEF,我们首先使用无检测器的图像编码器和文本编码器对图像和文本进行独立编码。然后我们使用多模态编码器通过跨模态注意力将图像特征与文本特征进行融合。我们在单模态编码器的表示上引入一个中间图像-文本对比( ITC )损失,1、它将图像特征和文本特征对齐,使得多模态编码器更容易进行跨模态学习;2、它改进了单模态编码器,以更好地理解图像和文本的语义;3、它学习一个共同的低维空间来嵌入图像和文本,这使得图文匹配目标可以通过我们的对比硬负挖掘找到更多的信息样本。(our contrastive hard negative mining)就是对于图片的 Embedding 和文本的 Embedding 引入一个对比学习的损失函数 (image-text contrastive loss),在融合之前提前把图片和文本的表征对齐。这样做就使得后续的多模态 Transformer 更容易执行跨模态学习。

为了改进噪声监督下的学习,我们提出了动量蒸馏( Momentum Distillation,MoD ),能够利用更大的未处理的Web数据集。在训练过程中,其参数就是之前模型参数的移动平均,并使用动量模型生成伪目标作为额外的监督。动量蒸馏 (MoD) 的方法使模型能够利用更大的带噪声数据集,当数据中有噪声导致监督信号不合理时,动量模型就可以给出额外的监督信号,改善模型的预训练。MoD 不仅适用于预训练数据集有噪声的情况,还适用于预训练数据集很干净的情况。

我们证明了ITC和MLM最大化了一个图像-文本对的不同视图之间的互信息的下界,其中视图是通过从每个对中取部分信息生成的。从这个角度来看,我们的动量蒸馏可以理解为用语义相似的样本生成新的观点。因此,ALBEF学习对语义保持变换不变的视觉-语言表示。ALBEF在各种下游的有效性

模型框架

请添加图片描述

它由图像编码器、文本编码器和多模态编码器组成。在融合之前,我们提出了一个图像-文本对比损失来对齐图像-文本对的单模态表示。应用图文匹配损失(使用通过对比相似性挖掘的批内硬否定)和掩码语言建模损失来学习图像和文本之间的多模态交互。为了改善带噪数据的学习,我们在训练时使用动量模型(基础模型的移动平均版本)作为额外的监督生成伪目标。

图像编码器: 12层的视觉转换器ViT - B / 16作为图像编码器,权重初始化来自在ImageNet - 1k上预训练。输入图像I编码成一个嵌入序列:{ vcls,v1,…,vN },其中vcls是class token人为增加的向量的嵌入。

文本编码器和多模态编码器: 都使用了6层Transformer,文本编码器使用BERTbase 模型的前6层进行初始化,多模态编码器使用BERTbase的后6层进行初始化。输入文本T转化为嵌入序列{ wcls,w1,…,wN },并反馈给多模态编码器。在多模态编码器的每一层通过交叉注意力将图像特征与文本特征进行融合。

预训练目标

ALBEF 预训练目标函数有三个:1、用于图文融合之前对齐的损失函数 Image-Text Contrastive Learning (ITC),2、多模态预训练标配的掩码语言建模 masked language modeling (MLM) ,3、用于多模态预训练的图文匹配损失函数 image-text matching (ITM)。
单模态编码器上的图文对比学习( ITC ),多模态编码器上的掩码语言建模( MLM )和图文匹配( ITM )。我们通过在线对比硬否定挖掘改进ITM。hard negative mining

ITC
对比损失,利用image encoder、text encoder输出的特征做对比,但是这部分输出只提取cls token来计算相似度,并且会将这个768-d的token映射到256-d后,再计算image与text的相似度,公式如下图所示,其中的g是768→256的线性投影层
在这里插入图片描述

MLM
掩码语言重建任务的建模损失,这部分主要是用图像和上下文的文本信息进行掩码重建,同时利用图像和上下文文本来预测掩码语言词。MLM最小化一个交叉熵损失
在这里插入图片描述
在掩码语言建模中,输入的句子或文本中的某些单词会被替换为特殊的标记(例如[MASK]),然后模型需要预测应该插入的正确单词来代替这些被掩码的单词。这种技术可以帮助模型学习语言的统计结构,例如常见的单词序列和单词使用模式。
ITM
使用multimodal encoder的cls token作为多模态的联合表示,通过一个线性投影层预测图文对是否匹配。我们使用多模态编码器的输出嵌入[ CLS ]token作为图像-文本对的联合表示,并附加一个全连接( FC )层和softmax来预测二分类概率pi。
区别:ITC主要是利用单个模态的输出进行对比学习,而ITM则需要利用跨模态中的信息进行匹配,虽然说二者都是使用代表全局信息的cls token,但是token所包含的信息是有不同的侧重点的。所以在ITC中,要计算图像文本是不是相关,还需要将二者点乘后得到联合信息投影,而ITM则直接将最后得到的CLS token进行投影。
在这里插入图片描述
动量蒸馏
正样本对通常是弱相关的:文本可能包含与图像无关的单词,或者图像可能包含文本中没有描述的实体。对于ITC学习而言,图像的不匹配文本也可能与图像内容相匹配。对于MLM,可能存在与描述图像同样好(或更好)的注释不同的其他词语。然而,ITC和MLM的one hot标签惩罚了所有的负标签预测,而不管它们的正确性如何。

解决办法,动量模型是一个不断演化的教师模型,它由单模态和多模态编码器的指数移动平均版本 (Exponential-Moving-Average)组成。在训练过程中,我们训练基础模型,使其预测结果与动量模型的预测结果相匹配。这样训练时的目标就不仅仅是 GT 标签,还有这个动量教师模型了。而这个动量教师模型的参数又随着 ALBEF 模型的训练而缓慢地更新。
具体来说,对于ITC,我们首先使用特征计算图像-文本相似度从动量模型生成的伪目标中学习。
在这里插入图片描述

我们还将MoD应用到下游任务中。每个任务的最终损失是原始任务损失和模型预测与伪目标之间KL散度的加权组合。为了简单起见,我们将所有预训练和下游任务的权重α = 0.4。

实现细节

我们的模型由一个具有123.7 M参数的BERTbase和一个具有85.8 M参数的ViT - B / 16组成。我们在8块NVIDIA A100 GPU上使用512的批处理大小预训练了30轮次的模型。采用Adam W优化器,权重衰减为0.02。在最初的1000次迭代中,学习率被预热到1e - 4,然后按照余弦规律衰减到1e - 5。在预训练过程中,我们使用分辨率为256 × 256的随机图像作为输入,并应用RandAugment4 。在微调过程中,我们将图像分辨率提高到384 × 384,并对图像块的位置编码进行插值。更新动量模型的动量参数设置为0.995,用于图文对比学习的队列大小设置为65,536。我们在第一阶段将蒸馏权重α从0线性增加到0.4。

1.5 ALBEF 预训练数据集和配置

使用下面4个数据集,图片数加起来大概是 4M。

Conceptual Captions SBU Captions COCO Visual Genome 其实作者为了证明 ALBEF
可以使用更大规模的 Web 数据进行扩展,最终还引入了噪声更大的 12M 数据集,最终将图像总数增加到 14.1M (有的数据集失效了)。

ALBEF 的模型部分包括:BERT-Base,为 123.7M 参数,ViT-B/16,为 85.8M 参数。

实验设置很亲民:使用8张 A100,以 512 的 Batch Size 训练 30 Epochs。

优化器:AdamW,weight decay:0.02,图像数据增强使用 RandAugment,预训练阶段的图像分辨率是
256×256,在微调过程中,将图像分辨率提高到 384×384,momentum 参数为0.995,队列的大小 为65536。

1.6 下游多模态任务

ALBEF 一共在5种下游多模态任务上验证。

图文检索任务 (Image-Text Retrieval) 包括两个子任务:图像到文本检索 (TR) 和文本到图像检索 (IR)。作者在Flickr30K 和 COCO 这两个数据集上做了验证。作者使用每个数据集的训练样本对预训练模型进行微调,对于 Flickr30K上的零样本检索,作者使用在 COCO 上微调的模型进行评估。在微调阶段使用 ITC 和 ITM 损失函数。
在推理阶段,首先计算所有图像-文本对的特征相似度得分情景,然后取前k个候选并计算它们的 ITM 分数Sitm进行排名。

视觉蕴含任务 (Visual Entailment, SNLI-VE)是一个细粒度的视觉推理任务,用于预测图像和文本之间的关系是蕴涵、中性或矛盾的。作者遵循 UNITER 的做法,并将 VE视为三分类问题,并在多模态编码器的 [CLS] token 的输出结果加上分类头得到每个类的概率。

视觉问答任务 (Visual Question Answering, VQA) 要求模型预测给定图像和问题的答案。与现有的将 VQA制定为多答案分类问题的方法不同,ALBEF 将 VQA 视为答案生成问题。具体来说,作者使用6层的 Transformer Decoder来生成答案。如下图3所示,Decoder 通过交叉注意力机制接收多模态的输入,并使用 [CLS] token作为解码器的初始输入标记。序列结束标记 ([SEP])附加到解码器输出的末尾,表明生成完成。答案解码器使用来自多模态编码器的预训练权重进行初始化,并使用条件语言建模损失进行微调。为了与现有方法进行公平比较,作者强制约束解码器在推理过程中仅从3,192个候选答案中生成。
请添加图片描述
自然语言视觉推理任务 (Natural Language for Visual Reasoning, NLVR2)要求模型预测文本是否描述了一对图像。作者扩展了多模态编码器,以实现对两幅图像的推理,如下图4所示。 多模态编码器的每一层都被复制为两个连续的变压器块,每个块包含一个 Self-attention 层、一个 Cross-attention层和一个前馈层。每层中的两个块使用相同的预训练权重初始化,两个 Cross-attention 层的 Key 和 Value共享相同的线性投影权重。在训练期间,这两个多模态 Block 接收两组图像输入,最终在多模态编码器的 [CLS] token 上附加 MLP分类器进行预测。

对于 NLVR 任务,作者还设计了一个额外的预训练步骤来准备新的多模态编码器来编码图像对
请添加图片描述
视觉定位 (Visual Grounding) 任务旨在定位图像中与特定文本描述相对应的区域。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值