【论文笔记】基于预训练模型的持续学习(Continual Learning)(增量学习,Incremental Learning)

论文链接:Continual Learning with Pre-Trained Models: A Survey

代码链接:Github: LAMDA-PILOT

持续学习(Continual Learning, CL)旨在使模型在学习新知识的同时能够保留原来的知识信息了,然而现实任务中,模型并不能很好地保留原始信息,这也就是常说的灾害性遗忘(Catastrophic forgetting)问题。传统的CL方法需要从头开始训练模型(从随机初始化参数开始训练),目前基于大规模数据训练得到的预训练模型为持续学习带来了新的研究思路,预训练模型鲁棒的泛化性给予新任务学习较为成熟的参数,也因此基于预训练模型的CL方法已逐渐成为研究热点。

作者将基于预训练模型的CL方法分为三种:Prompt-based方法、representation-based方法和model mixed-based方法

在这里插入图片描述

1. Prompt-based 方法

在使用模型全局tuning的方式适应下游任务时,预训练模型的泛化性能会被严重削弱,因此Prompt-based方法在保持预训练模型参数权重不变的条件下, 增加额外可学习的Prompt tuning 模块来实现对下游任务的泛化,这样就能较好地保持原模型的泛化性能。

Vison Prompt Tuning(VPT)在feature patch中串联了一组可学习的参数P,然后使用最小化交叉熵损失的方式将特定任务的信息嵌入到预训练模型中。
在这里插入图片描述

VPT这种方式虽然可以较好地保留模型的泛化性,但是,在面对新的任务时,以往的Prompt模块的知识同样被覆盖,依旧遭遇了灾难性以往问题。为此,有学者提出了Prompt Pool的概念,设计了Prompt模块的集合,即P={P1,P2,…,Pm}(m表示该Pool的最大尺寸)。Prompt Pool的思想有效避免了单一Prompt的问题,但是Pool的设计使得其需要进行Prompt Selection操作,也就是需要将特定任务与其对应的Prompt模块进行索引匹配。

L2P算法是一种较为常用的Prompt selection算法,该算法设计了一种Key-Query的Prompt匹配方法,也就是为每一个Prompt提供一个可学习的索引键k,即P={(k1,P1),(k2,P2),…,(km,Pm)。L2P利用预训练模型将输入特征编码到Key对用的嵌入空间中,然后利用余弦距离损失函数在已有的Pool中搜索最近似的Key。接着,利用如交叉熵损失等方法对搜索到的Key对应的Prompt进行进行优化。
在这里插入图片描述

类似的Prompt Selection 算法很多,如DualPrompt算法,该算法将Prompt进行解耦,分化为General Prompt和Expert Prompt。General Prompt面向所有任务,为所有任务中共享信息,而Expert Prompt针对独立任务,数量与任务量一致。其采用了和L2P相同的key-query匹配策略。
在这里插入图片描述

Prompt Selection虽然可行,但仍是硬匹配,选项有限。基于注意力信息加权的Prompt Combination方法则有效缓解了该问题。如CODA-Prompt通过对Prompt Pool进行注意力机制嵌入,为每个注意力赋予自适应权重,进而求算全局Key-Query的加权和,实现可学习式Prompt组合。我觉得稀疏式注意力Prompt combination应该也是很有趣的研究。
在这里插入图片描述

从根本上来说Prompt Combination仍受制于Prompt Pool的范围。为此, 许多学者则开展Prompt Generation有关的研究,如DAP,其利用MLP进行特定任务提示信息的编码生成。
在这里插入图片描述

优点:

  1. Prompt 有助于弥合domain gap,并可有效地对特定任务的知识进行编码。
  2. Prompt Design 属于lightweight模块,与input feature具有相同的维度,因此保存Prompt是parameter-efficient,适用于边缘场景。
  3. Prompt Pool作为预训练模型的外部存储器,其支持自适应知识的检索和特定实例的预测。

缺点:

  1. 一些研究]发现L2P中的prompt selection过程收敛到一个单点,使得prompt selection只集中在特定子集上。
  2. 由于key和query在整个学习过程中不断变化,这些参数的更新将会消除先前任务的参数,导致matchimg-level和prompt-level的遗忘,使prompt selection成为CL的瓶颈。
  3. 固定大小的Prompt Pool会使得模型的表示能力受限。但是,若Prompt Pool随着数据的发展而增长,可能会为旧任务检索新的提示,导致训练和测试之间的不匹配。
  4. 最后,一些研究发现prompt-based CL的性能低于简单的representation-based的baseline性能。并且批量提示有损比较的公平性。

2. Representation-based 方法

representation-based方法直接利用预训练模型强大的泛化性和通用性来实现持续学习。比如Simple-CIL方法,该算法是ADAM算法原文中提出的Baseline,Simple-CIL冻结预训练模型参数,并通过求算类别中心的方式来构建Classifier。具体来说,在面对很多类别时,计算同类的embedding或features的平均值,并将该平均值作为该类别的标准(prototype),最后结合类别标准与余弦比较的方法替换模型的原始Classifier。

虽然基于prototype的方法存在一定的作用,但是并未很好地适应下游任务。为此,一些研究在基于prototype方法的基础上结合了外置参数高效调节模块或者外置适配器来使得预训练模型更加适应下游任务,如ADAM等。
在这里插入图片描述

ADAM等算法在进行类别标准设定时,类别标准之间的仍存在联系,导致任务效果降低。为此,RanPAC算法则采用online LDA classifier来去除原始方法prototype计算结果之间的相关性,加大类别间的分布差异。此外,RanPAC算法利用Random Projection layer将features映射到高维空间中,并在高维空间中进行prototype的计算,以使得特征分布符合高斯拟合。
在这里插入图片描述

相较于前面将预训练模型的通用语和适应性分离处理的方式,SLCA算法采用了差异学习率调整和特征经验重播的方式进行持续学习研究。该算法使用较小的learn rate调整模型主体部分,而使用较大的learn rate 调节模型的classifier,以实现模型的逐步微调和classifier的快速适应。为了避免忘记以前的分类器,SLCA还对分类特征分布进行建模,并重播它们以校准classifier。
在这里插入图片描述

优点:

由于class prototype代表了对应类别最常见的标准格式,因此利用其构建模型具有直观和可解释性。

Representation-based 方法主要是冻结backbone和更新classifier权重。lightweight的更新成本增加了其现实应用的可行性。

缺点:

将不同模型的特征连接起来形成class prototype,容易造成模型信息冗余。例如,不同的backbone中存在重复提取共享特征。

当下游任务涉及多个领域时,在第一阶段调整模型不足以弥合数据集之间的领域差距。在这种情况下,不断调整backbone可能更适合提取特定于任务的特征。

3. Model Mixture-based 方法

Model Mixture-based 方法在持续学习工程中构建了一组模型,然后再推理阶段通过Model Ensemble和Model Merge来进行信息综合决策。

Model Ensemble中,ESN算法凭借预训练模型强大的通用性,构建多个classifier,在面对新任务重新初始化和训练一个新的classifier。在推理时,采用投票策略来整合多个模型的结果进行最终决策。

由于Model Ensemble的核心因素取决于模型的方差,一些研究通过增强模型之间的多样性来替代使用相同的预训练模型构建不同的classifier。如PromptFusion利用预训练的ViT和CLIP,并在推理过程中动态地对logit进行组合,即f(x) = λ fvit (x) +(1−λ)fclip(x)。
在这里插入图片描述

与多个backbone的集成不同,PROOF采用了仅使用单个CLIP的更全面的推理方法。由于CLIP支持视觉和文本特征的跨模态匹配,因此PROOF设计了一个三层集成,考虑image-to-text、image-to-image prototype、image-to-adjusted text的跨模态融合。
在这里插入图片描述

Model Merge将多个不同的模型合并为一个统一的模型,无需要额外的训练。LAE定义了online和offline学习协议,online模型通过交叉熵损失进行更新,目的是在新的任务中获取新的知识。离线模型则通过Model Merge进行更新,例如指数移动平均(EMA): θ offline←α·θ offline +(1−α)·θ Online,其中α为权衡参数。LAE仅将EMA应用于参数高效调谐模块(如prompt),其利用online和offline模型的最大logit进行推断。
在这里插入图片描述

与LAE一样,ZSCL将合并技术应用于CLIP模型,目的是在持续学习过程中保持其zero-shot性能。然而,随着EMA中权衡参数的改变,CLIP性能不再具有鲁棒性。因此,ZSCL建议每隔几次迭代合并参数,从而在模型训练期间创建平滑的损失轨迹。
在这里插入图片描述

此外,CoFiMA注意到EMA在Merge过程中对每个参数的重要性是相等的,CoFiMA 在Merge过程中插入Fisher information(费雪信息)作为每个参数的估计重要性。
在这里插入图片描述

优点:

  1. 学习多个模型可以做出不同的决策。因此,使用Model Ensemble和Model Merge自然会产生更健壮的结果。
  2. 由于直接合并模型进行统一预测,因此可以调整前模型和后模型的权重,以突出不同阶段之间知识共享的重要性。
  3. 由于模型集将在推理过程中合并,因此最终的推理成本不会随着模型集中添加更多模型而增加。

缺点:

  1. Model Ensemble需要保存所有的历史模型,并消耗大量的内存缓冲区。虽然基于Model Merge不需要这么大的成本,但合并大型backbone的权重也需要大量的额外计算。
  2. 决定Merge哪些参数仍然是问题。

阅读记录

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Xxl-job适配达梦数据库

项目说明 项目本身开发中采用定时框架:xxl-job是一个分布式任务调度平台,它是依托于MySQL数据库执行。但后续客户要求必须满足信创环境,因此调整MySQL数据库为达梦数据库。由此就有了xxl-job适配达梦数据库的一系列操作。 Xxl-job表结构导入…

spring注解驱动系列-- BeanPostProcessor与BeanFactoryPostProcessor

一、BeanPostProcessor与BeanFactoryPostProcessor的定义 一、BeanPostProcessor bean后置处理器,bean创建对象初始化前后进行拦截工作的 二、BeanFactoryPostProcessor beanFactory的后置处理器,在BeanFactory标准初始化之后调用,来定制和…

服务器Linux上杀死特定进程的命令:kill

1、查看用户XXX正在运行的进程 top -u xxx2、查看想要杀死的进程对应的PID 先找到此进程对应的命令 取其中的main-a3c.py即可 ps -aux | grep main-a3c.py可以看到对应的PID是1325390使用kill杀死对应PID的进程 kill -9 1325390成功,gpustat可以看到之前一直占…

JVM虚拟机(十二)ParallelGC、CMS、G1垃圾收集器的 GC 日志解析

目录 一、如何开启 GC 日志?二、GC 日志分析2.1 PSPO 日志分析2.2 ParNewCMS 日志分析2.3 G1 日志分析 三、GC 发生的原因3.1 Allocation Failure:新生代空间不足,触发 Minor GC3.2 Metadata GC Threshold:元数据(方法…

Microchip 32位MCU CAN驱动图文教程-附源码

文章目录 创建一个新的32位MCU工程Microchip MCC Harmony配置界面说明在MCC下配置系统的时钟在MCC下配置所需要使用的模块配置调试打印模块配置CAN模块配置管脚功能修改系统堆栈大小生成代码 添加用户代码 创建一个新的32位MCU工程 确保电脑上已经安装最新的MPlab X IDE、XC32编…

【Qt】探索Qt框架:跨平台GUI开发的利器

文章目录 1. Qt框架概述1.1. Qt框架的优点1.2. Qt框架支持的系统1.3. Qt开发环境 2. 搭建 Qt 开发环境2.1. Qt SDK 的下载和安装2.2. 新建项目: 3. Qt 框架内容简介总结 在当今软件开发领域,跨平台性和用户界面的友好性是至关重要的。而Qt框架作为一款跨平台的C图形…

西安大秦软件

西安大秦软件 大秦软件 想做小程序、APP、Web 系统,请找我,包您满意! 刘大强 (销售经理) 电话:198 8892 6712 微信:198 8892 6712 欢迎咨询 西安大秦时代网络科技有限公司

认知觉醒 PDF电子版 下载

认知觉醒 PDF电子版 开启自我改变的原动力 周岭 / 人民邮电出版社 / 2020-10 链接:https://pan.baidu.com/s/1EHUK_AhvE5TWAZsYXFQ5QA?pwdwrho 提取码:wrho

面试后,公司如何决定你的去留

在现代职场中,求职者在经历了一系列严格的面试流程后,往往会进入一段等待期。在这段时间里,他们满怀希望地等待企业的最终反馈。但有一个现象普遍存在:无论面试过程如何,最终决定权总是掌握在公司手中,由公…

【Python性能优化】list、array与set

list、array与set 详述测试代码 详述 本文对比 list 与 set 在插入和取值时的性能差异,以提供一条什么时候该选择什么数据类型的建议。先上结果: array 与 list 的不同: 内存方面 array 是 C array 的包装,它直接存储数据&#xf…

Llama 3大模型发布!快速体验推理及微调

Meta,一家全球知名的科技和社交媒体巨头,在其官方网站上正式宣布了一款开源的大型预训练语言模型——Llama-3。 据了解,Llama-3模型提供了两种不同参数规模的版本,分别是80亿参数和700亿参数。这两种版本分别针对基础的预训练任务…

JVM-垃圾收集算法

前言 在 Java 中,垃圾收集(Garbage Collection)是一种自动管理内存的机制,它负责在运行时识别和释放不再被程序使用的内存,从而避免内存泄漏和悬空引用问题。本篇文章将介绍三种常见的垃圾收集算法。 标记-清除&…

OCT2Former: A retinal OCT-angiography vessel segmentationtransformer论文总结

论文(COMPUT METH PROG BIO):OCT2Former: A retinal OCT-angiography vessel segmentation transformer 源码:https://github.com/coreeey/OCT2Former 一、摘要 背景与目的:视网膜血管分割在视网膜疾病自动筛查与诊断中起着重要作用。如何分…

2024 抖音欢笑中国年(五):Wasm、WebGL 在互动技术中的创新应用

前言 随着 Web 前端技术的不断发展,越来越多的新兴技术方案被引入到 Web 开发中,其中 Wasm 和 WebGL 作为前端领域的两大利器,为开发者带来了更多的可能性。 本文将结合2024 年抖音欢笑中国年的部分项目,重点介绍如何利用 Wasm 和…

TCP 协议特性

1. TCP 基本认识 TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的; 可靠的:无论的网络链…

【批量区域识别内容重命名】批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域识别提取重命名

我们在工作和生活中经常遇到这样的需求:比如将以下的图片区域识别进行重命名,批量识别后改成以时间和工作内容重命名,便于日后检索,快速查询 首先我们拍摄照片用到的是水印相机,这里的文字呢我们需要加个背景&#xff…

C++模版初阶----函数模版、类模版

C模版初阶 1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 函数模版的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 总结 1. 泛型编程 泛型编程 : 编写与类型无关的通用代码,是代码复用的一种手段…

利用STM32 HAL库实现USART串口通信,并通过printf重定向输出“Hello World“

一、开发环境 硬件:正点原子探索者 V3 STM32F407 开发板 单片机:STM32F407ZGT6 Keil版本:5.32 STM32CubeMX版本:6.9.2 STM32Cube MCU Packges版本:STM32F4 V1.27.1 上一篇使用STM32F407的HAL库只需1行代码实现US…

#STM32F407VET6(天空星)标准库和HAL驱动ILI9341

一、驱动方式:软件SPI,屏幕像素320*240 二、标准库含触摸,HAL库不含触摸 三、立创参考的文档 【立创天空星ST32F407VET6】模块移植手册 - 飞书云文档 (feishu.cn)https://lceda001.feishu.cn/wiki/MFNpw4STVi5ImikkcH1clWrlnqb 四、引脚分…

HIVE无法启动问题

​ 启动不了hive 一直在加载中! 问题:当我们打开电脑 想要学习hive时 我们却发现 它一直卡在启动页面 true一直后没有信息或者报错 原因:我们在之前学习时 在配置hdfs的高可用时(High Availability 简称HA) 高可用…