ICLR 2023#Learning to Compose Soft Prompts for Compositional Zero-Shot Learning

news2024/11/26 6:20:57

组合零样本学习(CZSL)中Soft Prompt相关工作汇总(一)

文章目录

    • 组合零样本学习(CZSL)中Soft Prompt相关工作汇总(一)
      • ICLR 2023#Learning to Compose Soft Prompts for Compositional Zero-Shot Learning
        • Introduction
        • Related work
          • prompt
          • Parameter-efficient learning
        • Preliminaries
        • Compositional Soft Prompting

ICLR 2023#Learning to Compose Soft Prompts for Compositional Zero-Shot Learning

补充:https://zhuanlan.zhihu.com/p/532153343
————提示学习soft prompt浅尝
https://zhuanlan.zhihu.com/p/493489688
————神器CLIP:连接文本和图像,打造可迁移的视觉模型

Introduction

背景:VLMs有一个灵活的文本编码器,可以将任意类表示为自然语言提示,但它们(例如CLIP)在zero-shot基准测试数据集上的性能常常低于特定于任务的体系结构→因为CLIP对从网络上抓取的数据进行的预训练没有足够的对属性的监督以及如何将它们和不同的对象进行组合。
为了提升组合零样本学习能力(即“预测unseen属性-对象组合的任务”),本文提出了一种参数高效的学习技术——CSP(Compositional Soft Promting,组合软提示)。CSP将定义类的属性和对象视为词汇表中的可学习标记。在训练过程中,词汇表被调优以识别以多种方式组成符号的类(例如,老猫和白猫);在测试时,将学习到的属性对象词汇重新组合,以识别新的类(即“组合现有的分类器来构建新的分类器”)
现有czsl方法:将属性和对象映射到预训练的词嵌入,并使用预训练的图像编码器backbone来联合对齐图像和 属性-对象文本表示,以学习组合性;
存在的问题:1.单词嵌入和图像编码器的预训练是彼此分离的,即这些方法从头开始学习对齐图像和文本表示;
2.这些特定于任务的体系结构在灵活性方面也受到限制。在让这些方法适应具有多属性和对象(如小毛猫或老白虎)的高阶组合时,就需要修改原始架构→说明超出原始长度的泛化能力是“组合性”的关键

Related work
prompt

prompt是语言和视觉领域的焦点,在大范围的任务重有助于zero-shot和few-shot学习;discrete prompt通常是手写文本输入,为大型预训练模型(如CLIP、GPT-3)等提供指导方针,无需更新模型参数进行推理(?),但是耗时严重;
提出soft prompt作为替代,可以在反向传播过程中学习部分的prompt而不用微调整个模型,在效果比手工要好的soft prompt工作中,它是单个输入连接到整个任务的所有输入;我们从多个组合中学习每个基本概念的标记,并以新的方式重新组合它们,以表示unseen的类
其他工作应用:few-shot目标分类;VQA;视频理解,但都是整个数据集只有单个prompt;
参考和22年Ge的工作类似,区别:1.我们的将类标签分解成多个部分,而不是将提示分割成与领域相关的粒度,比如与领域无关的上下文、领域特定的上下文和类标签;2.关注zero-shot学习,不能访问测试集中不可见类的标记示例,而它们在训练期间可以访问所有的测试类

Parameter-efficient learning

(补充:Parameter-efficient fine-tuning的三个特性:
1.在微调过程中预训练参数是固定的,只需微调少量额外的参数,可以达到与全量微调相当接近的性能,不同任务只需要切换任务相关的那少部分参数;
2.PEFT在训练数据量小的场景下,有时性能可以超过全量微调,预训练知识不容易遗忘,泛化能力强;
3.PEFT在方法上是模型无关的,可以广泛应用于多种模态和模型(另外的图像识别、生成任务))
https://zhuanlan.zhihu.com/p/636326003
————大模型的领域适配 —— Parameter-Efficient Fine-Tuning (PEFT)
https://zhuanlan.zhihu.com/p/620618701
————预训练大语言模型的三种微调技术总结:fine-tuning、parameter-efficient fine-tuning和prompt-tuning的介绍和对比
在这里插入图片描述图一.fine-tuning技术应用(图源上述链接)

Preliminaries

属性集A、对象集O,样本标签Y=A×O;
训练阶段:已知Sseen={(x1,y1),…,(xn,yn)}来学习有区分性的模型f:X → Yseen;
推理阶段:想要模型可以预测测试集中seen+unseen的组合,f:X → Ytest 1).封闭世界中,Ytest = Yseen ∪ Yunseen;2).开放世界中,考虑属性、对象的所有组合:Ytest = Y,Yunseen = Y - Yseen

CSP训练设置
CSP的训练设置:带有属性和对象词汇的prompts(A photo of [ATTRIBUTE][OBJECT])通过文本编码器来获得文本的表征(representation),图像通过图像编码器获得图像表征;之后计算所有prompts和图像之间的余弦相似度后计算交叉损失熵;最后重传损失并更新属性-对象词汇权重(weights)

Compositional Soft Prompting

Motivation:改进vlm(如CLIP)在组合概化方面的表现,因为它们似乎不如当前最先进的方法。这可能是因为CLIP对从网络爬来的数据进行的预训练没有提供足够的属性监督以及它们如何与不同对象结合→目标是教vlm(如CLIP)如何更好地组合原始概念
把它看做一个词汇学习问题,因为它是参数有效(parameter-efficient)的,并提供了一种自然的方法来组成新类
Prompt construction
CSP把用来定义类的属性和对象视为可学习的词汇表标记,并根据多个prompt组合对它们进行调优;我们把每个原语概念都表示成VLM词汇表中一个新的、辅助性的token,每表示一类就用"a photo of [attribute][object]"
Training:直接贴汇报用的ppt图了
在这里插入图片描述
Inference
在推理过程中,在提示中重新组合经过调整的属性和对象词汇表;
以在训练过程中相同的方式将经过调整的θ与(属性、对象)对组合在候选提示中‘’在封闭世界和开放世界设置中,我们只使用提示符中经过调整的参数替换属性和对象。最后,计算最可能的属性和对象对:
在这里插入图片描述
后续实验部分分析了csp在开放世界和封闭世界中的效果,在不同衡量标准下的效果,还有baseline和benchmark结果的对比等等,本文是组合零样本学习czsl中soft prompt相关工作的基础工作,提出的创新点主要是将提高下游任务效果的方向转移到文本端来,因此提出了对clip的prompt工程进行改进而提出了soft-prompt,故在实验效果不做赘述。之后的几篇文章讲解都以csp为基础进行后续的工作,见专栏文章…
**因为博主(hdu研一在读)也刚开始接触多模态学习领域的工作不久,因此有相关科研领域和方向的读者大大有兴趣可以和我相互交流学习(菜鸡互啄),qq:1297995979

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

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

相关文章

变形金刚:第 2 部分:变形金刚的架构

目录 一、说明 二、实现Transformer的过程 第 1 步:代币化(Tokenization) 第 2 步:对每个单词进行标记嵌入 第 3 步:对每个单词进行位置嵌入 第 4 步:输入嵌入 第 5 步:编码器层 2.5.1 多头自注…

Linux makefile 大型多文件的处理

最简单的例子是 main.cpp test.cpp test.h 首先将这三个写好 然后的话 test.cpp 上面输出 helloworld 首先我们在同一个目录下创建一个makefile 文件 然后用vim 编辑它 如下图(使用的c) mybin 是我们的可执行程序 gcc是编译的命令 gcc 前面必…

[HCIE]vxlan --静态隧道

实验目的:1.pc2与pc3互通(二层互通);2.pc1与pc3互通(三层互通) 实验说明:sw1划分vlan10 vlan20 ;sw2划分vlan30;上行接口均配置为Trunk 实验步骤: 1.配置CE1/CE2/CE3环回口互通&a…

深度学习之反向传播算法

反向传播算法 数学公式算法代码结果 算法中一些函数的区别 数学公式 算法代码 这里用反向传播算法,计算 y w * x模型 import numpy as np import matplotlib.pyplot as ply#反向传播算法,需要使用pytorch框架, #这里导入pytorch框架&#xf…

力扣_面试题:配对交换

配对交换 链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目意思就是交换相邻两个二进制位 ,用&分别取出even(偶位和)odd(奇位和) 偶位和用0xAAAAAAAA,奇…

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程:差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同,差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统,如在离散时间点上更新状态并预测未来状态。 收敛点&…

4核16g云服务器多少钱?

4核16G服务器租用优惠价格26元1个月,腾讯云轻量4核16G12M服务器32元1个月、96元3个月、156元6个月、312元一年,阿腾云atengyun.com分享4核16服务器租用费用价格表,阿里云和腾讯云详细配置报价和性能参数表: 腾讯云4核16G服务器价…

2024年2月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先,来看下效果图 在线体验地址:https://geojson.hxkj.vip,并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

C#使用迭代器显示公交车站点

目录 一、涉及到的知识点 1.迭代器 2.IList接口及实现IList接口的Add方法 二、实例 1.源码 2.生成效果 一、涉及到的知识点 1.迭代器 迭代器是.NET 4.5开始的一个新特性,它是可以返回相同类型的值的有序序列的一段代码。迭代器可用作方法、运算符或get访问器…

Java安全 CC链6分析

CC链6分析 前言CC链分析核心transform链Lazymap类TiedMapEntry类HashMap方法 最终exp 前言 CC链6不受jdk版本与cs版本的影响,在Java安全中最为通用,并且非常简洁,非常有学习的必要,建议在学习CC链6之前先学习一下 URLDNS链 和 CC…

【Python如何通过多种方法输出九九乘法表】

1、九九乘法表方法一: for i in range(1, 10): # 对i在1到9进行循环(不包括10)for j in range(1, i 1): # 对j在1到i进行循环(不包括i)print(%d * %d %2d % (j, i, j * i), end ) # 对j,i进行格式化输出&#x…

【C++函数探幽】内联函数inline

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1. 前言2.概念3.特性…

位图

目录 位图的概念 位图的实现 寻找位置 set reset test 面试题 1.给定100亿个整数,设计算法找到只出现一次的整数? 2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集? 3. 位…

SpringBoot Starter造了个自动锁轮子

可能有人会有疑问,为什么外面已经有更好的组件,为什么还要重复的造轮子,只能说,别人的永远是别人的,自己不去造一下,就只能知其然,而不知其所以然。(其实就为了卷) 在日常…

VS Code之Java代码重构和源代码操作

文章目录 支持的代码操作列表调用重构分配变量字段和局部变量的差别Assign statement to new local variable在有参构造函数中将参数指定成一个新的字段 将匿名类转换为嵌套类什么是匿名类?匿名类转换为嵌套类的完整演示 转换为Lambda表达式Lambda 表达式是什么?转…

【OrangePi Zero2 智能家居】智能家居项目的软件实现

一、项目整体设计 二、项目代码的前期准备 三、实现语音监听接口 四、实现socket监听接口 五、实现烟雾报警监听接口 六、实现设备节点代码 七、实现接收消息处理接口 一、项目整体设计 整体的软件框架大致如下: 整个项目开启4个监听线程, 分别是&…

Java常用类与基础API--String的构造器与常用方法

文章目录 一、String的常用API-1(1)构造器1、介绍2、举例 (2)String与其他结构间的转换1、基本数据类型、包装类 --> 字符串2、字符串 --> 基本数据类型、包装类3、字符串 --> 字符数组4、字符数组 --> 字符串5、字符…

C++类和对象-C++运算符重载->加号运算符重载、左移运算符重载、递增运算符重载、赋值运算符重载、关系运算符重载、函数调用运算符重载

#include<iostream> using namespace std; //加号运算符重载 class Person { public: Person() {}; Person(int a, int b) { this->m_A a; this->m_B b; } //1.成员函数实现 号运算符重载 Person operator(const Per…

4核16G服务器价格腾讯云PK阿里云

4核16G服务器租用优惠价格26元1个月&#xff0c;腾讯云轻量4核16G12M服务器32元1个月、96元3个月、156元6个月、312元一年&#xff0c;阿腾云atengyun.com分享4核16服务器租用费用价格表&#xff0c;阿里云和腾讯云详细配置报价和性能参数表&#xff1a; 腾讯云4核16G服务器价…

JavaWeb学习|Filter与ThreadLocal

学习材料声明 所有知识点都来自互联网&#xff0c;进行总结和梳理&#xff0c;侵权必删。 引用来源&#xff1a;尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版 Filter 1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是&#xff1a;Servlet 程序、Liste…