论文解读:Prompt-aligned Gradient for Prompt Tuning

news2024/12/24 3:25:21

摘要

得益于CLIP等大型预训练的视觉语言模型VLM,我们可以通过离散的提示设计构建Zero-shot分类器,例如,利用图像与提示语句" a photo of a [ CLASS ] "之间的相似度,可以获得图像属于某个类别的置信度分数。此外,如果我们使用少量样本对软提示进行微调,提示调优表现出VLMs快速适应下游任务的巨大潜力。

然而,我们发现一个常见的错误,不适当的微调或极少样本的学习甚至会导致zero-shot预测性能低下。现有方法仍然通过使用提前终止和数据增强等传统的抗过拟合技术来解决这一问题,缺乏针对提示的原则性解决方案。

在本文中,我们提出了ProGrad (即提示对齐梯度),以防止提示调优遗忘从VLMs中学习到的一般知识。特别是,ProGrad只更新那些梯度与一般知识一致的提示,这种一般知识是通过预先定义的提示预测所提供的优化方向来表示的。简单来说,ProGrad是一种机制,它只更新那些其改进方向与现有知识库一致的提示,以此来保持知识更新的一致性和避免冲突。

在少样本学习、领域泛化、基类-新类泛化和跨数据集迁移设置下的大量实验表明,ProGrad的少样本泛化能力强于当前最先进的即时调优方法。

Introduction

在学习无数的图像-文本对之后,大规模视觉-语言模型( VLM ) 可以学习相匹配的图像文本对。得益于VLMs强大的语言建模能力,我们可以用自然语言(即提示)建立一个用来查询通用知识的交流通道。提示桥接了预训练过程和下游任务之间的连接差距,而不需要额外的微调。例如,我们可以为zero-shot图像分类制作一个提示语句' a photo of a [ CLASS ] ':通过使用视觉语言模型CLIP ,我们将图像输入到视觉分支,提示语句输入到语言分支,然后获得一个视觉语言相似度作为将图像分类为' [ CLASS ] '的置信度分数。

在实际中,基于提示的zero-shot图像分类是不准确的,因为手工设计的提示可能不是机器最喜欢的(例如, ' this is a Picture of '可能在VLM训练中语法上更占优势),或者不特定于下游域(例如, "某人正在做某事的照片"在动作识别上更好) 。最近,提示调整或前缀调整被提出,用一组可学习的单词嵌入向量来代替手工提示,这些单词嵌入向量不必翻译回人类可读的单词。然而,提示调优仍然像传统的微调一样棘手:随着训练的继续,泛化能力可能会下降,甚至低于zero-shot基线。

解释图1 :

图1 ( a & b )所示,提示调优方法CoOp通过提前停止达到了最好的效果,当训练继续进行时,其准确率最多下降了4 %。此外,图1 ( c & d )显示,CoOp在没有增加或没有足够的下游任务样本的情况下,几乎无法改善zero-shot的CLIP。据我们所知,现有的方法仍然依赖于传统的抗过拟合技术,如提前停止和数据增强,这缺乏对提示调优本质的原则性解决方案。

解释图2 :

此外,Grad - CAM可视化结果表明,微调后的提示会误导VLM忘记分类至少应该关注前景对象而不是背景的通用知识。对比CoOp (图2 b)和零样本学习CLIP (图2c),我们发现CoOp模型分散了对前景的注意力,而CLIP主要关注前景物体。这些结果说明了现有的提示调优策略存在过拟合风险,尤其是当训练样本数量极其有限时。

为此,本文提出了一种名为Prompt - alignment Gradient ( ProGrad )的提示调优方法,来克服CLIP中不恰当的调优。ProGrad的原则是对每个调优步骤进行规则化处理,使其不与原始提示提供的通用知识发生冲突,例如零样本CLIP预测。具体来说,我们使用zero-shot的CLIP和少样本微调预测之间KL散度来衡量通用知识的方向Gg,称为通用方向。类似地,我们利用真实数据和少样本微调模型之间的交叉熵梯度计算特定领域的知识方向Gd,称为特定领域方向。

我们将特定领域的方向Gd分解为:1 )一个与一般方向正交的向量G⊥,它表示不冲突的特定领域知识;2 )另一个与一般方向平行的向量G∥,表示通用知识。由于任何两个正交的向量都可以转化为两个互不冲突的基向量,所以第一个梯度分量G⊥不会覆盖总的方向。对于第二个成分,它必须是以下两个方向之一:1 )与一般方向相同,这表明更新与通用知识一致;2 )与一般方向相反,这表明冲突的更新应该被丢弃,以避免遗忘。

继续解释图2:

总体而言,在每次迭代中,ProGrad只更新与大方向呈锐角的提示对齐方向上的参数。与CoOp和CLIP相比,Gg和G⊥(图2 ( d & e ) )都有助于正则化模型聚焦于前景,ProGrad (图2 ( f ) )进一步提高了视觉响应。

学习CLIP、CoOp和CoCoOp,我们在15个图像分类基准下,在少样本学习、领域泛化、基类到新类泛化和跨数据集迁移的设置下对ProGrad进行评估,包括通用对象分类、细粒度图像识别、动作分类。综上所述,本文的ProGrad实现了:1 )与CoOp相比,在所有11个数据集上都有明显的提升;2 )与CoOp和CoCoOp相比,在所有11个数据集上的基类和新类精度的调和平均值都有明显的提高;3 )在领域泛化的源数据集和目标数据集上都有明显的提高。

Method

3.1. premiliminaries

Contrastive language-image pre-training (CLIP)

对抗性语言-图像预训练模型( CLIP ) 采用对比语言-图像预训练范式,对大量图像文本对进行训练。对于对比学习,关联的图像和句子被视为正样本,而非关联的图像文本对则被视为负样本。对比目标最大化正对的相似度,最小化负对的相似度。

Zero-shot transfer inference

zero-shot迁移推理将预训练的CLIP模型适应于下游任务,而无需对模型进行微调。以图像分类为例,通过将分类任务表述为图像-文本匹配问题来实现zero-shot迁移,其中文本是使用类似于"A photo of [ CLASS ]"的模板来扩展" [ CLASS ] "获得。基于图像特征f和类别扩展的文本特征wi之间的余弦相似度来衡量图像-类别匹配得分。图像编码器提取图像x的图像特征f,而第i类的文本特征wi则通过将提示描述输入到t中得到:

Prompt-based learning

基于提示(Prompt-based)的学习进一步增强了CLIP模型的迁移能力,并通过自动从下游任务中学习少量样本来避免提示工程(prompt engineering)。与使用固定手工制作的提示的零样本迁移不同,CoOp [54] 构建并微调一组M个连续的上下文向量v = {v1, v2, ..., vM}作为可转动的提示。具体来说,提示ti = {v1, v2, ..., vM, ci}结合了可学习的上下文向量v和类别标记嵌入ci,并输入到文本编码器g(·)。CoOp通过最小化真实标记的负对数似然来优化静态上下文向量v。

3.2. Prompt-aligned Gradient

CoOp面临着一个挑战,当注释数目有限时(例如每个类别一个注释),其迁移性能就会显著下降,甚至可能会低于zero-shot迁移效果。此外,CoOp也过度地依赖于早期停止和数据增强等抗过拟合的技术。为了克服过拟合的挑战,本文提出一种高效的微调范式ProGrad,将下游任务中的少样本知识与大规模的通用知识进行对齐。

受到知识蒸馏在知识迁移中的成功启发,本文利用CLIP的zero-shot预测作为通用知识,然后将微调后的预测与通用知识进行比较,从而调节梯度方向。

具体来说,我们通过Eq2计算模型预测p(ti|x)与真实值y之间的交叉熵损失Lce(v)来得到领域特定方向;根据调优模型预测p(ti|x)与CLIP的zero-shot预测pzs(wi|x)之间的KL散度得到通用知识的方向。

本文使用Gg = ∇vLkl(v) 和 Gd = ∇vLce(v)分别代表Lkl(v)和Lce(v)的梯度。

解释图3:Gd和Gg之间给关系具有两种可能性:(1)如图3(a):两者之间的夹角小于90度,这表明下游任务中少样本中知识的优化方法与通用知识并不冲突。在这种情况下,我们可以将更新后的梯度方法Gprograd设置为Gd。(2)如图3(b):两者之间的夹角大于90度,这表明下游任务少样本知识与通用知识相冲突。换句话说,优化Gd之后的上下文向量会导致遗忘预训练通用知识。在这种情况下,我们将Gd投影到Gg的正交方向来优化模型进行分类,避免了增加KL损失。

ProGrad的策略为:

其中λ表示通用知识的指导强度。当λ=1表示Gd投影到Gg的正交方向上,而λ=0表示退化为CoOp。

图3(c)表示了本文提出的ProGrad的流水线。与CoOp中使用Gd(特定领域方向)更新上下文向量不同,本文使用Gprograd来优化上下文向量,防止梯度的方向对下游任务中少样本的过拟合。

Experiments

Conclusion

本文指出了现有的针对少样本泛化的提示调优方法的过拟合问题,这些方法严重依赖于早期停止和数据增强。本文提出了一种提示调优方法ProGrad,对每个调优步骤进行规则化处理,不与手工提示的一般知识相冲突。在11个数据集上的小样本分类、基-新泛化、领域泛化和跨数据集迁移实验证明了ProGrad的有效性和高效性。在未来的工作中,我们将探索如何将ProGrad应用于目标检测和分割等其他任务。

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

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

相关文章

【Material UI】Select组件的Customization详解

文章目录 一、Customization的基本概念1. 什么是Customization?2. 为什么要定制化Select组件? 二、定制化InputBase组件1. 定制化InputBase的步骤2. 定制化Select组件3. NativeSelect的定制化 三、Customization的最佳实践1. 使用标准变体(St…

JAVA后端框架【spring】--超详解

什么是spring? spring是一个轻量级的ioc和Aop的一站式java开发框架,简化企业级开发 轻量级:框架体积小(核心模块) IOC IOC:inversion of control 控制反转 把创建对象的控制权反转给spring框架 AOP Aop:面向切面编程 将程…

HarmonyOS( Beta5版)鸿蒙开发:应用冷启动与加载绘制首页

应用冷启动即当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用。 应用冷启动过程大致可分成以下四个阶段:应用进程创建&初始化、Application&Ability初始化、Ability生命周期、加载绘制首页。 加载绘…

常用Pandas操作(笔记整理)

目录 一、常用 1、创建DataFrame(数据导入) 2. 查看数据前⼏⾏(head) 3. 查看数据后⼏⾏(tail) 4. 查看数据基本信息(info) 5. 使⽤ value_counts 计算唯⼀值的频率 6. 描述性…

SpringBoot 3.x+Mybatis Plus多数据源极简配置

1. 创建项目 创建一个名为mybatis-plus-demo的项目,使用MavenJDK17。不会的请看 IntelliJ IDEA快速创建Spring Boot项目,最终项目结构,如下图。 2. 编写代码 根据最终项目结构,从下往上依次列出各个文件的代码。 2.1 pom.xml…

迷雾大陆攻略:VMOS云手机流派辅助和技能加持助力!

在《迷雾大陆》这款游戏中,选择一个合适的流派和技能加点至关重要。使用VMOS云手机,玩家可以享受到专属定制的云手机,内置游戏安装包,无需重新下载安装游戏。同时,VMOS云手机能够24小时不间断运行,自动完成…

STM32(F103ZET6)第二十课:FreeRtos操作系统的应用

目录 调试方式一、任务堆栈溢出检测二、任务管理方式三、二值信号量(任务同步)四、计数信号量五、互斥信号量六、队列 调试方式 问题:传感器数据获取问题,有的DHT11能获取到,有的获取不到 两种方式:调优先级或者进临界区&#xf…

Docker原理及实例

目录 一 Docker简介及部署方法 1.1 Docker简介 1.1.1 什么是docker? 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 2 部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服…

排序算法见解(2)

1.快速排序 1.1基本思想: 快速排序是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以…

如何构建Java SpringBoot文献检索系统:高效管理学术资料,掌握数据库核心技术

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

搭上“跨境电商”便车,中国家居在海外越杀越勇

文|新熔财经 作者|楷楷 从去年至今,已有多家跨境家居企业谋求IPO,包括近期启动IPO辅导的圣奥科技;今年4月正式向港交所递交招股说明书的傲基科技;去年11月启动A股IPO的跨境家居品牌杰西亚,还有…

vulhub xxe靶机通关教程

首先我们进行端口扫描 扫出来端口之后去尝试得出地址为183 发现robots.txt文件 由此我们就得到了两个目录 我们先进入xxe目录&#xff0c;并开始登录抓包 并进入重放器在xml里面构造语句 <!DOCTYPE r [ <!ELEMENT r ANY > <!ENTITY admin SYSTEM "php://filt…

【在Linux世界中追寻伟大的One Piece】传输层协议UDP

目录 1 -> 传输层 2 -> 端口号 2.1 -> 端口号范围划分 2.2 -> 知名端口号 3 -> UDP协议 3.1 -> UDP协议端格式 3.2 -> UDP的特点 3.2.1 -> 面向数据报 3.3 -> UDP的缓冲区 3.4 -> UDP使用注意事项 3.5 -> 基于UDP的应用层协议 1 -…

Vue实战:轻松掌握输入框@功能实现技巧

成员列表 创建 实现成员列表的方式比较简单&#xff0c;其实就是一个列表&#xff0c;一个简单的v-for循环就可以搞定&#xff0c;点击时将当前选择的成员项回调给父组件。 新增一个AtPop.vue文件&#xff1a; <template> <div class"at-pop-index">…

DIFFUSION 系列笔记| Latent Diffusion Model、Stable Diffusion基础概念、数学原理、代码分析、案例展示

目录 Latent Diffusion Model LDM 主要思想 LDM使用示例 LDM Pipeline LDM 中的 UNET 准备时间步 time steps 预处理阶段 pre-process 下采样过程 down sampling 中间处理 mid processing 上采样 upsampling 后处理 post-process LDM Super Resolution Pipeline…

海康视觉二次开发学习笔记8-从回调函数获取结果

回调函数使用方法 通常在方案或流程执行完成后,就可以获取到流程运行的结果.运行一次流程后,我们就可以获取到流程的渲染结果以及流程的数据结果.那么使用通讯或硬件进行外部触发时,如何获取结果呢? 这种时候就要用到回调函数. 1. 注释原获取结果代码 2. 注册回调函数 在构…

【文献及模型、制图分享】数字技术力量下传统村落景观修复演进的特征与机制研究——以岳阳市张谷英村为例(GIS空间分析、点云提取)

文献介绍 景观修复作为弘扬中华优秀传统文化的重要方式&#xff0c;如何在乡村数字化新时代背景下&#xff0c;把握传统村落景观修复的数字赋能&#xff0c;已成为推动中华优秀传统文化创造性转化与创新性发展亟需解决的科学问题。运用深度访谈、GIS空间分析、点云数据提取等方…

html+css+js网页设计 婚庆类型12个页面

htmlcssjs网页设计 婚庆类型12个页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

FreeRTOS 低功耗模式

正如STM32的裸机编程一样&#xff0c;FreeRTOS通用提供了低功耗模式。 前面说的很明白&#xff0c;FreeRTOS的低功耗模式实际上还是基于STM32的低功耗模式指令进入睡眠模式来实现的&#xff0c;并且只要中断来临&#xff0c;就会退出低功耗&#xff0c;FreeRTOS的系统时钟是最底…

猫头虎分享:Python库 Statsmodels 的简介、安装、用法详解入门教程

猫头虎分享&#xff1a;Python库 Statsmodels 的简介、安装、用法详解入门教程 &#x1f42f; 引言 &#x1f3af; 今天猫头虎带您 深入探讨 Statsmodels 这个在数据分析和统计建模领域非常重要的Python库。最近有粉丝在评论区问道&#xff1a;“猫哥&#xff0c;如何使用 St…