当前位置: 首页 > news >正文

DePT: Decoupled Prompt Tuning

当前的问题:Base-New Tradeoff(BNT)困境

现有的提示调优方法通常无法摆脱Base-New Tradeoff(BNT)困境,即调优/调整的模型对基本任务的泛化效果越好,对新任务的泛化效果就越差(包含不可见的类),反之新任务的泛化效果越好,所需要的代价便是基本任务的泛化效果越差。
作者最终达到的结果便是:Base和New的准确率上同时得到提升
image.png

什么原因导致了Base-New Tradeoff(BNT)

Base和New联合训练Oracle

为了训练一个近乎BNT问题的模型,作者使用base task τ b a s e \tau_{base} τbase和new task τ n e w \tau_{new} τnew来联合派生模型Oracle。按我理解,应该是Oracle这个模型利用上了base和new上的数据,所以自然而然地不存在上述的Base-New Tradeoff(BNT)问题。

通道重要性(CI)的计算

r ( r = 1 , … , d ) r(r=1,\ldots,d) r(r=1,,d)个通道重要性计算如下:
image.png
其中 f j , e ∗ f_j,e_* fj,e分别为 x j x_j xj学习到的 d d d维图像和文本特征。 N N N为任务中的示例数。ReLU[1]用于避免分母等于0。

将Oracle与CoOp进行比较

image.png
在(a)©中, x x x轴是对分别base task τ b a s e \tau_{base} τbase和new task τ n e w \tau_{new} τnew根据通道重要性(CI)进行排序后的索引( x x x越小,CI得分越低, x x x越大,CI得分越高), y y y轴即为通道重要性(CI)大小。从图中可以看出,oracle模型得到的base task和new task的CI分布比CoOp模型得到的CI分布具有更大的一致性
在(a)©中,oracle的准确率确实比CoOp高。

提出的idea

oracle模型在很大程度上优于CoOp,这表明oracle模型产生的大多数特征通道包含任务共享知识,这对新任务的泛化很有价值。简而言之,在提示调优之后,绝大多数学习到的特征通道被特定于基础的知识所占据,导致对新任务很重要的任务共享知识的崩溃(或灾难性遗忘)——我们在本工作中将其称为通道偏差问题。
我们能否在特征通道中同时保留特定于base-task共享的知识,以克服提示调优中的BNT问题?
image.png
个人理解:既然BNT问题与CI分布紧密相关,那么我们接下来的改进可以围绕着特征通道这一角度着手。

解决办法

image.png
解决办法非常简单,仅仅只是加了一个即插即用(Plug-and-Play)的CAT Head。

CAT Head

对于Image Encoder和Text Encoder的输出 S i m g = { f j } j = 1 J , S t e x t = { e j } j = 1 J S_{img}=\{\bm f_j\}^J_{j=1},S_{text}=\{e_j\}_{j=1}^J Simg={fj}j=1J,Stext={ej}j=1J,CAT Head利用通道转换层(cwT)将Simg和Stext转换为新的特征空间,即
image.png
类似地,得到 S i m g ′ = { f j ′ } j = 1 J , S t e x t ′ = { e j ′ } j = 1 J S'_{img}=\{\bm f'_j\}^J_{j=1},S'_{text}=\{e'_j\}_{j=1}^J Simg={fj}j=1J,Stext={ej}j=1J
再将 S i m g ′ , S t e x t ′ S'_{img},S'_{text} Simg,Stext拼接在一起,即 S ∪ = S i m g ′ ∪ S t e x t ′ = { s j } j = 1 2 J , Y ∪ = { y j } j = 1 2 J S_{\cup}=S'_{img}\cup S'_{text}=\{s_j\}^{2J}_{j=1}, \mathcal{Y}_ {\cup}=\{\bm y_j\}^{2J}_{j=1} S=SimgStext={sj}j=12J,Y={yj}j=12J
其中 y j ∈ R M \bm y_j\in \mathbb{R}^M yjRM s j s_j sj的on-hot标签。
对于每一对 ( s , y ) (s, \bm y) (s,y), CAT头最小化以下交叉熵损失:
L CAT = − ∑ i y i log P CAT ( c i ∣ x ) \mathcal{L}_{\text{CAT}}= -\sum_{i}{\bm y_i \text{log}\mathcal{P}_{\text{CAT}}(\bm c_i|\bm x)} LCAT=iyilogPCAT(cix)
其中
image.png

总损失与推理

总损失如下:
image.png
Base与New上的推理
image.png
对于基本任务,我们的CAT头直接将测试样例的图像特征作为输入,使用线性分类器预测分布内类标签。
image.png
在推理时,使用标准ITM头来实现对原始特征空间中新任务的zero-shot泛化/预测。

参考资料

论文下载(2024 CVPR)

https://arxiv.org/abs/2309.07439
image.png

代码地址

https://github.com/Koorye/DePT

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3. 数据结构——栈的操作实现(考研专业课学习)
  • [算法题]01 矩阵
  • MybatisPlus使用指南
  • git上传本地代码到新建分支
  • 00067期 matlab中的asv文件
  • Vue 3 中的观察者效果:从 watch 到 watchEffect、watchSyncEffect 和 watchPostEffect
  • 超全面!Midjourney用户手册中文版!详解模型、命令、参数与高级用法
  • MySQL 数据库经验总结
  • HttpUtils工具类(一)常见的HttpUtils工具类及如何自定义java的http连接池
  • 【机器学习】CNN的基本架构模块
  • 观察者模式和MQ是什么关系
  • Python利用openpyxl复制Excel文件且保留样式—另存为副本(附完整代码)
  • 零售业务产品系统应用架构设计(二)
  • 一伴app相亲交友源码开发
  • 新手常见错误:java.lang.NumberFormatException: For input string: “xxxx“
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2017前端实习生面试总结
  • co.js - 让异步代码同步化
  • Docker容器管理
  • Git 使用集
  • Java小白进阶笔记(3)-初级面向对象
  • JSDuck 与 AngularJS 融合技巧
  • overflow: hidden IE7无效
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP的Ev教程三(Periodic watcher)
  • Vultr 教程目录
  • 大型网站性能监测、分析与优化常见问题QA
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 好的网址,关于.net 4.0 ,vs 2010
  • 机器学习 vs. 深度学习
  • -- 数据结构 顺序表 --Java
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 延迟脚本的方式
  • 一个项目push到多个远程Git仓库
  • 自动记录MySQL慢查询快照脚本
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ## 1.3.Git命令
  • (1)STL算法之遍历容器
  • (14)Hive调优——合并小文件
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (源码分析)springsecurity认证授权
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .cn根服务器被攻击之后
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET面试题(二)
  • .NET微信公众号开发-2.0创建自定义菜单
  • .py文件应该怎样打开?
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成