首页 > 其他分享 >LAMM(论文解读): Label Alignment for Multi-Modal Prompt Learning

LAMM(论文解读): Label Alignment for Multi-Modal Prompt Learning

时间:2024-07-06 11:26:32浏览次数:10  
标签:Multi Prompt CLIP 训练 LAMM Learning 图像 类别 文本

摘要

随着CLIP等预训练视觉-语言模型在视觉表征任务上的成功,将预训练模型迁移到下游任务是一种重要的范式。最近,受到NLP启发的提示微调范式在VL领域取得了巨大的进展。

之前的方法主要集中在为视觉和文本输入构建提示模板上,但是忽略了VL模型和下游任务之间在类标签表示上的差距。

为了解决这个问题,引入LAMM,可以通过端到端的训练来动态调整下游数据集的类别嵌入。为了实现更合适的标签分布,提出了一种分层损失,包含参数空间、特征空间和logits空间的对齐。

本文在11个下游视觉数据集上进行了实验,证明了本文方法在few-shot 情境下显著提高了多模态提示学习模型的性能,在16个样本上与最先进的方法相比,平均精度提高了2.31%。

与其他提示调整的方法相比,本文的方法在持续学习中也表现除不错的性能。并且本文的方法与现有的提示微调的方法是协同的,并且可以在它们的基础上提高性能。

Introduction

构建模型去理解真实世界中的多模态信息是人工智能的主要目标之一,同时视觉和文本时两个重要的模态。一种有效的方法就是在一个大规模的文本-图像数据集上进行预训练一个基础的VL模型,然后再迁移到下游任务的应用场景中去。通常的方法是使用两个独立的编码器分别对图像和文本进行编码,然后设计合适的损失函数进行训练。然而,在广泛训练的模型上进行微调是昂贵且复杂的,所以如何有效地将预训练的VL模型迁移到下游任务是一个有价值的问题。

提示学习为这个问题提供了解决方案,它根据人类的先验知识为下游任务提供相应的文本描述,可以有效的增强VL模型的zero-shot和few-shot的能力。提示学习的方法通过使用可训练模板和少量任务特定参数,利用梯度下降自动优化模板,从而代替了手工构建模板的过程。

具体来说,现有的多模态提示微调方法使用冻结CLIP模型,分别为文本和图像编码器设计了可训练的提示。这种方法保证了VL模型可以更好地迁移到下游任务中,而不需要对VL模型的参数进行任何修改。但是这种方法主要关注适用于所有类别的提示模板,忽略了每个类别的特征表示。

文本模板中的类标记对于将图像分入合适的类别是至关重要的。解释图1:骆驼和羊驼是两种非常相似的动物,在CLIP中,由于羊驼数据在预训练数据集中的过度表示,会存在将骆驼错误分类为羊驼的倾向。通过细化文本嵌入特征位置,CLIP就可以利用训练好的特征空间区分这两个物种。因此,在VL模型中为下游任务中的每一个类别确定一个最优的表示是至关重要的。

在NLP领域中,存在着软性表述器,使得模型能够预测文本模板中掩码部分的表示,从而自行表示原句的类别。与NLP不同,直接对VL模型的文本编码器进行图像类别预测是不可行的。尽管如此,我们可以在下游数据集中优化各种类别的类别嵌入,来增加每张图像与其对应类别描述之间的相似性。

两张图片都是骆驼llama。

在上半部分中,CLIP尝试将图片进行分类,并且此时特征空间中展示出该图片与’llama’和’alpaca’两个类别的相似性。但是由于该图片的特征并未被明确地标记为‘llama’,并且’alpaca’在与预训练数据集中存在数据过度表示,因此CLIP会猜疑地选择具有偏好的’alpaca’。

在下半部分中,图片已经被训练标记为‘llama’,此时,CLIP已经可以准确识别到图片为’llama’,因为此时图片的特征已经被映射到了特征空间中的’llama’中。

因此,本文引入了一种标签对齐技术,LAMM,通过梯度优化自动搜索最优嵌入。这是类别标签可训练的概念首次在预训练的VL模型中被提出。同时,为了防止整个语义提示模板的语义特征偏离太远,本文在训练阶段引入了层级损失。这种层级损失有利于参数、特征和logits空间之间类别表示的对齐。通过这些操作,可以在LAMM种保留CLIP模型的泛化能力,使得LAMM在保留原始类别描述语义的同时,可以更好的区分下游任务中的不同类别。此外,考虑到LAMM仅对下游数据集中的标签嵌入进行微调,因此在连续学习过程中不会遇到传统方法中通常遇到的遗忘问题。

本文在11个数据集上进行了实验,涵盖了一系列下游识别场景。在模型方面,测试了目前在多模态提示学习中表现最好的vanilla CLIP、CoOp 和MaPLe 。大量的实验证明了所提出的方法在few-shot学习中的有效性,说明了其在领域泛化和连续学习方面的优点。此外,本文方法与现有的多模态提示技术兼容,在下游数据集上放大了它们的功效,确保了一致性增强。

Methodology:

1.Preliminaries of CLIP

首先CLIP是一个视觉语言预训练模型,其中包含视觉编码器φ和文本编码器ψ。这两个编码器分别提取视觉和文本的信息,将其映射到公共的特征空间Rd中。

图像部分:给定图像x,图像编码器提取图像特征Ix = φ(x)。

文本部分:对于每个下游任务,都会包含k个类别,每个类别都会填写一个prompt,也就是a photo of <class>。然后文本编码器会对每一个文本进行编码,得到文本特征。

训练过程中,CLIP最大化图像与相应类别描述之间的余弦相似度,最小化不匹配的相似度。最大化n个,最小化n2-n个。

其中zero-shot推理中,第i个类别的预测概率计算为:

2.Label Alignment

尽管CLIP有很强的zero-shot能力,但是为下游任务提供对应的文本描述可以有效的增强CLIP的Zero-shot和few-Shot能力。原来对文本模板的提示微调工作主要集中在“a photo of”的训练上,也就是都集中在提示句子上(CLIP中的80多种),但是忽视了<class>的优化。

为了有效地将下游任务中的类标签与预训练模型对齐,因此本文提出使用可训练向量代替类表示,它通过端到端训练自动优化标签嵌入。CLIP上的LAMM只对下游任务的类嵌入表示进行微调。

在训练过程中,只更新下游数据集的类别向量<Mi>,这样会减少图像表示与对应类别表示之间的差距。

因此第i类的预测概率也发生了改变。

原来:

现在:

 

在训练过程中,只更新下游数据集的类别向量<Mi>,这样会减少图像表示与对应类别表示之间的差距。

3.Methodology:Hierarchical Loss

一个对齐良好的特征空间是CLIP中zero-shot能力的关键,同时也有利于下游任务的学习。

由于LAMM并没有对CLIP模型的参数进行任何的修改或者增添,因此对齐后的特征空间中图像表示保持不变,而每个类别的可训练嵌入改变了特征空间中的文本表示。

尽管整个训练过程都是在few-shot设置下进行的,但单个文本表示对应于下游数据集中给定类别的多个图像。这种情况可能导致可训练的类别嵌入过度地适应训练集中有限数量的图像,从而在面对新的类别时表现不佳。

因此,本文提出了一种分层损失来保证参数空间、特征空间和对数空间的泛化能力。合并损失函数的原理在于确保LAMM与保持Zero-shot能力的CLIP保持一致。

1.参数空间:

为了降低模型过拟合的风险,许多机器学习技术采用参数正则化来增强对不可见样本的泛化能力。

在LAMM中,θ表示可训练的标签嵌入,后者表示原始的标签嵌入。虽然参数正则化可以解决过拟合的问题,但是过度的正则化会阻碍模型充分捕获训练数据的特征。所以将Lwc的参数设置为与训练数目成反比,也就是更少训练数目将伴随着参数空间内更加严格的正则化过程。

2.特征空间:

除了参数空间以外,训练类别的文本特征和图像特征保持一致也至关重要。在训练过程中,训练类别的文本特征逐渐地收敛到训练图像中的特征。无论如何,如果few-shot中某个特定类别的训练图像的表示和整个图像数据集中表示不一致,就可能导致标签语义过拟合到特定样本。例如图2中llama标签的嵌入。标签嵌入可能会过拟合背景中草的信息,即使骆驼并不总是和草关联。

为了减轻每个类别文本特征的过拟合,使用本文特征对齐损失来限制特本特征的优化区域。采用余弦相似性损失进行对齐。yi为原始提示模板作为优化区域的中心。

3.logits空间:

CLIP强大的泛化能力对多模态提示方法在少样本情况下的有效性起着至关重要的作用。虽然前面两种损失通过参数空间和特征空间的正则化增强了LAMM的泛化能力,但是与zero-shot的CLIP相比,希望最小化图像表示和不同文本表示之间的对数分布偏移。

因此,本文在分布对数空间中引入了知识蒸馏损失,它允许将泛化知识从CLIP转移到LAMM。

4.总损失:

Conclusion

与传统的few-shot学习方法相比,基于VL-PTMs的提示学习在下游任务中表现出很强的可迁移性。本文证明,除了提示模板学习之外,减少VL-PTMs与下游任务标签表征之间的差距也是一个重要的问题。本文对如何以即插即用的方法将下游任务中的标签表示对齐到VL-PTMs进行了全面的研究。LAMM证明了在few-shot场景中对先前多模态提示方法有明显的性能提升。通过简单地将LAMM融合到vanilla CLIP,可以取得比以前多模态提示方法更好的效果。LAMM在分布外场景中也表现出鲁棒性,以及在增量学习过程中的优越性。这些发现进一步证明了优化VL-PTMs到下游任务的巨大潜力,不仅限于图像识别,还包括图像分割、目标检测等视觉语义任务。

----------------------------把好意西,初学者先不解析实验啦,需要PPT可以私信哦-------------------------


标签:Multi,Prompt,CLIP,训练,LAMM,Learning,图像,类别,文本
From: https://blog.csdn.net/m0_54248968/article/details/140188143

相关文章

  • 解密Prompt系列33. LLM之图表理解任务-多模态篇
    上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下,图片和文字模态哪种表格模型理解的效果更好更好,再说下和表格相关的图表理解任务的微调方案。Prompt:表格模态哪家强使用prompt对比SOTA的文本模型和多模态模型,哪个在表格......
  • 解析Torch中多头注意力`MultiheadAttention`
    前沿:这部分内容是《AttentionIsAllYouNeed》出来之后就深入研究了这篇文章的模型结构,也是之后工作那一年进行实际落地的一小部分内容。最近再次使用它,顺带读了torch官方的实现,大家风范的实现,注意很多细节,值得我们学习,也顺带放在这,之后就不再了解这块内容了,过去式了。下......
  • 强化学习(Monte Carlo learning)-Today6
    MonteCarlolearning简称MC,是model-free算法,也就是不基于模型的算法,Today5发布的valueiterationandPolicyiterationalgorithm是model-based算法,是基于模型的算法,也就是说,没有模型的构建,需要数据的支撑,MC包括三个算法,分别是MCBasic、MCExploringStarts和这三个算法,......
  • 极限学习机(Extreme Learning Machine,ELM)及其Python和MATLAB实现
    极限学习机(ExtremeLearningMachine,ELM)是一种快速而有效的机器学习算法,最初由马洪亮等人于2006年提出。ELM是一种单隐层前馈神经网络,其背景源于对传统神经网络训练过程中反向传播算法的改进与优化。相比传统神经网络,ELM在网络训练速度上具有明显优势,同时在一些实际应用中取得......
  • MultipartFile resource [file] cannot be resolved to URL
    java.io.FileNotFoundException:MultipartFileresource[file]cannotberesolvedtoURLatorg.springframework.core.io.AbstractResource.getURL(AbstractResource.java:114)atorg.springframework.core.io.AbstractResource.getURI(AbstractResource.java:1......
  • 【YOLOv10改进 - 注意力机制】 MHSA:多头自注意力(Multi-Head Self-Attention)
    YOLOv10目标检测创新改进与实战案例专栏专栏链接:YOLOv10创新改进有效涨点介绍摘要我们介绍了BoTNet,这是一个概念简单但功能强大的骨干架构,将自注意力引入多个计算机视觉任务,包括图像分类、物体检测和实例分割。通过仅在ResNet的最后三个瓶颈块中用全局自注意力替换......
  • WPF Datagrid ContextMenu MenuItem Command CommandParameter MultiBinding
     //xaml<Windowx:Class="WpfApp194.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas......
  • LLM指令微调Prompt的最佳实践(三):编写文本摘要的Prompt
    文章目录1.前言2.Prompt定义3.如何编写文本摘要的Prompt3.1对于单一文本的摘要3.1.1限制摘要的输出长度3.1.2强调关注的重点3.1.3提取关键信息3.2对于多条文本的摘要4.参考1.前言前情提要:《LLM指令微调Prompt的最佳实践(一):Prompt原则》《LLM指令微调P......
  • centos系统构建安装john导致的编译问题error: size of array element is not a multip
    blake2.h:112:5:error:sizeofarrayelementisnotamultipleofitsalignment112|blake2b_stateS[4][1];|^~~~~~~~~~~~~blake2.h:113:5:error:sizeofarrayelementisnotamultipleofitsalignment113|blake2b_stateR[1];......
  • springboot的MultipartFile转File读取
    在SpringBoot中,处理文件上传时,MultipartFile接口被用来封装上传的文件信息。如果需要将MultipartFile转换为Java标准的File对象进行读取。以下是具体的操作流程:1.创建临时文件        首先,需要将接收到的MultipartFile对象转换为一个临时File对象。      ......