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

【持续学习系列(九)】《Continual Learning with Pre-Trained Models: A Survey》

一、论文信息

1 标题

Continual Learning with Pre-Trained Models: A Survey

2 作者

Da-Wei Zhou, Hai-Long Sun, Jingyi Ning, Han-Jia Ye, De-Chuan Zhan

3 研究机构

National Key Laboratory for Novel Software Technology, Nanjing University; School of Artificial Intelligence, Nanjing University

二、主要内容

这篇论文是关于预训练模型(PTM)在持续学习(CL)中的应用的全面调查。持续学习旨在使学习系统能够随着数据的演变吸收新知识,同时克服在学习新知识时对旧知识的灾难性遗忘。论文将现有的方法分为三类:基于提示的方法、基于表示的方法和基于模型混合的方法,并对它们进行了比较分析。

三、相关背景

论文回顾了持续学习领域的研究进展,特别是那些不包含预训练模型的典型算法。同时,论文指出在当前预训练模型时代,基于PTM的CL正成为一个中心研究领域。

Preliminaries of Continual Learning

在论文的“Preliminaries”部分,2.1节定义了持续学习(Continual Learning, CL)的数学问题。持续学习关注的是一系列任务的学习场景,这些任务以数据流的形式出现。每个任务由输入实例和它们的标签组成,目标是让模型在不断学习新任务的同时,不忘记之前学到的知识。

数学上,CL的目标是最小化所有已见任务的期望风险,这可以通过以下公式表示:

f ∗ = arg min ⁡ f ∈ H E ( x , y ) ∼ D 1 ∪ ⋯ ∪ D B I ( y ≠ f ( x ) ) f^* = \argmin_{f \in H} \mathbb{E}_{(x,y) \sim D_1 \cup \dots \cup D_B} I(y \neq f(x)) f=fHargminE(x,y)D1DBI(y=f(x))

其中, H H H 是假设空间 I ( ⋅ ) I(\cdot) I() 是指示函数(如果表达式成立则输出1,否则输出0) D b D_b Db 是第 b b b 个任务的数据分布。这意味着CL模型应该在所有已见任务上表现良好,即不仅要学习新任务,还要记住旧任务。

Variations of CL

在CL的变体中,特别提到了Class-Incremental Learning (CIL)、Task-Incremental Learning (TIL) 和 Domain-Incremental Learning (DIL)。

  • CIL (Class-Incremental Learning): 在CIL中,新任务包含之前未见过的新类别,模型需要学习这些新类别,同时不忘记旧类别。在训练阶段,新任务的数据分布 p ( X b ) p(X_b) p(Xb)与旧任务的数据分布 p ( X b ′ ) p(X_{b'}) p(Xb)不同,且新任务的类别集合 Y b Y_b Yb与旧任务的类别集合 Y b ′ Y_{b'} Yb没有交集( Y b ∩ Y b ′ = ∅ Y_b \cap Y_{b'} = \emptyset YbYb=)。在测试阶段,CIL不提供任务ID(即 b b b)。

  • TIL (Task-Incremental Learning): TIL与CIL类似,但在测试阶段,TIL提供了任务ID(即 b b b),这允许模型在测试时知道每个实例属于哪个任务。

  • DIL (Domain-Incremental Learning): DIL关注的是当新任务的数据分布 p ( X b ) p(X_b) p(Xb)与旧任务的数据分布 p ( X b ′ ) p(X_{b'}) p(Xb)不同时,但新旧任务的类别集合相同( Y b = Y b ′ Y_b = Y_{b'} Yb=Yb)。例如,新任务可能包含同一类别的图像,但存在领域偏移,如卡通画和油画。

这些变体在处理新旧知识的关系和测试阶段的要求上有所不同,但共同目标都是让模型能够适应新任务,同时保持对旧任务的记忆。

四、解决方案

论文提出了三种基于PTM的CL方法:

1、基于提示的方法(Prompt-Based Methods)

基于提示的方法利用预训练模型(PTM)的泛化能力,通过引入轻量级的可训练模块(如提示)来调整模型,以便在不破坏原有泛化能力的前提下适应新任务。

代表工作及其做法:

  1. Visual Prompt Tuning (VPT): VPT通过在预训练模型的输入特征前添加一组可学习的参数(提示),然后通过最小化交叉熵损失来优化这些提示。这样,模型可以在保持预训练权重不变的情况下,通过调整提示来适应新任务。

  2. Prompt Pool: 提示池方法收集一组提示,允许在训练和推理过程中进行实例特定的提示。例如,L2P(Learnable Prompts)通过关键-查询匹配策略来选择与输入特征最相似的提示。

  3. DualPrompt: 这种方法通过在不同层次上附加提示来探索提示的深度,并区分通用提示和专家提示。通用提示用于编码任务通用信息,而专家提示则针对特定任务。

  4. CODA-Prompt: CODA-Prompt提出了一种基于注意力机制的提示构建方法,通过计算输入特征与提示键的注意力分数来创建加权的提示组合。

  5. DAP (Dual Attention Prompt): DAP通过编码提示生成到一个多层感知机(MLP)网络中,生成实例特定的提示。这种方法通过在任务预测的基础上产生权重和偏置,来生成提示。

优缺点总结:

优点:

  • 泛化能力:利用预训练模型的泛化能力,有效地编码任务特定的知识。

  • 参数效率:提示模块的参数量小,适合资源受限的环境。

  • 适应性:通过学习提示池,模型能够进行自适应的知识检索和实例特定的预测。

缺点:

  • 提示选择:提示选择过程可能存在局限性,可能导致遗忘问题。

  • 表示能力限制:固定大小的提示池可能限制了表示能力,而动态增长的提示池可能导致训练和测试不匹配。

  • 比较公平性:某些方法(如DAP)可能依赖于批量信息,这在实际应用中可能导致性能下降。

2、基于表示的方法(Representation-Based Methods)

基于表示的方法直接利用预训练模型的表示能力来构建分类器,通常通过冻结预训练权重并提取类别原型来实现。

代表工作及其做法:

1. SimpleCIL: SimpleCIL通过冻结预训练权重,提取每个类别的中心(原型),并用这些原型作为分类器权重。这种方法简单直观,且在某些情况下表现出色。

2. ADAM (Adaptive Model with Data Augmentation): ADAM通过比较原型分类器和全微调模型的性能,提出使用参数高效的模块(如提示或适配器)来微调预训练模型,并结合预训练和微调模型的特征。

3. RanPAC (Random Projections for Continual Learning): RanPAC使用在线LDA分类器来去除类别间的相关性,并设计额外的随机投影层来投影特征到高维空间,以提高特征的可分性。

优缺点总结:

优点:

  • 直观性:使用类别原型作为分类器权重直观且易于解释。

  • 轻量级更新:主要冻结预训练模型的权重,更新成本较低。

  • 性能:在某些任务上,基于表示的方法表现出与复杂学习系统相当的性能。

缺点:

  • 特征冗余:在构建类别原型时可能忽略模型间的冗余特征。

  • 领域适应性:在涉及多个领域的任务中,可能需要更复杂的模型调整来桥接领域间的差异。

3、基于模型混合的方法(Model Mixture-Based Methods)

基于模型混合的方法在持续学习过程中创建一组模型,并在推理时进行模型融合或合并,以减轻灾难性遗忘。

代表工作及其做法:

1. ESN (Ensemble of Specialized Networks): ESN在面对新任务时初始化并训练新的分类器头,然后在推理时通过投票策略来融合这些分类器的输出。

2. LAE (Learning with Augmented Experts): LAE定义了在线和离线学习协议,在线模型通过交叉熵损失更新,而离线模型通过模型合并(如指数移动平均)来更新。

3. PROOF (Prompt-based Reasoning for Out-of-Domain Generalization): PROOF利用CLIP模型进行跨模态匹配,通过设计一个三级融合模型来处理图像到文本、图像到图像原型和图像到调整文本的任务。

优缺点总结:

优点:

  • 多样性:通过模型融合或合并,可以提高决策的多样性和鲁棒性。

  • 知识共享:模型混合允许在不同阶段之间共享知识,强调知识的重要性。

  • 推理成本:模型融合或合并后的推理成本不会随着模型数量的增加而显著增加。

缺点:

  • 存储成本:需要保存所有历史模型,占用大量内存。

  • 参数选择:决定哪些参数进行合并仍然是一个开放问题,可能导致解决方案的启发式和手工调整。

  • 模型大小:尽管模型融合可以限制模型大小,但合并大型模型的权重也需要额外的计算。

五、实验环节

论文在七个基准数据集上对代表性方法进行了评估,包括CIFAR100、CUB200、ImageNet-R/A、ImageNet-A、ObjectNet、Omnibenchmark和VTAB。实验结果表明,基于表示的方法(如ADAM和RanPAC)表现出更竞争力的性能,而基于提示的方法(如L2P和DualPrompt)的性能较差。

六、进一步探索点:

1. 持续学习与大型语言模型(LLMs)的结合:

  • 当前的研究主要集中在视觉识别领域,但大型语言模型(如GPT)也需要适应不断变化的信息,例如全球事件的更新。持续学习为这些模型提供了一种逐步更新的方法,而不需要全面重新训练,这可以减少资源消耗并提高模型对当前信息的响应性。

2. 超越单一模态识别:

  • 预训练模型的进步已经扩展到多模态模型,如CLIP,这些模型能够处理和响应多种类型的输入。虽然在视觉识别方面已经取得了显著进展,但将研究扩展到多模态任务,如CLIP和其他视觉-语言模型在多模态任务上的持续学习能力,是一个新兴且有前景的领域。

3. 在资源受限的环境下学习:

  • 大型预训练模型在各种任务上表现出色,但它们的调整往往涉及显著的计算成本。在边缘设备上部署这些模型,如智能手机上的个人助理应用,需要本地训练和推理,这要求持续学习算法在计算上更加高效。近期的持续学习研究越来越关注资源受限的场景,这可能会揭示和解决与计算效率相关的挑战。

4. 开发新的基准数据集:

  • 为了有效地挑战预训练模型,需要新的数据集,这些数据集与ImageNet等预训练数据集相比存在显著的领域差距。这样的数据集可以帮助研究者评估模型在面对未知信息时的表现,这是持续学习的本质。

5. 理论上的优势探索:

  • 预训练模型在持续学习中的表现优于从头开始训练的模型,这一现象目前仅在经验层面上得到观察。理论上探索这些现象背后的原因,将有助于理解预训练模型在持续学习中的优势,并可能为实际应用提供新的见解。

这些方向不仅涵盖了技术层面的挑战,如模型的适应性和效率,还包括了理论层面的探索,以及如何将持续学习应用于更广泛的领域,如语言模型和多模态任务。这些研究方向有望推动持续学习领域的发展,并为实际应用提供新的解决方案。

七、总结

论文提供了对基于预训练模型的持续学习的最新进展的全面调查,包括问题定义、基准数据集和评估协议。通过系统地将方法分类并进行深入分析,论文揭示了当前挑战和潜在的未来研究方向,旨在推动持续学习领域的进一步发展。

相关文章:

【持续学习系列(九)】《Continual Learning with Pre-Trained Models: A Survey》

一、论文信息 1 标题 Continual Learning with Pre-Trained Models: A Survey 2 作者 Da-Wei Zhou, Hai-Long Sun, Jingyi Ning, Han-Jia Ye, De-Chuan Zhan 3 研究机构 National Key Laboratory for Novel Software Technology, Nanjing University; School of Artifici…...

redis的AOF

redis 提供了两种持久化方式—— RDB(Redis DataBase) 和 AOF(Append Only File) ,可以将 Redis 在内存中的数据库状态保存到磁盘里。 RDB快照并不是很可靠。如果服务器突然宕机了,最新的数据就会丢失。除了 RDB 持久化功能之外,Redis 还提供…...

TDengine 签约杭州云润,助力某大型水表企业时序数据处理

在智慧电表水表的数据采集和存储过程中,时序数据处理成为一个重要的问题。由于电表水表数据具有时间序列的特点,传统的数据库和数据处理方式往往难以满足大规模数据的高速采集、存储和实时分析需求。因此,越来越多的企业开始进行数据架构改造…...

迷宫(蓝桥杯省赛C/C++)

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角&am…...

Elastic Search

ES 与关系型数据库 MySQL 的数据参考关系 MySQLESdatabaseindextabletyperowdocumentcolumnfieldschemamappingindexdefaultsqlQuery DSL E-SQLES 安装启动 docker network ls | grep elastic || docker network create elastic version=8.3.3 docker run -d \ --name elas…...

elementUI中el-tree组件单选没有复选框时,选中、current-node-key高亮、刷新后保留展开状态功能的实现

目录 一、代码实现1. 属性了解 ([更多](https://element.eleme.cn/#/zh-CN/component/tree))2. 实现步骤3.代码示例 二、 效果图 一、代码实现 1. 属性了解 (更多) node-key 每个树节点用来作为唯一标识的属性,整棵树…...

Ubuntu上开启FTP服务教程

在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和…...

C语言数组指针详解与应用

在C语言中,指针是一种特殊的变量类型,存储了其他变量的地址。数组指针则是指向数组的指针,它提供了更灵活的方式处理数组。本篇博客将详细介绍指针和数组指针的概念,并通过实例演示如何使用指针对数组进行初始化、修改和遍历。 什…...

计算机服务器中了DevicData勒索病毒如何解密,DevicData勒索病毒解密流程

网络数据安全一直是企业关心的主要话题,近期,云天数据恢复中心接到很多企业的求助,企业的计算机服务器遭到了DevicData勒索病毒攻击,导致企业计算机服务器瘫痪无法正常工作,严重影响了工作业务开展。经过云天数据恢复中…...

面试150 位1的个数 位运算

Problem: 191. 位1的个数 文章目录 思路复杂度Code 思路 👨‍🏫 参考 复杂度 Code public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n){int res 0;while (n ! 0){res 1;n & n - 1;// 把最后…...

Mysql的BufferPool

Mysql的BufferPool Mysql是一个存储数据到磁盘的进程,但是磁盘的速度难以与CPU相比,所以InnoDB存储引擎在处理客户端的请求时,当需要访问某个页的数据时,就会把完整的页的数据全部加载到内存中。将整个页加载到内存中后就可以进行…...

嵌入式中物联网核心技术有哪些

IoT军事技术 物联网军事技术是一项利用IoT感知技术在军事活动中获取人、装备、作战环境状态的信息特征,从而实现在军事活动中做出智能化决策和控制局势的军事方针。 据悉,早于2012年10月军方联合了社会研究机构合力创建了“军事物联网联合实验室”。 …...

C语言入门到精通之练习36:一个最优美的图案(在TC中实现)。

题目:一个最优美的图案(在TC中实现)。 程序分析:无。 程序源代码: 实例 // Created by www.erdangjiade.com on 15/11/9. //#include "graphics.h" #include "math.h" #include "dos.h&…...

【Nginx】nginx入门

文章目录 一、Web服务器二、Nginx三、Nginx的作用Web服务器正向代理反向代理 四、CentOS上安装Nginx(以CentOS 7.9为例) 一、Web服务器 Web 服务器,一般是指“网站服务器”,是指驻留于互联网上某种类型计算机的程序。Web 服务器可以向 Web 浏览器等客户…...

【数据结构】并查集(路径压缩)

文章目录 并查集1.朴素版本2.路径压缩3.按秩合并4.启发式合并5.练习题 并查集 1.朴素版本 1. 并查集解决的是连通块的问题,常见操作有,判断两个元素是否在同一个连通块当中,两个非同一连通块的元素合并到一个连通块当中。 并查集和堆的结构…...

FreeMark ${r‘原样输出‘} ${r“原样输出“}

FreeMark ${r’原样输出’} ${r"原样输出"} 在${}使用 小写字母r接两个单引号或两个双引号包裹的内容可以原样输出, 字母r只能用小写 ${r想要原样输出的内容} --用了单引号${r"想要原样输出的内容"} --用了双引号 例子: ${r"${r}"} 得到 ${r…...

nginx初学者指南

一、启动、停止和重新加载配置 前提:先要启动nginx 在Windows上启动nginx的步骤如下: 1. 下载并安装nginx。可以从nginx官网下载适合自己操作系统的版本,一般是zip压缩包,解压到指定目录中。 2. 进入nginx的安装目录&#xff…...

第二十五天| 216.组合总和III、17.电话号码的字母组合

Leetcode 216.组合总和III 题目链接:216 组合总和III 题干:找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#…...

HTML+CSS:全景轮播

效果演示 实现了一个简单的网页布局,其中包含了五个不同的盒子,每个盒子都有一个不同的背景图片,并且它们之间有一些间距。当鼠标悬停在某个盒子上时,它的背景图片会变暗,并且文字会变成白色。这些盒子和按钮都被放在一…...

【WPF.NET开发】​优化性能:布局和设计

本文内容 WPF 应用程序的设计可能会在计算布局和验证对象引用时产生不必要的开销,从而影响性能。 对象的构造会影响应用程序的性能特征,在运行时更是如此。本主题提供这些方面的性能改进建议。 Layout “布局过程”一词描述了测量和排列 Panel&#x…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...

基于Uniapp的HarmonyOS 5.0体育应用开发攻略

一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟

众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...

CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found

Nginx1.24编译时,报LuaJIT2.x错误, configuring additional modules adding module in /www/server/nginx/src/ngx_devel_kit ngx_devel_kit was configured adding module in /www/server/nginx/src/lua_nginx_module checking for LuaJIT 2.x ... not…...

C/Python/Go示例 | Socket Programing与RPC

Socket Programming介绍 Computer networking这个领域围绕着两台电脑或者同一台电脑内的不同进程之间的数据传输和信息交流,会涉及到许多有意思的话题,诸如怎么确保对方能收到信息,怎么应对数据丢失、被污染或者顺序混乱,怎么提高…...