Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Python

  • MLTutorials

  • 卷积神经网络

  • 循环神经网络

  • Transformer

  • VisionTransformer

  • 扩散模型

  • 计算机视觉

  • PTM

  • MoE

  • LoRAMoE

  • LongTailed

  • 多模态

  • 知识蒸馏

  • PEFT

  • 对比学习

  • 小样本学习

  • 迁移学习

  • 零样本学习

  • 集成学习

  • Mamba

  • PyTorch

  • CL

  • CIL

  • 小样本类增量学习FSCIL

    • 综述Survey

      • 小样本增量学习论文阅读
      • A survey on few-shot class-incremental learning
      • Few-shot Class-incremental Learning A Survey
    • PriViLege
      • Pre-trained Vision and Language Transformers Are Few-Shot Incremental Learners
      • 0. 摘要
      • 1. 引言
      • 2. 相关工作
        • 2.1 少样本类增量学习
        • 2.2 视觉 Transformer 中的提示工程
        • 2.3 来自语言模型的语义引导
      • 3. 方法
        • 3.1 少样本类增量学习的定义
        • 3.2 方法概览
        • 3.3 预训练知识调优(PKT)
        • 3.2 基于熵的发散损失(Entropy-based Divergence Loss)
        • 3.3 语义知识蒸馏损失(Semantic Knowledge Distillation Loss)
        • 小结:基础阶段与增量阶段的总损失
      • 4. 实验
        • 4.1 实验设置
        • 4.2 主要实验结果
        • 4.3 消融实验(Ablation Study)
        • 4.4 分析(Analysis)
        • 4.4.1 在预训练 CLIP 网络上的 PriViLege
        • 4.4.2 PKT 的可微调层数探究
        • 4.4.3 基于熵的发散损失(LED)的有效性验证
        • 4.4.4 语义知识蒸馏(LSKD)的效果分析
      • 5. 结论
    • CPE-CLIP
    • CoACT
    • ASP
  • UCIL

  • 多模态增量学习MMCL

  • LTCIL

  • DIL

  • 论文阅读与写作

  • 分布外检测

  • GPU

  • 深度学习调参指南

  • AINotes
  • 小样本类增量学习FSCIL
Geeks_Z
2024-08-09
目录

PriViLege

Pre-trained Vision and Language Transformers Are Few-Shot Incremental Learners (opens new window)

CVPR 2024

0. 摘要

少样本类增量学习(Few-Shot Class Incremental Learning,简称 FSCIL)是一项任务,要求模型在每个类别只有少量样本的情况下,逐步学习新类别而不遗忘旧类别。

FSCIL 面临两大挑战:灾难性遗忘和过拟合。这些挑战促使以往的研究主要依赖于浅层模型,如 ResNet-18。虽然浅层模型因容量有限,可以缓解遗忘和过拟合问题,但也导致了在少样本增量阶段中知识迁移的不足。

在本文中,我们主张:在大规模数据集上预训练的大型模型(如视觉与语言 Transformer)可以成为优秀的少样本增量学习者。为此,我们提出了一种新颖的 FSCIL 框架,称为 PriViLege(即 Pre-trained Vision and Language transformers with prompting functions and knowledge distillation)。

我们的框架通过新提出的预训练知识调优(Pre-trained Knowledge Tuning,PKT)及两种新型损失函数——基于熵的发散损失(entropy-based divergence loss)和语义知识蒸馏损失(semantic knowledge distillation loss),有效应对了大型模型中的灾难性遗忘和过拟合问题。

实验结果表明,所提出的 PriViLege 方法在多个数据集上大幅度超越了当前的最新方法。例如,在 CUB200 上提高了 +9.38%,在 CIFAR-100 上提高了 +20.58%,在 miniImageNet 上提高了 +13.36%。

我们的实现代码公开在:
https://github.com/KHU-AGI/PriViLege


1. 引言

人类具有卓越的能力,能够仅凭少量数据快速理解新的概念。为了使深度神经网络具备这种能力,最早在文献【33】中引入了少样本类增量学习(Few-Shot Class Incremental Learning,简称 FSCIL)。

FSCIL 模仿人类的学习方式,通常包括一个基础阶段(base session)和多个增量阶段(incremental sessions)。在基础阶段,网络利用充足的训练数据学习大量类别;而在增量阶段,网络需针对每个新类别,使用极少的样本进行训练。

由于增量阶段数据受限,如何有效地传递基础阶段所学到的多样知识,成为 FSCIL 成功的关键。

在 FSCIL 中,主要存在两大挑战:灾难性遗忘【20】和过拟合【33】。灾难性遗忘是指,当网络依次学习新类别时,严重遗忘了之前学到的知识。而过拟合则指,网络过度专注于有限的训练样本,导致整体性能下降。

为了解决这些问题,已有研究主要采用浅层模型,如 ResNet-18【12, 39, 40】。
浅层模型参数数量有限,便于通过部分冻结减少遗忘,并抑制过拟合。但浅层模型的容量受限,无法充分捕捉和迁移基础阶段的领域知识到增量阶段。

最近,像 Vision Transformer (ViT)【3】和 Contrastive Language-Image Pretraining (CLIP)【26】等大型预训练模型在计算机视觉领域广泛应用,因其出色的适应性和性能表现。

因此,大型预训练模型能够有效学习和迁移基础阶段的领域知识,克服浅层模型在知识迁移能力上的局限。

然而,微调大型预训练模型容易导致预训练知识的遗忘;而完全冻结模型,又阻碍了基础阶段的领域知识学习。如何在保留预训练知识和获取新领域知识之间权衡,成为在 FSCIL 中应用大型模型的一大挑战。

为了深入探讨大型模型在 FSCIL 中的挑战和应用潜力,我们在 CIFAR-100【14】数据集上进行了 5-way 5-shot 的实验。

2. 相关工作

2.1 少样本类增量学习

少样本类增量学习(Few-Shot Class Incremental Learning,FSCIL)是一种类别增量学习(Class Incremental Learning, CIL)的变体,但更具挑战性,因为模型需要仅凭少量训练样本学习新类别。

在以往众多的 FSCIL 方法【34】中,动态网络结构方法【29, 33, 38, 40】通过在训练过程中调整网络结构,来保留先前知识,减少遗忘。

基于特征和特征空间的方法【2, 12, 23, 30, 41, 42】使模型能够更好地适应新类别,同时提升特征提取器对新类别的泛化能力。

基于原型(prototype-based)的方法【6, 19, 39】旨在通过对齐原型与分类器权重,提升分类性能。

然而,之前的方法主要关注于在浅层网络中缓解遗忘和过拟合问题,因此在受限的模型容量下,性能提升是有限的。

本文采用了如预训练 ViT 和 CLIP 这样的大型模型用于 FSCIL,并介绍了如何有效利用它们来克服 FSCIL 的主要挑战。

2.2 视觉 Transformer 中的提示工程

提示微调(prompt tuning)【16】和前缀微调(prefix tuning)【17】被广泛应用于视觉 Transformer 的提示工程中。

提示微调是在输入序列中添加可学习的提示;而前缀微调则通过将提示附加到查询(key)和值(value)上,直接影响注意力模式,以便进行任务特定的知识获取。

使用提示工程的视觉 Transformer 在类增量学习中展现了显著的性能。

L2P【37】和 DualPrompt【36】分别利用提示微调和前缀微调来学习新类别,同时冻结预训练的 ViT。L2P 和 DualPrompt 都使用随机初始化的提示进行提示工程。

近期一些方法【9, 31, 32】提出了通过生成提示以适配领域空间的方法,以实现有效的持续学习。

例如,CODA-Prompt【31】需要收集多个提示组件,并用与输入相关的权重组合,生成输入特定的提示。
APG【32】和 DAP【9】则采用了包括交叉注意力层、可学习参数组、线性层等多组件构成的提示生成器。

这些提示生成方法通常需要额外的组件和提示生成器的训练开销。

与需要额外可学习组件的提示生成方法不同,本文提出了一种轻量化的提示调制(modulation)方法,大幅度减少了额外训练组件的需求,同时提升了提示的表示学习能力。

2.3 来自语言模型的语义引导

在广义零样本学习(Generalized Zero-Shot Learning)【1, 25】领域中,利用语言嵌入来有效学习新类别已经被广泛研究。

最近,研究【11】探索了在持续学习(Continual Learning)中引入语言引导以增强表示学习的方法。

在 FSCIL 领域,已有多种方法引入了额外的语言信息(尤其是类别名称)来提升基础阶段的表示学习。

例如,文献【42】通过校准已有类别与新类别之间的编码语言信息,解决了分类器权重漂移问题。

此外,文献【2】提出了一种正则化方法,利用从 GloVe 网络【24】中提取的类别词嵌入所推导出的关系信息。


3. 方法

3.1 少样本类增量学习的定义

在 FSCIL 中,训练数据集表示为:

D={D0,D1,...,DT}

其中,D0 是基础阶段(base session)的数据集,Dt={(xi,yi)}i=1|Dt| 是第 t 个增量阶段(incremental session)的数据集,1≤t≤T,T 表示总的增量阶段数量。

在这里,基础阶段的数据集 D0 通常拥有一个较大的标签空间 C0,并且每个类别 c∈C0 都有充足的训练样本。

相比之下,增量阶段的数据集 Dt 每个类别仅包含少量训练样本,即:

|Dt|=k×|Ct|

其中,|Ct| 是第 t 个任务中新类别的数量,k 是每个新类别的样本数。

不同阶段之间的类别是互不重叠的,且在每个阶段,模型仅能访问当前阶段的数据。

在这种设定下,FSCIL 的目标是使模型能够从极少量样本中逐步学习新类别,同时保持对所有已遇到类别的分类能力。


3.2 方法概览

图 2 展示了我们所提出方法的整体框架,其中预训练的 Vision Transformer (ViT) 被用作主干网络(backbone network)。

为了优化 ViT 中的预训练知识,我们提出了一个新方法,称为 预训练知识调优(Pre-trained Knowledge Tuning,PKT) (详见第 3.1 节)。

PKT 通过训练基础提示(B-Prompt)、视觉 - 语言提示(VL-Prompt)以及 ViT 的部分选定层,来增强基础阶段知识向增量阶段的迁移能力。

此外,为了在基础阶段强化判别能力,我们引入了一个基于熵的发散损失(详见第 3.2 节),它作用于 VL-Prompt 中的视觉标记(vision token)。

最后,我们提出了一个语义知识蒸馏损失(详见第 3.3 节),以将语义知识注入到 VL-Prompt 中的语言标记(language token),从而提升模型的表示学习能力。

在少样本环境下,为了稳定学习,我们采用了各类别的原型(prototype)作为分类器。


3.3 预训练知识调优(PKT)

近期,基于提示(prompting)方法的预训练大型 ViT 在类增量学习(CIL)中取得了显著性能【21, 36, 37】。

然而,将大型预训练 ViT 有效地应用于 FSCIL 仍未被深入探索。现有方法在应用时,仍然面临灾难性遗忘和过拟合的问题。

同时,已有基于提示的方法由于提示量有限,难以充分将基础阶段的知识传递到增量阶段。

因此,本文提出了一个新方法,称为 预训练知识调优(PKT),通过额外添加提示,并选择性地微调特定层,来在基础阶段有效地学习领域特定知识。

在 PKT 中,我们特别更新 ViT 主干网络 fθ 的前 L 层,其中 L 是可调节的超参数,表示需要更新的层数。

经过实证分析,我们确定了最优的微调层数,例如,在 ViT-B 中设置 L=2。

由于大部分层被冻结,预训练知识得以在增量学习中保留下来。

经过基础阶段微调后的 ViT 将被冻结,以保存所学习的领域特定知识,并将其迁移到增量阶段。

由于冻结了大部分层,因此有效学习领域知识成为一大挑战。为此,我们引入了两个关键提示:

  • 基础提示(B-Prompt),记为 PB∈RL×2×D,其中 D 是嵌入维度;
  • 视觉 - 语言提示(VL-Prompt),记为 PVL∈R2×D。

其中,B-Prompt 主要在基础阶段捕捉领域知识,并帮助知识迁移到增量阶段;而 VL-Prompt 则由视觉标记和语言标记组成,旨在将所有先前阶段的正向知识传递到下一个阶段。

我们使用前缀微调(prefix tuning)训练 B-Prompt,使用提示微调(prompt tuning)训练 VL-Prompt。


不过,前缀微调存在一个已知的问题【4,5】,即学习速度较慢,导致 B-Prompt 难以有效学习领域知识,且可能被微调的层忽略。

为此,我们提出了新的调制提示(modulation prompts)PM,以辅助 B-Prompt。

调制提示由两个部分组成:

  • 头部特定提示(Head-specific Prompt)PMS
  • 通用提示(Generic Prompt)PMG

这两部分分别来源于 ViT 的多头自注意力(Multi-Head Self-Attention,MSA)层和后续的 MLP 层。

它们的公式如下:

首先,多头注意力的输出为:

(1)hMSA=MSA(hQ,hK,hV)

然后,头部特定调制提示为:

(2)PMS=[g1S(hMSA1);…;gHS(hMSAH)]

接下来,MLP 层的输出为:

(3)hMLP=MLP(hMSA)

再通过卷积得到通用提示:

(4)PMG=gG(hMLP)

其中,H 表示多头注意力的头数,gS 和 gG 分别是 1×1 点卷积操作(point-wise convolution)用于生成头部特定提示和通用提示。


通过预训练层和输入数据,这些调制提示可以扩大 B-Prompt 的特征向量,从而提升 B-Prompt 对领域知识的捕捉能力。

具体的 PKT 前缀微调过程如下:

扩展后的键提示:

(5)P¯K′=PMS⊙PKB

扩展后的值提示:

(6)P¯V′=PMG⊙PVB

最终的 MSA 计算为:

(7)h¯out=MSA([PVLQ;hQ],[P¯K′;hK],[P¯V′;hV])

其中,hQ,hK,hV 是输入的查询、键和值,h¯out 是输出结果。


总结来说,PKT 带来了两大优势:

  1. 通过在前 L 层引入额外可塑性,并结合调制提示,有效地学习了基础阶段的领域知识。
  2. 通过放大 B-Prompt,促进了其更新,从而学习到了有用的领域特定知识。

实验证明,PKT 能显著提升性能,并促进增量阶段的正向知识迁移。


3.2 基于熵的发散损失(Entropy-based Divergence Loss)

在使用 PKT 训练提示(prompts)和选择的层的过程中,我们的模型能够有效获取领域知识,以便在增量阶段实现正向迁移。

为了嵌入多视角(multi-perspective)的知识,我们不仅利用 [CLS] 标记,还引入了视觉标记(vision token)进行分类,并通过平均池化(average pooling)融合它们。

然而,由于这两个标记具有相同的目标,随着训练的进行,它们的输出特征会趋于相似,这会妨碍视觉标记自身的有效训练。

为了增强视觉标记本身的判别能力,我们提出了一个新的正则化项,称为 基于熵的发散损失(LED)。


为了计算 LED,我们首先构建了一个原型分类器 ψ∈R|C0|×D,它由基础阶段各类别的原型(prototype)组成。

对于每一个基础类别 cj,其中 cj∈C0,j∈{1,2,...,|C0|},其原型向量 protocj∈RD 是通过预训练 ViT 网络提取的所有 [CLS] 特征向量的平均值:

(8)protocj=1Ncj∑k=1Ncjfkcls

其中,Ncj 是类别 cj 的样本数量,fkcls 是第 k 个样本的 [CLS] 特征。

因此,原型分类器可以表示为:

(9)ψ=[protoc1;protoc2;…;protoc|C0|]

接着,我们用原型分类器 ψ 计算对应于 [CLS] 特征和视觉特征的预测 logits:

y^icls=ψ(ficls)y^ivis=ψ(fivis)

其中,ficls 和 fivis 分别是输入样本 xi 的 [CLS] 特征和视觉标记特征。

需要注意的是,原型分类器 ψ 在计算过程中是固定的,不参与梯度更新,以提供稳定的基础。


最后,定义基于熵的发散损失 LED 为:

(10)LED=log⁡(LCE(y^ivis,yi)+LCE(y^icls,yi)LKL(δ(y^ivis),δ(y^icls))+1)

其中:

  • LCE 是交叉熵损失(Cross Entropy Loss);
  • LKL 是 Kullback-Leibler 散度(KL Divergence Loss)【15】;
  • δ(⋅) 表示 softmax 函数。

为了最小化 LED,我们的模型需要:

  • 同时最小化 LCE(y^ivis,yi) 和 LCE(y^icls,yi),即提升视觉和 [CLS] 特征各自的分类能力;
  • 同时最大化 KL(δ(y^ivis),δ(y^icls)),即让视觉特征和 [CLS] 特征输出尽可能不同,从而避免特征退化成相似表示。

通过这个基于熵的发散损失,我们的模型可以有效利用视觉标记学习领域特定知识,并在基础阶段建立可迁移的特征表示,为后续增量阶段提供支持。


3.3 语义知识蒸馏损失(Semantic Knowledge Distillation Loss)

即使从基础阶段迁移过来的知识丰富且有用,
但在增量阶段,依然很难仅凭少量训练样本准确地学习新类别的表示。

为了缓解这一问题,
我们需要向模型提供与新类别相关的外部知识,以促进更好的适应。

为此,本文引入了一个新的损失项,称为 语义知识蒸馏损失(Semantic Knowledge Distillation Loss,LSKD),
利用预训练语言模型(如 BERT【10】)生成的语言嵌入,向视觉模型提供附加的语义知识。


具体实现如下:

首先,利用预训练语言模型(PLM)fϕ,根据每个类别名称生成语言嵌入特征:

wcni=fϕ(wordcni)

其中,wordcni 是类别名称 cni 的文本表示,通常被格式化为 "a photo of [cni]"。

与此同时,通过 ViT 主干网络 fθ,我们可以得到 VL-Prompt 中语言标记(language token)的输出特征:

filang=fθ(xi)[2]

这里的 [2] 表示提取 VL-Prompt 中的第二个标记,即语言标记的特征。


为了将语言嵌入特征 wcni 蒸馏到语言标记特征 filang,
我们采用了文献【7】提出的知识蒸馏损失(Knowledge Distillation Loss,LKD)。

然而,考虑到 filang 和 wcni 分别来源于视觉特征空间和语言嵌入空间,
直接应用蒸馏损失以匹配这两种不同分布可能效果不佳。


为了解决这一问题,我们再次使用前文定义的原型分类器 ψ 来稳定对齐输出特征。

具体地,将语言标记特征 filang 输入到原型分类器 ψ 中,得到预测结果:

y^ilang=ψ(filang)

随后,我们计算交叉熵损失(LCE),以最小化语言特征和真实标签之间的分布差异。

最终定义**语义知识蒸馏损失(LSKD)**如下:

(11)LSKD=LKD(filang,wcni)+γ⋅LCE(y^ilang,yi)

其中:

  • LKD(⋅,⋅) 是特征间的知识蒸馏损失;
  • LCE(⋅,⋅) 是交叉熵损失;
  • γ 是权衡超参数,我们在所有实验中将其设置为 0.1。

总结来说,提出的 LSKD 能够有效地将语言空间中的有用语义知识蒸馏到视觉空间中,
为增量阶段的少样本表示学习提供额外支持。

这不仅有助于缓解少样本带来的学习困难,还能通过基础阶段充分学习大量类别的知识,
从而在增量阶段实现正向知识迁移。


小结:基础阶段与增量阶段的总损失

在基础阶段(base session),总的损失函数为:

(12)Lbase=LCE(y^i,yi)+α⋅LED+β⋅LSKD

其中,α 和 β 分别是用于控制基于熵的发散损失和语义知识蒸馏损失的重要性比例因子。


而在增量阶段(incremental sessions),
由于少样本数据不足以支撑判别性特征学习,因此我们不再使用 LED。
此时,总的损失函数为:

(13)Linc=LCE(y^i,yi)+β⋅LSKD

4. 实验

4.1 实验设置

数据集与评估指标
我们在三个数据集上与当前最新的 FSCIL 方法进行了对比评估:CIFAR-100【14】、miniImageNet【27】和 CUB200【35】。

如表 2 所示,我们在所有数据集上均遵循文献【33】提出的划分设置。

评估指标包括:

  • 基础阶段准确率 ABase;
  • 最后阶段准确率 ALast;
  • 所有阶段的平均准确率 AAvg。

我们在不同随机种子下进行了 5 次独立实验,并报告其平均结果。


基线方法与实现细节
我们将以下最新的 FSCIL 方法作为对比基线:

  • CEC【40】、
  • WaRP【12】、
  • NC-FSCIL【39】。

此外,还将以下基于 ViT 的方法作为比较:

  • L2P【37】、
  • DualPrompt【36】。

在所有方法中(包括我们的方法),统一使用 ViT-B/16【3】作为主干网络,并且该模型预训练于 ImageNet-21K【28】。

我们使用 BERT-base【10】提取类别名称的词嵌入。

对于预训练知识调优(PKT),我们设置微调前两层。
对于损失项比例因子,我们统一设置:

  • α=0.5,
  • β=0.5。

优化器使用 Adam【13】,学习率设为 2×10−4,并采用 余弦退火调度器(cosine annealing scheduler)【18】。

训练硬件为 RTX 3090 GPU。
批次大小(batch size)设为 128。

训练轮次设置:

  • 基础阶段:训练 5 个 epoch;
  • 增量阶段:每阶段训练 3 个 epoch。

表 2. FSCIL 基准测试的配置设置

数据集 基础阶段类别数 增量阶段设定 总阶段数
CUB200 100 10-way 5-shot 1+10
CIFAR-100 60 5-way 5-shot 1+8
miniImageNet 60 5-way 5-shot 1+8

4.2 主要实验结果

我们分别在 CUB200、CIFAR-100 和 miniImageNet 上报告了基础阶段、最后阶段以及平均准确率,详见表 1。

表 1. 在 CUB200、CIFAR-100 和 miniImageNet 上的性能比较

方法 CUB200 ABase CUB200 ALast CUB200 AAvg CIFAR-100 ABase CIFAR-100 ALast CIFAR-100 AAvg miniImageNet ABase miniImageNet ALast miniImageNet AAvg
Fine-Tuning + Proto ψ 84.21±0.13 3.79±1.47 21.60±1.32 91.36±0.15 5.19±0.13 37.04±1.06 93.67±0.02 9.87±5.42 44.60±0.92
CEC 75.40±8.01 65.70±8.03 72.41±1.18 74.20±2.03 61.48±3.33 67.10±2.92 87.43±5.90 80.74±7.51 83.06±7.14
L2P 44.97±2.32 15.41±3.45 24.99±4.30 83.29±0.50 49.87±0.31 64.08±0.39 94.59±0.21 56.84±0.32 72.97±0.36
DualPrompt 53.37±1.83 23.25±2.02 36.30±2.39 85.11±0.29 50.93±0.21 65.45±0.27 95.05±0.20 57.14±0.11 73.31±0.15
NC-FSCIL 78.49±2.32 38.80±1.14 57.92±1.71 89.51±0.23 53.70±0.14 68.96±0.17 77.25±0.42 46.35±0.25 59.52±0.33
WaRP 67.74±5.57 49.36±6.56 55.85±6.06 86.20±1.46 65.48±1.87 74.55±1.67 83.30±1.06 67.97±1.28 74.13±1.08
PriViLege(本文方法) 82.21±0.35 75.08±0.52 77.50±0.33 90.88±0.20 86.06±0.32 88.08±0.20 96.68±0.06 94.10±0.13 95.27±0.11

从表 1 可以看出,
我们的 PriViLege 方法在所有数据集上大幅超越了现有最先进方法。

具体来说,在:

  • CUB200:相较于 CEC 方法,ALast 提高了约 +9.38%,AAvg 提高了约 +5.09%。
  • CIFAR-100:相较于 WaRP 方法,ALast 提高了约 +20.58%,AAvg 提高了约 +13.53%。
  • miniImageNet:相较于所有其他方法也有显著提升。

此外,与 L2P 和 DualPrompt 这些基于提示的方法相比,
我们的 PriViLege 也表现出更强的性能,充分验证了:

  • 有效的领域知识学习,
  • 以及增强迁移能力的重要性。

综合来看,PriViLege 所结合的 PKT、LED 和 LSKD 三大机制,
使预训练大模型在 FSCIL 中取得了卓越的效果。

4.3 消融实验(Ablation Study)

为了验证我们方法中各个组件的有效性,
我们在 CUB200 数据集上进行了消融实验。

作为基线(Baseline),
我们使用了直接微调预训练 ViT 并使用原型分类器 ψ 进行分类的方法。


表 3. CUB200 上各组件的消融实验结果

配置 ABase ALast AAvg
Baseline(微调 ViT+ 原型分类器) 84.21±0.13 3.79±1.47 21.60±1.32
PKT 79.06±0.77 70.81±0.76 73.36±0.77
PKT + LED 80.31±0.54 72.70±0.45 75.04±0.40
PKT + LSKD 82.10±0.57 73.44±0.40 76.27±0.30
Ours(完整方法) 82.21±0.35 75.08±0.52 77.50±0.33

从表 3 可以观察到:

  • 仅应用 PKT 时,相比基线,ALast 和 AAvg 都有了大幅提升,
    说明我们提出的预训练知识调优(PKT)在基础阶段有效学习了领域知识,并成功迁移到了增量阶段。
  • 引入基于熵的发散损失(LED) 后,ALast 提升了约 +1.89%,AAvg 提升了约 +1.68%。
  • 引入语义知识蒸馏损失(LSKD) 后,ALast 提升了约 +2.63%,AAvg 提升了约 +2.91%。

最终,
结合了 PKT、LED 和 LSKD 的完整方法(PriViLege),
在所有指标上取得了最佳性能,且提升幅度显著。


4.4 分析(Analysis)

4.4.1 在预训练 CLIP 网络上的 PriViLege

为了验证我们方法 PriViLege 的适应性,
我们将其应用于 CLIP【26】预训练模型,并进行了性能比较。

在集成 PriViLege 到 CLIP 中时:

  • 仅训练了 CLIP 的视觉编码器;
  • 使用 CLIP 的文本编码器提取语言嵌入,用于语义知识蒸馏损失(LSKD)。

此外,我们还将现有方法 CEC 与 CLIP 的零样本(zero-shot)性能进行了比较。


实验结果:

如图 3 所示,
我们发现:

  • 现有方法 CEC 的性能低于 CLIP 的零样本基准;
  • 而我们提出的 PriViLege 方法则在零样本性能基础上显著提升。

这表明:

  • PriViLege 所提出的基于熵的发散损失(LED)和语义知识蒸馏损失(LSKD)在 CLIP 框架中同样能带来显著的性能提升。

特别地,
由于 CLIP 本身是以视觉和语言的对比学习方式进行预训练,
因此:

  • LED 有助于提升表示的判别能力,
  • LSKD 有效地注入了额外的语义知识,
    从而促进了少样本增量学习中的适应能力。

4.4.2 PKT 的可微调层数探究

我们进一步在 CUB200 上研究了 PKT 中微调层数对性能的影响。

表 4. 不同微调层数下的性能比较(CUB200)

微调层数(L) ABase ALast AAvg
0 层 76.07±0.56 60.19±1.11 67.08±0.71
2 层 79.06±0.77 70.81±0.76 73.36±0.77
5 层 78.42±0.84 68.52±0.84 71.99±0.84
7 层 76.96±0.74 63.15±2.73 68.06±1.54
10 层 74.95±0.78 57.78±2.30 64.19±1.59
12 层 73.62±2.72 56.02±1.47 62.71±2.14

分析结果:

  • 微调前 2 层(L=2)时,在所有指标上性能最佳。
  • 如果不微调任何层(L=0),由于缺乏学习能力,基础阶段和增量阶段的性能都较低。
  • 如果微调层数太多(如 10 层或 12 层),则由于过度破坏预训练知识,导致 ABase 和 ALast 都明显下降。

这说明:

当可微调的层数适中时(如 2 层),可以在保留预训练知识的同时,有效地捕捉领域特定知识。
若调节不当,随机初始化提示反而会妨碍表示学习。


4.4.3 基于熵的发散损失(LED)的有效性验证

为了进一步验证 LED 的有效性,
我们进行了特征空间可视化对比实验。

实验设定:

  • 对比不使用 LED(w/o LED)和使用 LED(w/ LED)两种情况下,特征分布的变化。

可视化结果:

  • 图 4(a):不使用 LED,部分类别(如 “Herring Gull” 和 “Ivory Gull”)的决策边界模糊。
  • 图 4(b):使用 LED 后,类别边界变得更清晰,分类效果明显改善。

结论:
应用 LED 能够提升视觉标记的判别性,
从而在基础阶段有效捕获领域知识,
并为增量阶段学习打下坚实基础。


4.4.4 语义知识蒸馏(LSKD)的效果分析

我们进一步分析了 LSKD 对各类别性能的具体影响,
使用指标 Δdiff 表示使用和不使用 LSKD 时每类准确率的差异。

实验结果:

  • 图 5 展示了前 10 个提升最大的类别和后 10 个下降最大的类别。

在前 10 个提升最多的类别中,性能提升约 +19.90%;
而后 10 个下降最多的类别中,下降约 -6.76%。

特别值得注意的是:

  • 提升最多的类别名称中包含了**颜色(red、green、yellow、white)或形状特征(headed、tailed、palm、billed、pelagic、fish)**等描述词。

这表明:

当类别名称中包含丰富的语义特征信息时,LSKD 能更有效地帮助模型学习,尤其在细粒度数据集(如 CUB200)中效果显著。

5. 结论

在本研究中,
我们提出了一种基于大型预训练视觉与语言 Transformer 的新型少样本类增量学习(Few-Shot Class Incremental Learning,FSCIL)方法,命名为 PriViLege。

我们针对 Vision Transformer(ViT)中普遍存在的灾难性遗忘和过拟合问题,
提出了以下创新技术:

  • 预训练知识调优(Pre-trained Knowledge Tuning,PKT),
  • 基于熵的发散损失(entropy-based divergence loss,LED),
  • 语义知识蒸馏损失(semantic knowledge distillation loss,LSKD)。

通过这些方法,
我们在多个 FSCIL 基准数据集上实现了显著的性能提升。

此外,
我们还验证了 PriViLege 框架不仅适用于 ViT,
同样也可以有效应用到如 CLIP 这样的不同预训练模型上,进一步证明了其广泛适用性和鲁棒性。

我们相信,
PriViLege 为未来在 FSCIL 领域利用大型预训练模型的研究方向开辟了新的可能性。

未来的工作方向包括:

探索如何在没有基础阶段的更加困难的 FSCIL 场景下,
有效应用大型预训练模型进行增量学习。


上次更新: 2025/06/25, 11:25:50
Few-shot Class-incremental Learning A Survey
CPE-CLIP

← Few-shot Class-incremental Learning A Survey CPE-CLIP→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式