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增加的新关键字和新语法特性.其 ...
随机推荐
- 白鲸开源 X SelectDB 金融大数据联合解决方案公布!从源头解决大数据开发挑战
业务挑战与痛点 随着互联网技术的发展.云计算技术的成熟.人工智能技术的兴起和数字化经济的崛起,数据已成为企业的核心资产.在金融行业中,数字化已成为了支撑各类业务场景的核心力量,包括个人理财.企业融资. ...
- Git/Github的基本操作
由于我之前已经安装好了Git,然后这里就不再叙述之前的相关创建账户的步骤了.直接记录一下如何在本地创建一个项目,并上传到github上面. 1.打开github官网,点击New Repository, ...
- 告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧 本文介绍了五种加速在国内访问和下载 GitHub 的方法,包括:使用 Gitee 平台加速克隆代码.修改 hosts 文件.使用油猴 ...
- 2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,nums 中所有下标均未标记。 从第1秒到第m秒,每秒可以选择以下四种操
2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始.初始时,nums 中所有下标均未标记. 从第1秒到第m秒,每秒可以选择以下四种操 ...
- springcloud集成grpc(二)
码云地址:https://gitee.com/lpxs/lp-springcloud.git 有问题可以多沟通:136358344@qq.com. 上一章内容介绍了springboot2集成net.d ...
- Atcoder ABC299 E-G
Atcoder ABC299 E-G E - Nearest Black Vertex 链接: E - Nearest Black Vertex (atcoder.jp) 简要题意: 问题陈述 给你一 ...
- Go进程内存占用那些事(一)
为什么要探究这个问题? 作为基础设施供应商,自己的服务占用多少内存,为什么要占用这么多内存,需要能说的清楚.作为一个云计算开发,这点问题都弄不清楚,说不过去. § 0x01 范围 讨论的只限于Linu ...
- Mybatis Log 插件
目前的idea插件已经开始收费---找了一个免费的插件安装到idea中重启一下就可以了 百度网盘提取码:sjc8
- 使用SiliconCloud快速体验SimpleRAG(手把手教程)
SiliconCloud介绍 SiliconCloud 基于优秀的开源基础模型,提供高性价比的 GenAI 服务. 不同于多数大模型云服务平台只提供自家大模型 API,SiliconCloud上架了包 ...
- 自制 ShareLaTeX 镜像
Overleaf 官方的 sharelatex 镜像的 TeX Live 版本可能较旧,无法安装最新的宏包,并且往往只包含了少量的基础宏包.为了方便使用,我们可以自己构建一个使用最新 TeX Live ...