论文解读:《LAMM: Label Alignment for Multi-Modal Prompt Learning》

系列文章目录


文章目录

  • 系列文章目录
  • LAMM: Label Alignment for Multi-Modal Prompt Learning学习
    • 1、论文细节理解
    • 1、研究背景
    • 2、论文贡献
    • 3、方法框架
    • 4、研究思路
    • 5、实验
    • 6、限制


LAMM: Label Alignment for Multi-Modal Prompt Learning学习

1、论文细节理解

  1. VL模型和下游任务之间的类标签表示的差距啥意思?
    在视觉语言(VL)模型和下游任务之间的“类标签表示的差距”指的是预训练的视觉语言模型(如CLIP)和下游任务(如具体的图像分类任务)在类别标签的表示方式上存在不同。这些差异可能会影响模型在迁移到下游任务时的性能。
    具体来说,预训练的VL模型通常使用特定的方式来表示类标签,例如通过文本描述或特定的词嵌入(word embeddings)。而在下游任务中,类别标签的表示方式可能与VL模型中使用的表示方式不同,可能导致模型无法很好地理解或利用这些标签进行分类或识别。这种表示方式的差距就会影响到模型在下游任务中的表现。
    为了解决这一问题,LAMM 方法提出了通过端到端训练动态调整类别嵌入(即类标签的表示)的方式,使得这些类别标签的表示方式能够更好地适应下游任务的需求,从而弥合预训练VL模型与下游任务之间的差距。这种调整可以帮助模型更好地理解和处理下游任务中的类别标签,提高任务的性能。
  2. “构建模板的过程通过梯度下降而不是手动构建进一步自动化”的意思是
    提示学习(prompt learning)方法中的模板设计不再依赖人工来手动创建,而是通过训练过程中的梯度下降算法自动优化和生成。传统上,提示模板可能需要人工设计,例如在自然语言处理中,为了让模型理解某个任务,可能需要人类专家设计特定的句子结构或关键词来引导模型。这个过程既费时又依赖于人的经验。
    然而,随着提示学习的进展,现在可以通过训练一个具有少量特定任务参数的模板,并使用梯度下降算法来自动调整这些参数,从而生成适合特定任务的提示模板。这种自动化的过程意味着模型能够自主学习如何最好地生成适合下游任务的提示,而不需要人工介入。这种方法大大提高了效率,并且通常可以比手动设计的模板表现得更好。简单来说,这句话的意思是,通过使用梯度下降优化算法,提示模板的生成和优化过程得到了自动化,从而减少了手动设计的需求。
    在这里为了对这句话为了加深理解,下载了文章的引用论文,进行阅读。
  3. 灾难性遗忘问题。
    谈论神经网络"时,从脑神经科学的角度去理解是最容易的,有调查显示,中国人对于初中知识的遗忘率是比较高的。原因就是我们的基础教育可能过于机械,导致我们在工作以后与原有知识的连接不够,让初中知识成为了信息孤岛,最终导致了对初中知识的彻底性遗忘。所谓的灾难性遗忘,是与正常人脑的渐进式遗忘相对的造忘方式。渐进式过忘一般被叫做遗忘曲线。我们不断寻找学习方法,就是对遗忘曲线对抗的过程,一般来说,正常健康的人脑,是不会出现突然忘记一大堆东西,然后不仅再也想不起来,而且就算是重新记忆和学习也会遭遇因难的情况的。正常大脑的记忆循序渐进,遗忘也是循序渐进的,而灾难性造忘,则比较类似于失忆症+患者的状况。他们突然遭受重大打击,导致大脑信息出现过载,最后导致了部分或者全部记忆的缺失。人类之所以不会经常出现灾难性过忘事件,可能是因为我们很少有机会让大脑过载,而在机器学习的过程中,灾难性过忘是比较常见的,灾难性迪忘一般会出现在连续的大负荷的机器学习过程中。当一个神经网络模型被训练用来完成多个不同任务时,它们往往就会在学习新任务时把之前学习过的任务彻底遗忘,由于神经网络与大脑类似,其内部的运作规律人类暂时还不能完全理解,可以说是一个黑盒子,在这种情况下,人工智能突然忘记长时间高成本已经完成的训练任务,就是项目的灾难,所以才有了灾难性遗忘的名字。从人脑失忆的原理上看,失忆要么就是由于某种病理原因,导致神经突出萎缩或者断开。阿尔茨海默病就是这类。要么就是因为药物和情绪的影响,干扰了神经细胞的正常运行,机器学习过程中造成的灾难性遗忘,显然属于前者,现在常用的对抗灾难性过忘的办法有两种,一个是增量学习,另一个是领域适应,增量学习的意思是,尽是避免重新开始训练一个模型,尽可能在模型已经学习内容的基础上不断拓展它的知识。一定要避免人工智能形成孤立的信息孤岛,确保不让记忆丢失。另外一种方法叫做领域适应。当人工智能开启一个新领域的训练时,可以利用现有领域的知识,通过对齐特征、对抗训练之类的办法,让人工智能先在新领域把以前的知识先用起来,先举一反三,这就避免了信息孤岛的形成也避免了出现灾难性遗忘的问题,所以,说自了,神经网络与大脑没什么不同,记忆的本质就是在脑神经细自中建立连接,而基于神经网络的机器学习,则是在海是的参数中建立连接,参数=脑细胞。想要防止失忆,就得在不同领域的知识之间融会重通,避免出现信息孤岛,知识之间应该有逻辑进行支撑。
  4. 温度参数(Temperature Parameter)是什么?
    参考这篇博客
  5. Logits space?
    Logits space是机器学习,特别是在深度学习中常用的一个概念,主要用于分类任务。它指的是模型输出的原始预测值,这些值通常是一个未经过激活函数处理的向量。具体来说:
    Logits:在多分类问题中,logits是模型最后一层的输出,通常是一个实数向量,表示每个类别的相对得分。它们没有被转换为概率分布。
    Softmax函数:为了将logits转换为概率分布,通常会使用softmax函数。softmax将logits转换为在0到1之间的值,并且所有值的和为1。
    损失计算:在训练过程中,通常使用交叉熵损失函数来比较模型的logits和真实标签之间的差异。
    总之,logits space是一个重要的中间步骤,帮助我们理解模型的预测信心和类别之间的相对关系。
  6. 最大限度地减少图像表示和不同文本表示之间logit的分布偏移有以下几个好处:
    提高对齐性:减少分布偏移可以使得图像和文本表示在同一特征空间中更好地对齐,从而增强模型在多模态任务中的表现。
    增强泛化能力:通过减小不同模态之间的偏移,模型能够更好地理解和转化信息,提升在未见样本上的泛化能力。
    提升检索性能:在图像检索或文本检索任务中,减少分布偏移可以提高检索的准确性,使得相似的图像和文本能够更容易地匹配。
    改善跨模态生成:在生成任务中(如图像生成或文本生成),更小的分布偏移可以提高生成内容的质量,使得生成的图像或文本更符合输入的模态。
    增强模型稳定性:通过降低不同模态之间的分布差异,可以减少模型训练过程中的不确定性,提高训练的稳定性。
  7. 模型泛化能力是什么意思?
    模型泛化能力是指模型在未曾见过的数据上的表现能力,也就是模型对于新的数据的适应能力。在机器学习中,模型的目标是能够对未知数据进行准确的预测或分类。如果模型只能在训练数据上表现良好,但在新的数据上表现不佳,那么这个模型的泛化能力就很差。
    因此,一个好的模型应该具有良好的泛化能力,即能够在未曾见过的数据上表现良好。对于一个机器学习算法来说,泛化能力是评估其性能的一个重要指标。通常,我们会将数据集分为训练集和测试集,用训练集来训练模型,然后用测试集来测试模型的泛化能力。
    提高模型的泛化能力的方法包括:增加数据量、减少模型的复杂度、使用正则化等。同时,也要注意避免过拟合,过拟合会导致模型在训练集上表现很好,但在测试集上表现不佳,从而降低模型的泛化能力。
    ————————————————
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    原文链接:https://blog.csdn.net/qq_42112018/article/details/129341573
  8. 为什么说clip中[a][photo][of][< Mi >][.]这种在clip中其中的Mi是不可以学的的token?
    在CLIP中,像 [a][photo][of][< Mi >][.] 这样的结构中,< Mi > 被视为一个固定的标记,通常用于表示特定的内容或类别。以下是为什么这个标记被认为是不可以学习的token的原因:
    固定语义:< Mi > 是预定义的,通常用来提供特定的上下文或信息。它的含义在训练过程中是固定的,不会改变。
    不参与学习:在对比学习中,模型的目标是通过最大化图像和文本之间的相似度来进行训练,而不是学习或调整这些固定标记的表示。
    上下文作用:虽然< Mi >在模型的输入中起到重要的作用,但它并不是模型学习的对象。模型关注的是如何将图像和文本表示对齐,而不是学习标记本身的特征。
    编码方式:在文本编码过程中,< Mi > 被视为一个输入token,模型会对其进行编码,但不会像可学习的参数那样进行优化。
    因此,< Mi > 被视为一个固定的标记,而不是一个可学习的token。它在模型中提供上下文信息,但其本身并不参与学习过程。
  9. 为什么可训练类嵌入过度拟合到训练集中有限数量的图像?
    样本数量不足:在少数镜头学习(few-shot learning)设置中,训练集中每个类别的样本数量通常很少。这会导致模型在学习时无法充分捕捉到该类别的多样性,从而使得可训练嵌入过于依赖于这些有限的样本。
    特征空间的局限性:由于图像表示保持固定,模型只能通过调整可训练类嵌入来适应不同类别。如果训练样本不足,模型可能会学习到一些特定于训练集的特征,而不是更通用的特征。
    过拟合风险:在有限的样本上训练时,模型容易记住训练集中的特定样本,而不是学习到能够泛化到新样本的特征。这种情况下,嵌入可能会在训练集上表现良好,但在未见过的样本上表现不佳。
    类别间相似性:如果不同类别之间的图像在特征空间中相似,模型可能会将可训练嵌入调整得过于接近,导致在训练集上表现良好,但在面对新图像时缺乏区分能力。
    解决方案:为了解决这些问题,提出了分层损失(HL),旨在提高模型在参数空间、特征空间和logits空间的泛化能力。这种方法可以帮助模型在有限的训练样本上更好地学习到类别的普遍特征,而不是仅仅依赖于训练集中的个别样本。
  10. CLIP强大的泛化能力对小场景下多模态提示方法的有效性起着至关重要的作用。虽然前两个损失通过参数和特征空间中的正则化增强了LAMM的泛化能力,但与零次CLIP相比,希望最大限度地减少图像表示和不同文本表示之间logit的分布偏移。因此,我们在分类logits空间中引入了知识蒸馏损失,这允许将泛化知识从CLIP转移到LAMM。具体解释一下这段.
    这段话的核心在于解释如何通过引入知识蒸馏损失来提高LAMM(Layer-wise Adaptive Multi-modal Model)在小样本场景下的泛化能力,特别是在处理多模态提示时。以下是具体的解释: CLIP的泛化能力
    CLIP模型在多模态学习中表现出色,能够在不同的任务和数据集上有效地泛化。其强大的泛化能力使得它在小样本学习(few-shot learning)场景中仍能提供良好的性能。
    (1)LAMM的损失函数
    在LAMM中,前两个损失函数通过对参数和特征空间的正则化来增强模型的泛化能力。这意味着它们通过限制模型复杂度或增加多样性,帮助模型在训练集之外也能表现良好。
    (2)分布偏移问题
    尽管前两个损失增强了泛化能力,但与零-shot CLIP相比,LAMM仍然希望减少图像表示和不同文本表示之间的logit分布偏移。这里的“logit”是指模型输出的未经过softmax的预测值,表示类别的相对可能性。分布偏移意味着当输入图像和文本表示经过模型时,它们的输出可能不一致,从而影响模型的决策能力。
    (3)知识蒸馏损失
    为了应对这个问题,作者引入了知识蒸馏损失。知识蒸馏是一种模型压缩方法,通过将一个大型、表现良好的教师模型(在这里是CLIP)中的知识转移到一个较小的学生模型(在这里是LAMM)中。具体来说:
    转移知识:通过对比CLIP和LAMM的logits输出,知识蒸馏损失鼓励LAMM的输出分布与CLIP的输出分布保持一致。
    减少偏移:这种一致性可以帮助LAMM更好地捕捉到CLIP在多模态任务中的泛化能力,从而减少logit分布的偏移,提高在新样本上的表现。
    总结:总的来说,这段话强调了通过引入知识蒸馏损失,LAMM能够更有效地利用CLIP的泛化能力,从而在小样本环境下提高多模态提示方法的有效性,减少模型在图像和文本表示之间的输出偏差。

1、研究背景

近年来,随着视觉-语言(VL)预训练模型的成功,特别是在视觉表示任务中的应用,如CLIP,基于预训练模型的迁移学习已成为处理下游任务的关键范式。然而,当前的多模态提示学习主要集中在为文本和视觉输入构建提示模板,忽略了VL模型与下游任务之间类别标签表示的差异。尽管在自然语言处理领域,提示学习已经取得显著进展,但在视觉-语言模型中,这种方法仍然存在一定的局限性。因此,如何有效地将预训练的视觉-语言模型迁移到下游任务中,成为一个值得研究的问题。

2、论文贡献

第一、本文提出了一种标记对齐技术LAMM,它通过梯度优化来自动搜索最优嵌入。据论文作者所知,可训练类别标记的概念是在预训练的VL模型中首次提出的。
第二、为了避免整个提示模板的语义特征偏离太远,作者在训练阶段引入了层次丢失。层次损失便于在参数、特征和logit空间之间对齐类别表示。通过这些操作,CLIP模型的泛化能力在LAMM中得以保留,使得LAMM在下游任务中更好地区分不同的类别,同时保留了原始类别描述的语义。
第三、假定LAMM仅微调下游数据集中的标签嵌入,则它不会遇到在连续学习期间传统方法中通常遇到的灾难性遗忘问题。

3、方法框架

在这里插入图片描述
这张图展示了LAMM (Label Alignment for Multi-Modal Prompt Learning) 的整体架构,并详细说明了其标签对齐和分层损失的方法。下面是对图中各个符号和流程的详细解释:

  1. 输入部分
    文本输入(左上角):输入的文本格式为 [a][photo][of] + ,其中代表数据集中不同类别的标签(如 ant, beaver, llama, pelican, zebra 等)。这些标签通过LAMM模块进行动态调整。
    图像输入(左下角):图像输入通过 Image Encoder 进行编码。
  2. 编码器部分
    Text Encoder:文本编码器将输入的文本转换为文本特征。
    Image Encoder:图像编码器将输入的图像转换为图像特征(Ix)。
  3. 标签对齐模块
    Trainable Label Embedding:用可训练的向量替换下游数据集中的类别标签。这是LAMM方法的核心部分,通过端到端训练对类别标签进行动态调整。
    Output Text Feature:输出的文本特征。
    Output Classification Logits:输出的分类logits,表示类别的预测分数。
  4. 对齐机制
    图中右侧展示了LAMM方法中的三个对齐机制:
    Parameter Alignment (参数对齐):通过最小化L_WC损失,LAMM中的可训练标签嵌入与冻结的标签嵌入进行对齐。这种对齐机制有助于保留原始模型中预训练类别标签的泛化能力。
    Text Feature Alignment (文本特征对齐):通过最小化L_COS损失,确保输出文本特征与冻结文本特征之间的一致性。这个过程通过余弦相似度来度量。
    Logits Alignment (logits对齐):通过最小化L_KD损失,使得输出的分类logits与冻结的logits之间保持一致性。这类似于知识蒸馏方法,确保训练过程中不会出现过度拟合现象。
  5. 流程概述
    文本和图像分别通过文本编码器和图像编码器,生成各自的特征表示。
    文本特征与训练标签进行对齐,通过三个分层对齐机制(参数对齐、文本特征对齐、logits对齐)来确保模型的泛化能力。
    这些对齐机制旨在最大化预训练模型的效用,尤其是在少样本学习的场景下。
    这张图总结了LAMM的整体方法框架,通过引入可训练的标签嵌入和分层对齐机制,确保多模态模型在不同下游任务中的表现。

4、研究思路

5、实验

6、限制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/53487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统 在产品将要上线之前&#xff0c;需要制作不同类型格式的根文件系统 在产品研发阶段&#xff0c;我们还是需要使用nfs的方式挂载根文件系统 优点&#xff1a;可以直接在上位机中修改文件系统内容&#xff0c;延长EMMC的寿命 【1】重启上位机nfs服…

Docker初识(Docker技术集群与应用)

一、基础设施即服务 IaaS&#xff08;Infrastructure as a Service&#xff09; eg&#xff1a;购买的云服务器&#xff0c;就是IaaS 提供给客户的服务是对所有设施的利用&#xff0c;包括处理、存储、网络和其他基本的计算资源。客户能够部署和运行任意软件&#xff0c;包括…

人工智能安全治理框架导图

资源链接&#xff1a;《人工智能安全治理框架》1.0版发布_中央网络安全和信息化委员会办公室

MAT:一款针对MSSQL服务器的安全检测与审计工具

关于MAT MAT是一款针对MSSQL服务器的安全检测与审计工具&#xff0c;该工具使用C#开发&#xff0c;可以帮助广大研究人员快速识别和发现MSSQL 服务器中的安全问题&#xff0c;并实现安全检测与审计目的。 功能介绍 1、执行自动检查并识别安全问题&#xff1b; 2、允许通过 Win…

java黑马微项目

1 飞机票 代码实现&#xff1a; import java.util.Scanner; public class F1 {public static void main(String[] args) {Scanner input new Scanner(System.in);System.out.print("请输入票价&#xff1a; ");double jia input.nextDouble();System.out.print(&…

Threejs之纹理Texture

本文目录 前言一、Texture的基本概念1.1 定义及作用1.2 常用属性 二、代码及效果2.1 代码2.2 效果 前言 在Three.js中&#xff0c;Texture&#xff08;纹理&#xff09;是一项核心功能&#xff0c;创建一个纹理贴图&#xff0c;将其应用到一个表面&#xff0c;或者作为反射/折射…

web基础之信息泄露

1、目录遍历漏洞 &#xff08;1&#xff09;原理&#xff1a;本质是没有过滤用户输入的 ../ 相关的目录跳转符&#xff0c;使得攻击者通过目录跳转符来遍历服务器中的任意文件。 &#xff08;2&#xff09;题解&#xff1a; eg:根据提示遍历网页目录信息&#xff0c;会在某一个…

无需更换摄像头,无需施工改造,降低智能化升级成本的智慧工业开源了

智慧工业视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

大数据-119 - Flink Window总览 窗口机制-滚动时间窗口-基于时间驱动基于事件驱动

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

损坏SD数据恢复的8种有效方法

SD卡被用于许多不同的产品来存储重要数据&#xff0c;如图片和重要的商业文件。如果您的SD卡坏了&#xff0c;您需要SD数据恢复来获取您的信息。通过从损坏的SD卡中取回数据&#xff0c;您可以确保重要文件不会永远丢失&#xff0c;这对于工作或个人原因是非常重要的。 有许多…

【Qt笔记】QTableWidget控件详解

目录 引言 一、QTableWidget的特点 二、QTableWidget基础 2.1 引入QTableWidget 2.2 基本属性 三、代码示例&#xff1a;初始化QTableWidget 四、编辑功能 4.1 设置单元格为只读 4.2 响应内容更改 五、选择模式 六、样式定制 七、与其他控件的交互 7.1 在单元格…

[SUCTF 2018]annonymous1

知识点&#xff1a; 匿名函数创建其实有自己的名字&#xff08;%00lambda_%d&#xff09; 进入页面开始代码审计. <?php // 使用 create_function 创建一个匿名函数&#xff0c;该函数调用 die() 函数并执行 cat flag.php 命令&#xff08;在服务器上执行&#xff0c;如果…

如何在 DigitalOcean Droplet 云服务器上部署 Next.js 应用

Next.js 是一个流行的 React 框架&#xff0c;可轻松构建服务器渲染的 React 应用程序。在本教程中&#xff0c;我们将介绍如何使用 Nginx 作为反向代理&#xff0c;在 DigitalOcean 的 droplet 云主机上部署 Next.js 应用程序。以下是逐步指南&#xff0c;假设你已经准备好部署…

基于SpringBoot+Vue+MySQL的牙科医就诊管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的…

HTML/CSS/JS学习笔记 Day2(HTML--网页标签 上)

跟着该视频学习&#xff0c;记录笔记&#xff1a;【黑马程序员pink老师前端入门教程&#xff0c;零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day2 内容梳理&#xff1a;…

儿童孤独症康复学校:打破孤岛,关爱与成长

在世界的某个角落&#xff0c;有一群孩子&#xff0c;他们如同夜空中最亮的星&#xff0c;却往往因孤独症的屏障&#xff0c;而难以与周围的世界建立连接。这些孩子&#xff0c;如同被无形的岛屿环绕&#xff0c;渴望着被理解、被接纳。而正是在这样的背景下&#xff0c;星贝育…

[C++11#48][智能指针] RAII原则 | 智能指针的类型 | 模拟实现 | shared_ptr | 解决循环引用

目录 一.引入 1. 为什么需要智能指针&#xff1f; 2. 什么是内存泄漏&#xff1f; 内存泄漏分类 3.回忆 this 二. 原理 1. RAII 资源获取即初始化 2.像指针一样 三. 使用 1. 问题&#xff1a; string 的浅拷贝 2.解决 auto_ptr 自定义 auto_ptr unique_ptr - 独占…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中&#xff0c;在模拟器中运行出现报错&#xff1a; 未能打开文件“kernel_blob.bin”&#xff0c;因为它不存在。 如下图&#xff1a; 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

ES之三:springboot集成ES

一.选择版本很重要&#xff0c;不然会找不到好多方法 明明有Timeout方法&#xff0c;不报红&#xff0c;运行时&#xff0c;报错&#xff0c;找不到该类 ClassNotFoundException 为了避免使用的Elasticsearch版本和SpringBoot采用的版本不一致导致的问题&#xff0c;尽量使用…

高校大模型实验室大模型应用平台

大模型应用平台是一款专为高校大模型应用场景教学和科研打造的知识库问答系统。该平台易于使用&#xff0c;知识库支持常见的txt、doc、pdf、md等数据文件上传&#xff0c;同时提供了简洁易懂的操作配置界面&#xff0c;使用户可以轻松地搭建和训练AI应用&#xff0c;并快速进行…