简单且高效!南大联合南洋理工提出基于预训练模型的持续学习新范式

在实际应用中,模型常常需要处理连续的数据流,也就是类增量学习问题(Class Incremental Learning,CIL)。在这种场景下,模型需要在不遗忘旧知识的前提下,不断学习新类别的知识。近年来,预训练模型(Pre-Trained Model,PTM)的兴起已经为多个领域带来了变革性的发展机会,这也为处理类增量学习中面临的主要挑战——灾难性遗忘(Catastrophic Forgetting),带来了新的启发。

针对基于预训练模型的类增量学习问题,本文提出了一个稳健的基线模型 SimpleCIL 和一个强大的学习框架 AdaPt and mERge(Aper)—— 旨在于在充分利用预训练模型的泛化性(generalizability)的同时,保持对于新任务的学习适应性(adaptivity)

此外,考虑到预训练模型的预训练数据与传统基准测试数据集间存在高度重叠,为了对现有 CIL 方法进行更好的评估,作者额外构建了几个新的基准测试集,包括:ImageNet-A,ObjectNet,OmniBenchmark 以及 VTAB。目前该工作已被录用到 IJCV 2024。

论文标题:


Revisiting Class-Incremental Learning with Pre-Trained Models: Generalizability and Adaptivity are All You Need

收录期刊:


IJCV 2024

论文链接:

https://arxiv.org/abs/2303.07338

代码链接:


https://github.com/zhoudw-zdw/RevisitingCIL

01.引言

随着深度学习的发展,深度模型在许多领域取得了显著成就。然而,在现实世界中,应用通常需要处理包含新类别的流数据。为了解决这一问题,类增量学习(CIL)应运而生,这要求模型能够从不断变化的数据中学习,并持续构建统一的分类模型。然而,当新类别顺序加入时,往往会发生 CIL 学习中最为棘手的灾难性遗忘问题,即以前学到的知识被新的知识所覆盖。

尽管传统的 CIL 方法均假设模型为从头训练(train-from-scratch),但近年来预训练模型的进步使得在下游任务中设计模型变得更加容易。PTMs 通常在大量语料库或丰富的图像数据集上进行训练,具有很强的泛化性。因此,近年来的一些方法提出利用 PTM 来改进增量学习。

对比来看,从前 train-from-scratch 的模型训练方式,需不断更新以学习新类别的知识,强调适应性。相比之下,由于 PTMs 在大规模数据集上预训练,更容易获得具有强泛化性的嵌入空间,天然地具有高度泛化性。

为了评估这种泛化性,我们使用 VTAB 数据集构建了一个 CIL 任务,并在预训练的 ViT-B/16-IN1K 模型上测试了当前最先进的基于 PTM 的方法。作为对比,我们提出了一个简单的基线模型 SimpleCIL,以评估预训练特征的质量。在冻结预训练的嵌入函数的情况下,SimpleCIL 通过将分类器权重设置为训练集上每个新类别的样本嵌入均值进行分类,从而直接反映预训练特征的质量。

如果 PTM 具有良好的泛化性,那么这种做法应当足以取得出色的表现。从图 1 中展示的结果来看,即使没有对这些下游任务进行任何调整,SimpleCIL 的表现仍比当前的最好方法高出 5%,验证了 PTM 所具备的强大泛化性。

在这里插入图片描述

▲ 图1. intro图

但是,尽管 PTM 具有如此强大的泛化性,预训练数据集与增量数据集之间可能存在的域差异(domain gap)仍是个亟待解决的问题。例如,使用 ImageNet 预训练的模型可能无法很好地泛化到分布外数据或其他细粒度任务。在这种情况下,单纯冻结嵌入的做法并非万能,提高适应性对于提升模型在 CIL 任务上的表现变得至关重要。

然而,持续性地对 PTM 进行调整会损害其结构信息并削弱泛化性,面临灾难性遗忘的风险。如何统一 PTM 的泛化性和适应性,成为了关键问题。

总而言之,本文的主要贡献主要包括以下三点:

1. 本文提出了一个基线模型 SimpleCIL,为预训练模型时代的增量学习任务找到了一个更合适的基准表现,且足以超越当前的最优方法;

2. 本文构建了一个强大的 CIL 学习框架 AdaPt and mERge(Aper),充分结合了预训练模型的泛化性(generalizability)及适应性(adaptivity);

3. 为了对现有 CIL 方法进行更有效的评估,文章中额外构建了几个新的基准测试集,包括:ImageNet-A,ObjectNet,OmniBenchmark 以及 VTAB。

02.任务

2.1 问题设定

在类增量学习任务中,任务数据会在不同时刻到达,我们将这样构成的任务数据序列记为:,其中单个任务数据集构成可记作 , 为输入样本, 为对应标签。需要注意,这里不同任务的类别空间 是不重叠的。

我们的学习目标可以视作一个从样本到类别的映射函数:,其中 的目标在于为输入样本学得具有判别性的特征(embedding),且基于预训练模型作为初始化, 则对应于模型的分类头。下面将基于此进行讨论。

2.2 主要挑战

传统的 CIL 有时会依赖于记忆回放机制,这种做法需要存储历史任务样本或样本特征,随着任务数量的增加,往往会带来存储负担,存在与其他方法对比上的公平性问题。而本文所要讨论的是不存储任何历史样本数据的场景,这也被称为 exemplar-free CIL。

为了更清晰地展现这种设定下增量学习方法面临的主要挑战,图 2 给出了在 CIFAR 数据集上进行增量学习时,SimpleCIL 与持续 Finetune 分别在旧类和新类上的表现对比。

可以发现,尽管 Fintune 总能在新任务上展现出高度的适应性(即能够获得更好的新类准确率),但由于泛化性的下降,却会在历史任务上产生严重的模型表现退化;而 SimpleCIL 尽管在历史任务上展现出了相对稳定的表现,却在对下游任务的适应性上有所欠缺。这也就对应了 Aper 框架所要实现的主要目标:实现泛化性与适应性的平衡。

▲ 图2. 灾难性遗忘

这里,模型的**泛化性(Generalization)是指模型能否在未见过的数据或任务上仍保持较好的性能,而模型的适应性(Adaptivity)**则对应了模型在面对新任务或新数据分布时的学习调节能力。这种适应性对于类增量学习尤其重要,因为增量学习任务往往会涉及到存在域迁移或者数据分布变化的场景。在现实应用中,适应性的提升往往会伴随着泛化性的牺牲。

03.方法

3.1 SimpleCIL:简单但强大的基线方法

为了进一步验证预训练模型的能力,作者首先提出了 SimpleCIL——一个基于预训练模型的简单基线方法。该方法在不需要任何额外训练的情况下,将冻结的预训练特征直接用于下游的增量学习任务,仅需要简单地对最后的分类层进行调整。具体而言,在学习新任务时,SimpleCIL 将抽取每个类训练数据特征的均值(类原型),作为 Cosine 分类头的权重,也即:

在这里插入图片描述

其中的 。这里在判别时采用了cosine 分类头,基于样本特征与类原型间的 cosine 相似度进行判别,将相似度最高的类作为预测结果。

3.2 Aper:泛化性与适应性的平衡

尽管 SimpleCIL 能够充分利用预训练模型强大的泛化能力,但当数据集的分布差异较大时,预训练特征的适应能力还有待商榷。对此,本文提出了类增量学习框架 Aper,设计了 adapt 和 merge 的两步式策略,来实现对预训练模型的泛化性和适应性水平的统筹兼顾。下面将依次进行介绍。

Adapt 阶段:为了弥合上游预训练数据和下游增量数据间的 domain gap,提升对任务的适应性,我们不可避免地需要对预训练模型进行训练。由于在每一个阶段都进行训练将带来较高的训练成本,且容易造成灾难性遗忘,这里选择了一个更为折中且有效的做法:仅在第一个增量任务上对模型进行微调。由此,我们将得到一个新的特征映射函数:

Merge 阶段:上述 adapt 阶段的做法能够有效提升对下游任务的适应性,但于此同时也牺牲掉了预训练特征的部分泛化性,为了更好地取得两者间的平衡,这里选择巧妙地将预训练模型与适应后模型的特征进行拼接,于是得到 。基于扩展后的特征,我们采用类似 SimpleCIL 中的做法,首先提取类原型作为分类器权重:

在这里插入图片描述

再构建分类头如下:

我们在图 3 中给出了 Aper 方法的流程示意图。这里考虑了可以适用于不同预训练模型(ViT 与 ResNet)的参数高效微调方法,包括 VPT,SSF,Adapter 以及 BN Tuning。

在这里插入图片描述

▲ 图3. aper算法图

04.实验

4.1 基准测试集

除了传统的 CIFAR100,CUB200,ImageNet-R 数据集,为了更好地评估类增量学习方法,本文还提出了四个新的基准测试数据集:ImageNet-A、ObjectNet、OmniBenchmark 和 VTAB。这些数据集在领域差异、样本复杂性等方面与传统数据集有所不同,涵盖了从自然图像到复杂场景的更加广泛且真实的数据类型,可以更加严格地测试类增量学习模型的泛化性与适应性。

4.2 结果分析

我们在图 4 中展示了详细的实验结果。这些结果表明了:

1. 相比对预训练模型全量调参,采用高效微调模块在增量任务上的效果不相上下,充分验证了高效微调方法的有效性;其中,SSF 和 Adapter 模块的效果总体上优于 VPT。

2. SimpleCIL 已经能够在多个基准测试上超过传统 CIL 方法,在部分数据集上甚至达到了 SOTA 的表现。

3. Aper 框架在各个设定下总是能够达到不逊于 SimpleCIL 的表现,表明其较好地维持了预训练模型的泛化性;同时也展现了在不同领域下的强大适应性,尤其是在新的基准测试集这种领域差异较大的增量学习场景中。

在这里插入图片描述

▲ 图4. aper表现图

4.3 消融实验

为了探究方法中不同组件的重要性,文章中进行了充分的消融实验。

首先是关于拼接特征的必要性与有效性,文章考虑了对拼接后特征采用 PCA 或者随机降维,以探究使用更低的维度能否获得与拼接特征相当的效果。图 5 中展示了对应的实验结果,k 值代表了对应的特征维度(原始的拼接特征维度为 768*2=1536)。其中,DulaPrompt 的表现和 Aper 降到 100 维的表现相当,再次验证了方法的优越性。

▲ 图5. 消融实验-1

其次是采用不同特征提取器对表现的影响,这里构建了几种不同的方法变体进行探究:

1. SimpleCIL-PTM:采用原始的 ,也即 SimpleCIL;

2. SimpleCIL-Adapted:采用在第一个任务上学得的 作为特征提取器,来构建 SimpleCIL;

3. SimpleCIL-21K+1K:将 ViT-B/16-IN21K 与 ViT-B/16-IN1K 对应的特征输出拼接,再由此构建 SimpleCIL。图 6 中展示了在与上游任务 domain gap 较明显的 ImageNet-A 数据集上,不同方法变体的表现。

可以看到:1)尽管预训练特征具备强大的泛化性,但是在处理领域跨度明显的下游任务时,对模型的调节是非常必要的;2)仅使用调节后的模型特征是不够的,再次验证了特征拼接做法的有效性和必要性。

▲ 图6. 消融实验-2

最后是关于 Aper 相对 SimpleCIL 方法提升效果的稳定性的探究。我们考虑了多种不同的预训练模型,图 7 中展示了具体的结果。我们发现,Aper 始终能够获得相较于 SimpleCIL 更好的表现,这证明了 Aper 做法的有效性。其中我们将不同微调方法中 Aper 方法的最好表现作为图中"APER Best"的值。此外,从 SimpleCIL 的表现来看,模型规模与预训练模型特征的泛化性间存在着较强的正相关性。

▲ 图7. 消融实验-3

05.总结

本文针对预训练模型时代下的类增量学习问题,提出了一个简单高效的基线模型 SimpleCIL,以及一个更具灵活度和创新性的 Aper 框架。Aper 框架不仅统一了泛化性与适应性间的平衡,还在多个基准测试中展示了优异的性能。此外,考虑到预训练模型训练数据与传统测试集间的数据重叠问题,文章还提出了多个新的基准测试集。

未来的研究方向可能包括进一步优化调优策略,以便在更加多样化的数据环境中实现更强的适应性与泛化能力。期待未来出现更多的相关工作。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值