DPaRL:耶鲁+AWS出品,开放世界持续学习场景的新解法 | ECCV'24
来源:晓飞的算法工程笔记 公众号,转载请注明出处
论文: Open-World Dynamic Prompt and Continual Visual Representation Learning
创新点
- 在开放世界中建立了一种新的持续视觉表征学习的实用设置。
- 提出了一种简单而强大的方法,动态提示与表征学习器(
DPaRL
,Dynamic Prompt and Representation Learner
),该方法在有效更新区分性表征主干网络的同时动态生成提示。这一增强提高了在测试时对未见开放世界类别的泛化能力。 - 在所提议的实用设置中,
DPaRL
表现超越了最先进的持续学习方法,无论是无回放方法还是基于回放的方法。
内容概述
开放世界本质上是动态的,特点是不断演变的概念和分布。在这种动态开放世界环境中,持续学习(CL
)带来了一个重大挑战,即如何有效地泛化到未见的测试时类。为了解决这一挑战,论文提出了一种新的、针对开放世界视觉表示学习的实际CL
设置。在这一设置中,后续数据流系统性地引入与先前训练阶段中所见类不相交的新类,同时与未见的测试类保持区别。
为此,论文提出了动态提示和表示学习器(DPaRL
),这是一种简单但有效的基于提示的持续学习(PCL
)方法。DPaRL
学习生成用于推理的动态提示,而不是依赖于之前PCL
方法中的静态提示池。此外,DPaRL
在每个训练阶段共同学习动态提示生成和区分性表示,而以前的PCL
方法仅在整个过程中细化提示学习。
实验结果表明,方法的优越性,在公认的开放世界图像检索基准上,DPaRL
在Recall@1
性能上平均提高了4.7%
,超越了最新的先进方法。
Dynamic Prompt and Representation Learner (DPaRL)
封闭世界与开发世界设置
视觉表示学习的两个基本设置是封闭世界和开放世界范式。在封闭世界设置中(如图 (a/b) 所示),持续训练和测试数据的类别是完全相同的。而开放世界设置(如图 (c/d) 所示)中,持续训练和测试类别完全不同,因此需要模型学习能对未见过的概念进行概括的表示。
基于提示的持续学习
基于提示的持续学习(PCL
)方法使用预训练的视觉变换器(ViT
)作为封闭世界图像分类的区分性主干,如图 (a) 所示。这些方法创建了一个包含多个提示token
的提示池,在训练期间仅更新该池中的可学习参数。在推理时,学习到的提示池是静态的,PCL
方法从该池中选择tokens
,输入到多个ViT
主干层进行预测。
论文的方法也采用了这种PCL
范式,但在训练和测试类别不相交的开放世界设置中,现有的静态PCL
提示池设计存在局限性,即测试类别内部和外部的距离分布之间的分离有限。
为此,论文引入一个动态提示生成(DPG
)网络替代静态提示池,通过联合动态提示和表示学习范式,增强了区分性表示主干模型的能力,更有效地对开放世界概念进行概括。
动态提示生成(DPG
)网络
动态阶段
token
为了保留动态提示生成(DPG
)过程中每个持续学习阶段的信息,引入了阶段token
\(S\) 。在训练阶段 \(t\) ,训练一个阶段token
\(S_{t}\),同时以先进先出(FIFO
)队列的方式冻结之前的阶段token
\(S_{t - (q - 1)} \sim S_{t-1}\) ,其中 \(q\) 是最大队列大小,设置为5
。这确保了来自之前阶段的知识保持不变,同时阶段token
的总数受到队列大小的限制,而不会随着阶段数的增加而线性扩展。随后,在DPG
网络中,通过自注意力模块进行阶段间token
与实例图像token
之间信息的融合。
映射函数
DPG
生成一个 [CLS
]token
,以动态获取任务特定的高级信息。然而,它的大小与主干模型所需的提示tokens
不同。为了解决这个问题,需要引入一个映射函数来连接 [CLS
]token
与提示tokens
。一种直接的方法是使用单个线性层进行维度转换。然而,这种方法会引入过多的额外参数,导致过度参数化,也可能导致高度压缩的 [CLS
]token
信息出现过拟合。
为了解决这个问题,受到LoRA
的启发,对权重参数施加约束 \(W=AB^T \in \mathbb{R}^{C_{in} \times C_{out}}\) ,其中 \(A \in \mathbb{R}^{C_{in} \times R}\) , \(B \in \mathbb{R}^{C_{out} \times R}\) ,确保最大秩为 \(R< \min(C_{in}, C_{out})\) 。此外,对该低秩线性映射函数应用了Dropout
和LayerNorm
,这进一步有助于避免过拟合并稳定训练。
在这个专用映射函数和预训练神经网络的帮助下,提示 \(P\) 是从输入图像 \(I\) 和阶段tokens
\(S_{t, q} := S_{t - (q - 1)} \sim S_{t}\) 动态获得的:
P = Mapping(DPG\mbox{-}Network([S_{t, q}; \hspace{1mm} I])).
\label{eq:propmt_generation}
\end{equation}
\]
将 \(P\) 重新调整为大小为 \(N_p \times C \times L\) ,其中 \(N_p\) 是提示的数量, \(C\) 是通道维度, \(L\) 表示提示应用于主干模型的层数。遵循之前的PCL
方法中的提示技术,生成的提示将插入到ViT
主干中的前 \(L\) 层。第 \(l\) 层的提示 \(P_l \in \mathbb{R}^{N \times C}\) 被划分为 \(\{P_{l,k}, P_{l,v}\}\in \mathbb{R}^{\frac{N}{2} \times C}\) ,作为前缀添加到注意力机制中键和值的输入token
嵌入中。
最终,多头自注意力可表示为:
h_i = Attention(X_lW_q^i, \hspace{1mm} [P_{k};X]W_k^i, \hspace{1mm} [P_{v};X]W_v^i).
\end{equation}
\]
联合动态提示与表示学习
与之前冻结主干模型的PCL
方法不同,DPaRL
以联合学习动态提示生成和带有鉴别性表示学习的主干模型。这种方法旨在最大化整个管道的能力,以整合旧阶段概念和新概念,从而封装多样的语义,帮助在开放世界中对未见类别和未知领域转移的泛化。
利用参数高效的微调技术,DPaRL
成功地最大化了准确性性能,同时最小化了灾难性遗忘。需要注意的是,用于提示生成的DPG
编码器权重(管道的左侧)是冻结的,而可学习的参数包括阶段tokens
、映射函数和表示损失函数中的权重,以及鉴别性表示主干权重。
主要实验
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
DPaRL:耶鲁+AWS出品,开放世界持续学习场景的新解法 | ECCV'24的更多相关文章
- 【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
参考文章: 深度剖析知识增强语义表示模型--ERNIE_财神Childe的博客-CSDN博客_ernie模型 ERNIE_ERNIE开源开发套件_飞桨 https://github.com/Pad ...
- CVPR2021 | 开放世界的目标检测
本文将介绍一篇很有意思的论文,该方向比较新,故本文保留了较多论文中的设计思路,背景知识等相关内容. 前言: 人类具有识别环境中未知对象实例的本能.当相应的知识最终可用时,对这些未知实例的内在好奇心 ...
- Three.js 实现3D开放世界小游戏:阿狸的多元宇宙 🦊
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 2545光年之外的开普勒1028星系,有一颗色彩斑斓的宜居星球 ,星际移民 ...
- GDC2016 执着于光影表现的【全境封锁】的开放世界渲染
执着于光影表现[全境封锁]的开放世界渲染 Snowdrop(雪莲花)引擎的全局照明技术介绍 补上原文链接:http://game.watch.impress.co.jp/docs/news/201 ...
- 【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。
[SIGGRAPH 2015][巫师3 狂猎 The Witcher 3: Wild Hunt ]顶级的开放世界游戏的实现技术 作者:西川善司 日文链接 http://www.4gamer.net/ ...
- Computational Network Toolkit (CNTK) 是微软出品的开源深度学习工具包
Computational Network Toolkit (CNTK) 是微软出品的开源深度学习工具包 用 CNTK 搞深度学习 (一) 入门 Computational Network Toolk ...
- 《HTML5秘籍》学习总结--2016年7月24日
前段时间因为工作中看到同事使用了一个type为date的<input>元素,直接就形成了一个日期选择的表单控件,当时觉得很神奇,以为是什么插件,就问了同事是怎么做出来的,同事告诉我这是HT ...
- Web开发者应当开始学习HTML5的新功能
据国外媒体报道,谷歌开发者业务部门高管马克·皮尔格雷姆(Mark Pilgrim)在WWW2010会议上表示,尽管还需要进一步完善,HTML5已经获得大多数平台支持,适合完成大多数任务. 但并非所有人 ...
- 可能是最早的学习Android N新特性的文章
可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...
- 从零开始一起学习SLAM | C++新特性要不要学?
LAM,C++编程是必备技能.不过,大家在学校里学习的书本一般比较老,主要还是C++98那些老一套. 本文所谓的C++新特性是指C++11及其以后的C++14.C++17增加的新关键字和新语法特性.其 ...
随机推荐
- SMU Autumn 2023 Round 3(Div.1)
SMU Autumn 2023 Round 3(Div.1) A. Find The Array 要满足"b数组内任意一个元素满足可以被数组两边的元素整除"这个条件,我们很容易想到 ...
- 【牛客刷题】HJ5 进制转换
题目链接 基本上能用最简单代码实现的,就不要考虑的太复杂: package main import "fmt" func main() { a := 0 fmt.Scanf(&qu ...
- Python开发中,日期时间的相关处理
在Python开发中,日期和时间处理是一个常见的需求.Python提供了多种模块和方法来处理日期和时间,以下是一些常用的模块和操作.通过介绍一些系统的Python类库以及第三方的类库,我们可以快速的实 ...
- 关于Protobuf在使用中的一些注意点
Protobuf是谷歌旗下的一款二进制序列化协议 协议的编写 在项目中新建一个xxx.proto文件 文件的格式 第一行写protobuf的版本 syntax = "proto3" ...
- PowerShell 使用
Practice 常用命令 vim $PROFILE # 编辑配置文件 Get-ChildItem *> $null # 抛弃所有输出 whoami Remove-Item -Recurse - ...
- vue3+ts Axios封装与使用
创建完vue3 项目后 新版本:动态控制是否显示加载动画.是否需要判断重复请求.https://www.cnblogs.com/lovejielive/p/17676856.html 一,安装Axio ...
- uni-app 商场样式
基于ColorUI-UniApp css样式开发的商城基础模 模板基础功能实现 1.首页今日推荐 点击 会商品加一 2.分类 页面 左右列表联动 3.购物车 商品加减 4.我的 订单管理 账号密码登 ...
- kafka部署配置及常用命令总结(运维必备)
kafka部署配置及常用命令总结 部署配置 1.准备部署包(自行下载) 2.配置zk vim conf/zoo.cfg dataDir=/data/vfan/zk/data/ dataLogDir=/ ...
- docker高级篇-docker-compose容器编排介绍及实战
Docker-compose是什么?能干嘛?解决了哪些痛点? 是什么? Docker-compose是Docker官方推出 的一个工具软件,可以管理多个Docker容器组成的一个应用.你需要编写一个一 ...
- Transforms的使用
Transform的作用 把图片经过Transforms的一些函数之后就会对图片进行一些变化.比如,resize就是改变其大小,totensor就是把图片PIL或者numpy类型转化为Tensor类型 ...