论文解读:《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.rhkb.cn/news/419502.html

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

相关文章

C++ | Leetcode C++题解之第394题字符串解码

题目&#xff1a; 题解&#xff1a; class Solution { public:string src; size_t ptr;int getDigits() {int ret 0;while (ptr < src.size() && isdigit(src[ptr])) {ret ret * 10 src[ptr] - 0;}return ret;}string getString() {if (ptr src.size() || src[…

JS_对象的创建

JS声明对象的语法 通过new Object()直接创建对象 var person new Object(); // 给对象添加属性并赋值 person.name"张明"; person.age10; person.foods["苹果","橘子","香蕉","葡萄"]; // 给对象添加功能函数 person.eat …

数学建模笔记—— 主成分分析(PCA)

数学建模笔记—— 主成分分析 主成分分析1. 基本原理1.1 主成分分析方法1.2 数据降维1.3 主成分分析原理1.4 主成分分析思想 2. PCA的计算步骤3. 典型例题4. 主成分分析说明5. python代码实现 主成分分析 1. 基本原理 在实际问题研究中,多变量问题是经常会遇到的。变量太多,无…

顶层const和底层const

在C中&#xff0c;const修饰符用于声明常量&#xff0c;有两种常见的形式&#xff1a;顶层const和底层const&#xff0c;它们之间的区别在于它们修饰的对象及其在不同场景中的作用。 1. 顶层const (Top-level const) 顶层const用于修饰变量本身&#xff0c;使其成为常量。这意…

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1&#xff1a;安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件&#xff0c;完成后可能需要重启 Jenkins。 步骤 2&#xff1a;配置…

SQL进阶技巧:每年在校人数统计 | 区间重叠问题

目录 0 问题分析 1 数据准备 2 问题分析 3 小结 区间重叠问题 0 问题分析 有一个录取学生人数表 in_school_stu,记录的是每年录取学生的人数及录取学生的学制,计算每年在校学生人数。 1 数据准备 create table in_school_stu as ( select stack(5,1,2001,2,1200,2,2000…

Sui Narwhal and Tusk 共识协议笔记

一、Overwiew [ 整体流程: Client提交transaction到Narwhal Mempool。(Narwhal Mempool由一组worker和一个primary组成) Mempool接收到的Transaction->以Certificate的形式进行广播 由worker将交易打包为Batch,worker将Batch的hash发送给primary primary上运行了mempo…

关系代数 | 数据库SQL

文章目录 关系运算符笛卡尔积笛卡尔积应用 运算符符号含义集合运算符并∪交∩差-笛卡尔积专门的关系运算符选择σ投影π连接⋈除 关系运算符 笛卡尔积 集合运算符中&#xff0c;主要对笛卡尔积做解释&#xff1a; 在数学中&#xff0c;两个集合X和Y的笛卡儿积&#xff08;英语…

ThreadLocal 释放的方式有哪些

ThreadLocal基础概念&#xff1a;IT-BLOG-CN ThreadLocal是Java中用于在同一个线程中存储和隔离变量的一种机制。通常情况下&#xff0c;我们使用ThreadLocal来存储线程独有的变量&#xff0c;并在任务完成后通过remove方法清理这些变量&#xff0c;以防止内存泄漏。然而&…

使用 WebStorm 导入已有的 Vue 项目并运行的步骤与注意事项

目录 1. 引言2. WebStorm 环境准备2.1 安装 WebStorm2.2 配置 Node.js 和 npm2.3 使用 nvm 管理 Node.js 和 npm 版本2.4 npm 版本与 Vue 版本对应关系 3. 导入已有的 Vue 项目3.1 打开 Vue 项目3.2 安装项目依赖3.3 使用 nvm 控制 Node.js 和 npm 版本 4. 运行 Vue 项目4.1 启…

软件工程-图书管理系统的概要设计

软件概要设计说明书 目录 软件概要设计说明书 一、引言 1.1 编写目的 1.2 背景 1.3 定义 1.3.1特定对象 1.3.2专业术语 1.4 参考资料 二、总体设计 2.1 需求规定 2.1.1信息要求 2.1.2功能要求 2.2 运行环境 2.3 基本概要设计和处理流程 2.4 体系结构设计 2.5 模…

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 &#xff5c; 科技热点关注】 2024戴尔科技峰会在8月如期举行&#xff0c;虽然因事未能抵达现场参加&#xff0c;我只是观看了网上在线直播&#xff0c;也未能采访到DTF现场重要与会者&#xff0c;但是通过数十年对戴尔的跟踪与观察&#xff0c;我觉得2024戴尔科技…

基于Java+SpringBoot+Vue+MySQL的美容美发管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的美容美发管理系统【附源码文档】、前后…

const、inline、nullptr的使用

目录 1.const引用 1.1权限的放大 1.2权限的缩小 2.inline 3.nullptr 1.const引用 可以引用一个const对象&#xff0c;但是必须用const引用。const引用也可以引用普通对象&#xff0c;因为对象的访问权限在引用过程中可以缩小&#xff0c;但是不能放大。 不需要注意的是类…

uniapp 实现tabbar图标凸起

实现tabbar图标凸起有两种&#xff0c;第一种是自定义tabbar&#xff0c;第二种就是使用官方的tabbar跟api实现&#xff0c;自定义在体验中不如原生的tabbar&#xff0c;所以我下面展示的是使用官方的tabbar跟api实现 效果如图&#xff1a; 左边是未选中中间的凸起&#xff0c…

大模型推理--KV Cache

KV Cache是大模型推理中常用到的一个技巧&#xff0c;可以减少重复计算&#xff0c;加快推理速度。不少人只是从概念上知道它可以减少重复计算&#xff0c;详细的原理则知之甚少&#xff0c;此外为啥只有KV Cache而没有Q Cache呢&#xff0c;我们在本博客中给出详尽的解释。我想…

一些硬件知识(十八)

两个信号PIN之间串接电阻的作用&#xff1a; 1.阻抗匹配 2.吸收反射 3.防止程序异常导致两个IO都是输出的时候短路 尤其针对下图中的信号&#xff1a; 清理穿越机电机中的灰尘&#xff0c;可以用密封胶泥的办法&#xff1a; 一定要小心垫片的掉落&#xff1a; 20块左右的快充充…

游泳馆押金管理+手牌管理+刷手牌 开通方法

一、游泳馆手牌押金管理 1. 减少手牌丢失&#xff1a;收取押金可以让顾客更加谨慎地保管手牌&#xff0c;降低手牌丢失的概率。 2. 保障设施安全&#xff1a;有助于防止顾客对手牌的不当使用或故意破坏&#xff0c;保护游泳馆的设施和资源。 3. 规范顾客行为&#xff1a;促使…

SLM561A​​系列 60V 10mA到50mA线性恒流LED驱动芯片 为智能家居照明注入新活力

SLM561A系列选型参考&#xff1a; SLM561A10ae-7G SOD123 SLM561A15ae-7G SOD123 SLM561A20ae-7G SOD123 SLM561A25ae-7G SOD123 SLM561A30ae-7G SOD123 SLM561A35ae-7G SOD123 SLM561A40ae-7G SOD123 SLM561A45ae-7G SOD123 SLM561A50ae-7G SOD123 …

Pr下载安装教程2024(Adobe Premiere 2024)最新版分享百度网盘链接地址

提示&#xff1a;主要讲述了软件安装及初步使用流程。Pr下载安装教程2024最新版分享百度网盘链接地址首先&#xff0c;解压文件夹后&#xff0c;双击安装包进行安装&#xff0c;选择简体中文并确认安装位置&#xff0c;可按需更改。随后&#xff0c;点击继续等待安装完成并启动…