【持续学习系列(九)】《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. 理论上的优势探索:

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

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

七、总结

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

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

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

相关文章

C#,雅各布斯塔尔—卢卡斯(Jacobsthal Lucas Number)的算法与源代码

1 雅各布斯塔尔序列 雅各布斯塔尔序列是一个与斐波那契序列类似的加法序列,由递归关系JnJn-12Jn-2定义,初始项J00,J11。序列中的一个数字称为雅可布沙尔数。它们是卢卡斯序列Un(P,Q)的一种特殊类型&#x…

股票交易

这里尝试利用单调队列优化,这里不好直接用单调队列的原因是因为(以买为例)\(-ap[i]*k_1\)不是只与下标有关的 所以解决方案一:我们将下标变成一个整体,再把后面的代价换掉然后将与下标无关的直接提出去 解决方案二:利用“蚯蚓”那…

<设计模式>单例模式懒汉和饿汉

目录 一、单例模式概述 二、懒汉模式和饿汉模式 1.饿汉模式 1.1代码实现 1.2实现细节 1.3模式优劣 2.懒汉模式 2.1代码实现 2.2实现细节 2.3模式优劣 三、多线程下的线程安全问题 1.懒汉和饿汉线程安全问题分析 1.1安全的饿汉模式 1.2不安全的懒汉模式 2.懒汉线程…

YOLOv5算法进阶改进(15)— 引入密集连接卷积网络DenseNet

前言:Hello大家好,我是小哥谈。DenseNet(密集连接卷积网络)是一种深度学习神经网络架构,它在2017年由Gao Huang等人提出。DenseNet的核心思想是通过密集连接(dense connection)来促进信息的流动和共享。在传统的卷积神经网络中,每个层的输入只来自于前一层的输出。而在…

Linux下编译EtherCAT主站SOEM-1.4.1

目录 1、SOEM下载 2、CMake安装​​​​​​ 3、编译 环境:Ubuntu1604. 1、SOEM下载 最新版为SOEM-v1.4.0,可以从github下载地址: https://github.com/OpenEtherCATsociety/SOEM 2、CMake安装​​​​​​ 3、编译 解压文件&#xff0c…

BeanUtils.copyProperties()用法总结

BeanUtils.copyProperties()用法总结 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,今天我们来谈一谈在Java开发中常用的Bean属性拷贝工具——BeanUtils.copyProperties(),并总结其用法和注意事项。 1. 什么是BeanUt…

WebSocket学习笔记以及用户与客服聊天案例简单实现(springboot+vue)

一:介绍: 二:http协议与websocket对比: 三:websocket协议: 四:实现: 4.1客户端: 4.2服务端: 五:案例: 环境:做一个书店…

分布式任务调度框架XXL-JOB详解

分布式任务调度 概述 场景: 如12306网站根据不同车次设置放票时间点,商品成功发货后向客户发送短信提醒等任务,某财务系统需要在每天上午10天前统计前一天的账单数据 任务的调度是指系统为了完成特定业务,基于给定的时间点,时间间隔&#…

bat脚本 分片抓包并上传到ftp

在批处理脚本中实现分片抓包并上传到FTP服务器是一项比较复杂的任务,因为批处理脚本本身并不直接支持文件分片或FTP上传。但是,你可以结合使用一些外部工具和命令来实现这一功能。 首先,你需要一个用于分片的工具。WinPcap提供了一些工具和库…

【前端】弹框组件

vue2项目&#xff0c;封装的第一版弹框组件使用基于elment-ui 在vue同级创建components/dialog文件夹 里面放paramDialog.vue 父组件引入 dialogVisible要是改变量名&#xff0c;这个也记得改 <ParamDialog :title"title" :dialogVisible.sync"dialogVisibl…

onnx转换为rknn置信度大于1,图像出现乱框问题解决

前言 环境介绍&#xff1a; 1.编译环境 Ubuntu 18.04.5 LTS 2.RKNN版本 py3.8-rknn2-1.4.0 3.单板 迅为itop-3568开发板 一、现象 采用yolov5训练并将pt转换为onnx&#xff0c;再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn出现置信度大于1&#xff0c;并且图像乱框问题…

C#下“Bitmap”转换为“BitmapImage”,“Bitmap”转换成“BitmapSource”

在实际开发中时常遇到“Bitmap”转换为“BitmapImage”&#xff0c;“Bitmap”转换成“BitmapSource”格式转化的开发&#xff0c;特此记录。 1、“Bitmap”转换为“BitmapImage” 要将 System.Drawing.Bitmap 转换为 System.Windows.Media.Imaging.BitmapImage&#xff0c;我…

【服务器】RAID(独立磁盘冗余阵列)

RAID&#xff08;独立磁盘冗余阵列&#xff09; 一、RAID的介绍二、RAID的分类#2-1 RAID 02-2 RAID 1#2-3 RAID 32-4 RAID 52-5 RAID 62-6 RAID 10(先做镜像&#xff0c;再做条带化)2-7 RAID 01&#xff08;先做条带&#xff0c;再做镜像&#xff09;2-8 RAID比较 三、磁盘阵列…

代码随想录刷题第24天

今天正式进入回溯。看了看文章介绍&#xff0c;回溯并不是很高效的算法&#xff0c;本质上是穷举操作。代码形式较为固定。 第一题为组合问题&#xff0c;用树形结构模拟&#xff0c;利用回溯算法三部曲&#xff0c;确定终止条件与单层逻辑&#xff0c;写出如下代码。 不难发现…

负载均衡下webshell连接

目录 一、什么是负载均衡 分类 负载均衡算法 分类介绍 分类 均衡技术 主要应用 安装docker-compose 2.1上传的文件丢失 2.2 命令执行时的漂移 2.3 大工具投放失败 2.4 内网穿透工具失效 3.一些解决方案 总结 一、什么是负载均衡 负载均衡&#xff08;Load Balanc…

网络安全挑战:威胁建模的应对策略与实践

在数字威胁不断演变的时代&#xff0c;了解和降低网络安全风险对各种规模的组织都至关重要。威胁建模作为安全领域的一个关键流程&#xff0c;提供了一种识别、评估和应对潜在安全威胁的结构化方法。本文将深入探讨威胁建模的复杂性&#xff0c;探索其机制、方法、实际应用、优…

python爬虫5

1.selenium交互 无页面浏览器速度更快 #配置好的自己不用管 from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options Options()chrome_options.add_argument(‐‐headless)chrome_options.add_argument(‐‐disable‐gpu)# path…

109.乐理基础-五线谱-五线谱的附点、休止符、连线、延音线

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;五线谱的拍号、音符与写法-CSDN博客 上一个内容里练习的答案&#xff1a; 附点&#xff1a;写在符头的右方&#xff0c;附点的作用与简谱一样&#xff0c;延长前面音符本身时值的一半&#xff08;附点&#xff09;…

Hadoop3.x基础(3)- Yarn

来源&#xff1a;B站尚硅谷 目录 Yarn资源调度器Yarn基础架构Yarn工作机制作业提交全过程Yarn调度器和调度算法先进先出调度器&#xff08;FIFO&#xff09;容量调度器&#xff08;Capacity Scheduler&#xff09;公平调度器&#xff08;Fair Scheduler&#xff09; Yarn常用命…

回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&…