南大、南洋理工发布最新类别增量学习综述,多维全面分析与严格统一评估

©PaperWeekly 原创 · 作者 | 戚智泓
单位 | 南京大学硕士生
研究方向 | 类别增量学习

论文标题:
Class-Incremental Learning: A Survey

收录期刊:

TPAMI 2024

论文地址:

https://ieeexplore.ieee.org/document/10599804/

代码链接:

https://github.com/zhoudw-zdw/CIL_Survey/
摘要
深度模型(如 CNN 和 Vision Transformers)在封闭世界中的许多视觉任务中取得了令人瞩目的成就。
然而,在瞬息万变的开放世界中,新类别不断涌现,这需要学习系统能够持续获取新知识。类增量学习(Class-Incremental Learning,CIL)旨在从流式数据中不断学习新知识,并将其中的新类别融入模型中,从而逐渐地构建一个适用于所有任务的通用模型
然而,当直接使用新类数据训练模型时,会出现一个致命的问题:——模型在学习新类别的同时会产生对已学习类别的灾难性遗忘,导致整体性能的急剧恶化。
机器学习领域已有大量工作研究如何解决灾难性遗忘问题。本文全面调研了类增量学习领域的最新进展,并从多个角度对这些方法进行了总结。此外,我们还对 17 种典型方法在基准图像分类任务中的表现进行了严格统一的评估,试图从实验角度揭示不同算法的特点。

进一步地,我们注意到当前领域内的评估过程忽略了存储开销对模型性能的影响,不同存储开销的模型同时进行对比是一种不公平的比较,可能导致有偏的结果。因此,我们主张通过在评估中对齐存储开销来实现公平比较,同时提出了多个与存储无关(memory-agnostic)的性能评估指标。

 

 

引言

近年来,深度学习领域取得了快速进展,神经网络在许多领域的表现已达到甚至超越人类水平 [1][2][3]。训练深度网络的典型过程通常需要预先收集的数据集,例如大规模图像或文本数据集——网络会在这些预先收集的数据集上进行多轮训练。
然而,在开放世界中,训练数据往往以流数据的形式出现 [4]。由于存储限制 [5] 或隐私问题 [6],这些流数据无法长期保存,因此要求通过仅使用新类别数据来逐步更新模型。这种需求催生了类增量学习(Class-Incremental Learning,CIL)领域的发展,其目标是在所有已见类别中持续构建一个全面的分类器。

类增量学习的核心挑战是灾难性遗忘(catastrophic forgetting)问题。具体而言,直接使用新类别优化网络会抹去之前类别的知识,导致性能不可逆地下降。因此,如何有效抵抗灾难性遗忘,成为构建 CIL 模型的核心问题。

▲ 图1. 类增量学习(CIL)场景
图 1 所示,类增量学习(CIL)的典型设置下,训练数据以流数据形式依次出现。在每个时间点,我们会获得一个新的训练数据集(图中称为“任务”),并需要用新类别来更新模型。
例如,模型在第一个任务中学习“鸟”和“狗”,在第二个任务中学习“老虎”和“鱼”,在第三个任务中学习“猴子”和“羊”等。随后,模型将在所有已见类别中进行测试,以评估它是否能够对这些类别进行区分。

一个优秀的模型应该在刻画新类别特征与保留已学旧类别模式之间取得平衡。这种权衡也被神经系统研究中称为“稳定性-可塑性两难”(stability-plasticity dilemma)[7],其中稳定性表示维持已有知识的能力,可塑性则表示适应新模式的能力。

▲ 图2. 三种不同的增量学习设定
由于数据流不断到来,且需要终生训练,增量学习也被称为“持续学习”(continual learning)[6] 或“终身学习”(lifelong learning)[9]
本文中,这些概念将交替使用。除了类增量学习(CIL)之外,还有其他针对增量学习问题的细粒度设置,例如任务增量学习(Task-Incremental Learning,TIL)和领域增量学习(Domain-Incremental Learning,DIL)[8]
我们在图 2 中展示了这三种协议。TIL 与 CIL 的设置相似,二者都着力学习来自新任务的新类别。然而,区别在于推理阶段:CIL 要求模型在所有类别中进行区分,而 TIL 仅需要在对应的任务空间内进行分类。换句话说,TIL 不需要跨任务的区分能力,因此比 CIL 更容易,可被视为 CIL 的一个特殊情况。
另一方面,DIL 聚焦于概念漂移或分布变化的场景 [10],其中的新任务包含来自不同域的样本,但标记空间相同。在这个例子中,新域对应剪贴画格式的图像。在本文中,我们重点研究更具挑战性的开放世界场景下的 CIL 设置
在深度学习兴起之前,也有关于类增量学习(CIL)的研究 [11]。典型的方法试图通过传统机器学习模型解决灾难性遗忘问题。然而,大多数方法仅处理两阶段的增量学习,即模型仅在一个新阶段进行更新 [12] [13]
此外,随着数据收集和处理能力的快速发展,模型需要能够处理长期且大规模的数据流,而传统的机器学习模型难以胜任这些需求。相应地,具有强大表征能力的深度神经网络非常适合这些要求。因此,基于深度学习的 CIL 正成为机器学习和计算机视觉领域的热门话题

目前,有一些相关综述讨论了增量学习问题。例如,[6] 聚焦于任务增量学习(TIL)问题并提供了全面综述;[14] 是关于类增量学习领域的相关综述,但仅讨论并评估了截至 2020 年的方法。

然而,随着 CIL 领域的快速发展,许多优秀的研究成果正在不断涌现,这显著提升了基准设置的性能 [15][16][17][18]。另一方面,随着 Vision Transformer(ViT)[19] 和预训练模型的繁荣,关于 ViT 在 CIL 中应用的讨论吸引了越来越多的关注
其他综述要么专注于特定领域 [20][21],要么缺乏对最先进技术的讨论 [8][22][23]。因此,有必要提供一篇包含主流方法的最新综述,以加速 CIL 领域的发展。
本文旨在对类增量学习方法进行全面回顾,并将其分为七个类别。我们还基于基准数据集(例如 CIFAR100 [24] 和 ImageNet100/1000 [25])对不同方法进行全面比较。
此外,我们强调了 CIL 模型评估中的一个重要因素,即存储空间,并倡导在对比不同方法时对存储空间进行统一,以实现公平比较。相应地,我们还使用与存储无关的度量全面评估 CIL 模型的可扩展性。
总体而言,本综述的贡献可总结如下:
1. 我们对类增量学习(CIL)进行了全面综述,包括问题定义、基准数据集及不同类别的 CIL 方法。我们将这些算法分类组织(表1)并按时间顺序组织(图3),以对最先进技术进行整体性概述。
2. 我们在多个公开可用的数据集上对不同方法进行了严格且统一的比较,包括传统的基于 CNN 的方法和最新的基于 ViT 的方法。我们还讨论总结了实验中的普遍规律,以期对未来研究有所启发。

3. 为了促进 CIL 模型在实际场景中的应用,这些模型不仅应部署在高性能计算机上,还应能部署在边缘设备上。因此,我们倡导通过对齐模型存储开销来对模型性能进行全面评估,并相应地提供了不同方法在特定存储开销下的全面评估以及新的性能指标。

 

 

类别增量学习分类与发展

▲ 表1. 类别增量学习算法分类
近年来,针对类增量学习(CIL)的研究工作层出不穷,引发了机器学习和计算机视觉领域的广泛讨论。如表 1 所示,我们从七个方面对这些方法进行分类整理
数据重放(Data Replay)方法和数据正则化(Data Regularization)方法专注于使用范例样本(exemplar)解决 CIL 问题,或通过重新访问先前样本,或将它们当作正则化模型更新的指标。
动态网络(Dynamic Networks)方法通过扩展网络结构来增强表征能力。基于参数正则化(Parameter Regularization)的方法通过对模型参数进行正则化,防止其偏移,以抵抗遗忘。
基于知识蒸馏(Knowledge Distillation)的方法通过建立增量模型之间的映射来减少遗忘。模型校正(Model Rectification)方法旨在纠正增量学习器预测的偏差。基于模板的分类(Template-based Classification)方法将推理过程转化为查询与模板的匹配。

我们还在图 3 中按时间顺序列出了这些方法的代表性研究成果,以展示不同时间段的研究重点和发展方向。

▲ 图3. 类别增量学习发展与演化
需要注意的是,这些类别的划分规则是基于每种算法的“关键点”(或特殊关注点)。随着类增量学习(CIL)的快速发展,一些技术正逐渐成为广泛认可的基线,并在多种算法中被共享。

因此,这七个类别并非相互排斥,彼此之间也没有严格的界限。我们将这些方法组织为多个类别,以便从特定视角增强对 CIL 的整体理解。在接下来的章节中,我们将从这些方面详细讨论 CIL 方法。

2.1 数据重放(Data Replay)
“重放”在人的认知系统中具有重要作用 [125][126][127]——例如,一个学生在面对期末考试时会复习教材,以唤起先前的记忆和知识。这种现象同样可以扩展到网络训练过程,通过在学习新类的同时复习旧类数据,网络可以抵抗灾难性遗忘的问题
一种直观的利用以往数据的方式 [82][128] 是维持一个额外的范例集,用于存储所有已经学习过的类别的数据,将范例集拼接到训练集中用于更新模型,从而在学习新概念时回顾先前知识。
如何构建范例集,是大量相关研究关注的问题。不同的采样方式和存储方式,催生了不同类型的数据重放方法来利用以往类别中更具信息性的样本。此外,考虑到范例集样本的存储开销,部分方法也提出了存储模型特征或存储低分辨率的原始图像以减范例集带来的轻存储开销。
与直接保存实例的“直接重放”不同,另外一些“生成式重放”方法则考虑利用生成式模型建模旧类样本分布,在新类学习过程中通过生成式模型生成数据,实现数据重放。

与公式(3)对比可以发现,样本集(E)被拼接到训练集中用于更新模型,从而在学习新概念时回顾先前知识。

如何构建样本集?
利用样本集进行重放简单而高效,因此催生了大量相关研究。样本采样过程与主动学习协议类似,一些研究提出了相应的采样策略来选择更具信息性的样本。
例如:[33] 建议选择具有高预测熵且接近决策边界的样本,通过重放这些“困难”样本,模型可以获得更高的泛化能力。[26] 提出通过数据增强估计样本的不确定性,选择具有大预测多样性的样本,这些样本通过多次增强后的预测聚合来确定。[34] 在在线增量学习中提出了贪婪策略进行样本选择,证明样本选择等价于通过参数梯度作为特征最大化样本多样性。

[35] 探索了在没有显式任务边界的情况下,通过蓄水池采样确保样本独立同分布。[36] 将重放过程形式化为双层优化,在过去任务的某些锚点上保持预测完整性。[37] 在原型网络 [129] 中引入数据重放,并将样本作为伪原型用于嵌入评估。Mnemonics [40] 提出了参数化样本的方法,以元学习的方式优化样本。该框架通过双层优化进行训练,包括模型级优化和样本级优化,可以与多种 CIL 算法结合。

内存高效的重放

由于样本集由原始图像构成,直接保存一组实例可能会消耗大量内存。因此,一些研究致力于构建内存高效的重放缓存 [17][38] 认为提取的特征比原始图像维度更低,提出保存特征以减轻内存负担。[39] 提议保存低保真图像代替原始图像。然而,由于提取特征和低保真图像的分布可能与原始图像不同,这些方法需要额外的适配过程,增加了算法的复杂性。

生成式重放
上述方法通过重放内存中的实例实现了竞争性能。除了直接在样本集中保存实例,生成模型也展示了建模分布和生成实例的潜力 [153][154],并已被应用于类增量学习。我们将直接保存实例的方法称为“直接重放”(Direct Replay),而利用生成模型的方法称为“生成式重放”(Generative Replay)。
在基于生成式重放(Generative Replay)的类增量学习(CIL)中,通常存在两个模型:用于数据生成的生成模型和用于预测的分类模型。
GR [41] 首次提出在 CIL 中利用生成对抗网络(GAN)[153]。在每次更新过程中,GR 利用 GAN 生成来自旧类别的实例,然后使用旧类别和新类别的数据同时更新 GAN 和分类模型。
ESGR [42]:扩展了 GR 方法,通过保存额外的样本进一步提升性能。此外,ESGR 为每个增量任务单独训练一个 GAN,而无需逐步更新现有的 GAN。
动态参数生成器 [43]:在 GR 的基础上,引入动态参数生成器,使模型能够在测试时自适应调整。
FearNet [44]:探索了受大脑启发的 CIL,使用双记忆系统,其中新记忆通过一个专门的网络巩固为近期记忆。
条件 GAN 的应用:近期研究 [45][46][47] 探索了条件 GAN [155] 在 CIL 中的应用,而 [48] 采用变分自编码器(VAE)[154] 对数据分布进行建模。
高斯分布建模:类似地,[49][50] 将每个类别建模为高斯分布,并直接从类别中心采样实例。
扩散模型的兴起:随着扩散模型 [156] 的繁荣,近期研究也开始将扩散模型作为数据生成器,用于生成高质量的样本。例如:SDDR [51]:研究了使用预训练扩散模型作为数据的补充来源。DDGR [52]:采用扩散模型作为生成器,并通过分类器计算指导算子以指导样本生成。
针对扩散模型遗忘问题,相关研究 [157][158] 提出了新的解决方法。这些方法不仅扩展了生成式重放的应用,还通过引入新的生成技术(如扩散模型)进一步提升了生成样本的质量和模型的表现力。
直接重放是一种简单且高效的策略,已被广泛应用于诸多领域,如摄像头定位 [159]、语义分割 [160]、视频分类 [161] 和动作识别 [91]。研究表明,直接重放通过对旧样本的损失进行优化,能够帮助增量学习者在优化过程中保持在先前任务的低损失区域 [162]
由于样本集仅保存了训练集中一小部分数据,数据重放可能导致过拟合,削弱模型的泛化能力 [53][162]。针对这一问题,有研究通过约束模型在样本集上的层级 Lipschitz 常数 [163] 或扩大表示的多样性来缓解表示崩塌现象 [164]。由于样本集中的少样本与训练集中多样本之间的差距,数据重放可能导致分类器偏差。
一些研究通过平衡采样策略 [16][110] 解决这一问题。直接重放需要保存旧类别的样本,这可能带来隐私问题(例如涉及人脸图像)或资源不足问题(例如涉及稀有动物图像)[27]。在此情境下,应设计无需样本的算法 [49] 或采用如特征重放 [50] 等隐私友好的策略。
生成式重放的性能依赖于生成数据的质量。在简单数据集上,其效果显著 [166][167]。在复杂的大规模输入上,生成式重放的表现会显著下降 [168]。为应对此问题,一些研究发现生成特征相比生成原始图像更容易,且在计算复杂度和语义信息上更优。因此,部分工作使用条件 GAN 生成特征 [169] 或通过 VAE 模型化内部表示 [166]

近期扩散模型的进展为利用预训练扩散模型生成样本提供了可能性 [51]。然而,使用预训练模型可能导致与未使用额外信息的其他方法之间的比较不公平。生成式重放方法中,生成模型在连续更新时也会面临灾难性遗忘 [157][158]。对于生成式重放方法,算法需同时解决分类器和生成模型两个方面的灾难性遗忘问题,以提升其在复杂场景下的表现。

2.2 数据正则化
除了直接重放先前的数据外,另一类方法尝试利用先前的数据对模型进行正则化,并控制优化方向。由于学习新类别通常会导致旧类别的灾难性遗忘,一种直观的想法是确保模型在优化新类别时不会损害之前学习到的知识。
基于数据约束的增量学习算法则主要关注如何利用旧类数据约束增量模型的更新过程, 从而使更新后的模型仍能反映旧类数据的特征。
数据正则化方法旨在通过在模型优化过程中施加约束,缓解灾难性遗忘,确保对新类别的更新不会降低之前学习的类别的性能。这是通过利用先前的数据对模型进行正则化,并控制优化方向来实现的。
其中最有代表性的工作是 GEM [53],旨在利用范例集样本作为模型更新的指导。其更新目标是使得模型更新方向不会使范例集中的样本 loss 增大。后续工作进一步扩展了这种思想,并从算法高效性和梯度分解等多个角度实现数据约束。

GEM [53] 引入了一种机制,在学习新类别和保留旧知识之间保持平衡。其优化目标为:

约束条件为:
其中 是在上一任务 上训练的模型, 是样本集。该约束确保了在旧样本上的损失不超过之前模型的损失。GEM 将这些约束转化为基于梯度的形式:
其中 和 分别为当前更新的梯度和从旧样本集中导出的梯度。该约束确保新类别的梯度更新不会与旧样本梯度冲突。

当梯度形式中的不等式被违反时,GEM 通过解决二次规划问题(Quadratic Program, QP),将梯度投影到可行空间内,从而满足约束条件。然而,由于在所有样本集上定义了正则化,GEM 在每一步优化中都需要计算损失并求解 QP 问题,因此优化过程非常耗时。

为了加速优化,A-GEM [54] 在优化过程中将 GEM 的约束放宽到一个随机批次中。这一方法显著减少了计算需求,同时保持了防止灾难性遗忘的能力。

还有其他方法可以通过使用样本来解决正则化问题。例如,Adam-NSCL [55] 提出通过将候选参数更新投影到所有先前任务的近似零空间中,来依次优化网络参数。

OWM [56] 仅允许权重在与所有已学习输入张成的子空间正交的方向上进行修改。LOGD [57] 进一步将梯度分解为共享梯度和任务特定梯度。在模型更新时,梯度应尽量接近新任务的梯度,与所有旧任务共享的梯度一致,并与旧任务特定梯度张成的空间正交。

讨论:数据正则化方法以另一种方式利用样本集,即将其损失视为遗忘的指标。这些方法假设样本集上的损失与先前任务一致,并通过对齐参数更新方向与样本集的方向来实现知识的保留。因此,由于梯度方向的一致性,这些样本可以保留先前的知识。

然而,这些假设在某些情况下可能不成立 [54],从而导致性能较差。为了解决这一问题,[170] 摆脱了对样本的依赖,手动将梯度方向投影到与先前方向正交的位置。

另一方面,有些研究假设更新规则可以从一系列相关任务中通过元学习 [171][172] 得到优化。MER [58] 正则化了数据重放的目标,使得对新样本的梯度更具可迁移性,同时减少与旧样本的干扰。

iTAML [173] 将通用特征提取模块与任务特定分类器分离,从而最小化干扰,并在任务之间促进共享特征空间。[174] 将数据重放扩展到对抗攻击领域,并通过元学习自适应融合模块,帮助分配知识容量以应对不同难度的任务。

此外,由于数据正则化和数据重放都需要在内存中保存先前的数据,因此数据正则化方法中也会出现类似的问题,例如过拟合、泛化问题 [53], [162],以及隐私顾虑 [149]。因此,设计隐私友好的算法以利用中间产物构建正则化项,从而适用于实际应用,显得尤为重要。
2.3 动态网络方法

深度神经网络已被证明会生成特定于任务的特征 [175]。例如,当训练数据集包含“汽车”时,模型倾向于描绘车轮和窗户。然而,如果模型更新为包含“猫”的新类别,其特征将适配为胡须和条纹。由于模型的容量有限,适配新特征会导致旧特征被覆盖,从而引发遗忘 [59]。因此,利用提取的胡须和条纹特征来识别汽车是低效的。

为了解决这一问题,动态网络被设计用来动态调整模型的表示能力,以适应不断变化的数据流。扩展表示能力有多种方法,我们将其分为三类:神经元扩展、主干扩展和提示扩展。

早期的工作集中于通过添加神经元来扩展网络容量,以便在表示能力不足以捕获新类别时进行增强。DEN [59] 将调整过程分为选择、扩展、复制和消除四个步骤,来完成对网络结构启发式的扩展和收缩过程。

如果重新训练后的损失仍然超过某个阈值,DEN 会从上至下地扩展新神经元,并通过群稀疏正则化移除无用神经元。随后,它计算每个神经元的漂移程度,并复制那些从原始值漂移过大的神经元。

除了启发式地扩展和收缩网络结构外,RCL [60] 将网络扩展过程公式化为一个强化学习问题,以为每个新任务搜索最佳的神经结构。同样,神经结构搜索(Neural Architecture Search, NAS)[176] 也被应用于为每个连续任务找到最优结构 [61]

扩展神经元在可扩展表示能力方面显示了竞争力。与之相应,一些工作尝试通过复制主干网络以增强表示能力。这类工作在各大顶会上展示出突出性能,如 DER [15],FOSTER [16],MEMO [17] 等,我们将这几大方法的模型演化流程可视化如下:

▲ 图4. 三种典型的动态网络结构类别增量学习算法

可以看出,DER 为每个新任务构建一个新的主干网络,这将消耗大量的存储空间,为了减少模型扩张带来的爆炸性存储开销,FOSTER 主张在模型扩张后进行一个额外的模型压缩过程,以保持模型的总体存储开销保持不变。

MEMO 则从另一角度考虑减轻模型扩张代价,通过分析模型的参数相似度与偏移程度,MEMO 发现在增量学习过程中模型的改变幅度随网络深度增加而不断增大,同时对于多个增量模型,其浅层的参数相似度较高,而深层的参数相似度较低。

因此 MEMO 提出了一种模型解耦方式,通过将深度模型解耦为泛化层(Generalized Layers)与任务相关层(Specialized Layers),提出模型可以在共享泛化层的前提下仅扩张任务相关层,从而减少模型扩张带来的存储开销。

最近,DER(Dynamic Expansion Networks)[15] 被提出以解决类别增量学习(CIL)的问题。与 PNN 类似,当面临新任务时,它扩展一个新的主干网络,并通过一个更大的全连接(FC)层对特征进行聚合。例如,对于第二个增量任务,模型输出的聚合方式为:
其中, 表示旧主干网络, 表示新初始化的主干网络, 表示特征的聚合, 是新初始化的全连接层。在模型更新过程中,旧主干网络被冻结以保持旧知识:
其中 表示冻结的旧主干网络。DER 还采用一个辅助损失来区分旧类别和新类别。
Eq. 9 展示了一种通过新特征持续扩展模型的方法。在这种情况下,如果旧主干网络经过“汽车”训练, 提取的特征将代表车轮和窗户。而新主干网络通过“猫”训练,负责提取胡须和条纹。由于旧主干网络在后续阶段被冻结,学习新类别不会覆盖旧类别的特征,从而缓解遗忘问题。DER 的模型演化如图 4(左)所示。

在 DER 中,为每个任务保存一个主干网络需要大量内存,因此提出了许多方法以在有限的内存预算下获得可扩展的特征。FOSTER [16] 将 Eq. 9 中的学习过程公式化为一个特征增强问题 [177],并提出并非所有扩展的特征对于增量学习都是必要的,应通过整合减少冗余。

例如,假设旧类别包含“老虎”,新类别包含“斑马”。在这种情况下,条纹是一个对旧主干和新主干都可以提取的有用特征。在这种情形下,强制新主干重复提取相同特征对识别效率较低。因此,FOSTER 通过知识蒸馏 [178] 添加了额外的模型压缩过程:
Eq. 10 的目标是通过最小化学生模型 和教师模型 之间的差异,找到具有相同判别能力的学生模型 。其中,教师模型是冻结的扩展模型,包含两个主干:
而学生模型是新初始化的单主干模型:

因此,主干网络的数量始终限制为一个,从而避免内存预算的灾难性膨胀。

MEMO [17] 针对增量学习(CIL)中的内存问题,旨在以最低的预算成本实现模型扩展。研究发现,在 CIL 中,不同任务模型的浅层部分相似,而深层部分差异显著。换句话说,浅层更具泛化性,而深层特定于任务。

由于浅层扩展对 CIL 来说内存效率较低,MEMO 提出在网络的中间层对主干进行解耦:,其中,专用模块 对应网络的深层,而通用模块 对应浅层。相较于 DER,MEMO 仅扩展专用模块 ,并将公式(9)转化为:

其中任务特定的深层模块 是基于共享的浅层模块 构建的。这种结构表明,每个任务可以基于共享的浅层网络 定制特定的深层模块 ,从而在保留任务特定特征的同时大幅减少内存占用。

近年来,Vision Transformer(ViT)[19] 吸引了计算机视觉领域的广泛关注,许多研究尝试使用 ViT 作为主干网络设计 CIL 学习器。相比于卷积网络,ViT 的模型扩展更加简单。

L2P [69] 和 DualPrompt [70] 等代表方法借鉴了视觉提示调优(Visual Prompt Tuning,VPT)[179] 的思路,通过提示(prompt)逐步微调模型以适应新任务。对于提供的多组提示,每个实例选择最相似的提示,获得特定的预测。除此之外,其他轻量化模型也可以在 CIL 中动态扩展 [181],[182],[183]

在 L2P 中,预训练的 ViT 在学习过程中是冻结的,模型仅优化提示以适应新模式。

提示池定义为:,其中(M)是提示的总数量, 是单个提示,其 Token 长度为 ,嵌入大小(d)与实例嵌入 的大小相同。
这些提示以键值对的形式组织——每个实例通过 KNN 搜索从提示池中选择最相似的提示,获得实例特定的预测。通过适配输入嵌入完成该过程:  其中 是选定的实例特定提示。适配后的嵌入被输入到自注意力层 [32] 中,以获得实例特定的表示。

CODA-Prompt [71] 利用注意力机制扩展了提示搜索。此外,S-Prompt [72] 使用预训练的语言-视觉模型 CLIP [180] 应用于 CIL,同时学习语言提示和视觉提示以增强表征能力。

除了扩展提示以外,其他轻量化模块也可以在 CIL 中动态扩展 [181],[182],[183]

讨论:动态网络学习,尤其是主干扩展方法,在近年来取得了最先进的性能 [15], [16], [17], [68]。然而,这类方法通常需要扩展的内存预算,因此不适用于边缘设备上的增量学习。为了解决此问题,可以采用进一步的模型压缩 [16]、模块解耦 [17] 和剪枝等技术来缓解内存需求。

此外,训练 DER 需要为每个任务单独分配一个主干网络,并将所有历史主干网络聚合为特征提取器,这实际上对其他使用单一主干的模型方法构成了不公平的比较 [17]。本文在 4.44.5 节中系统地研究了这些动态网络与其他方法之间的公平比较协议。

此外,主干扩展忽略了任务间的语义信息,例如,当旧任务包含 “老虎” 而新任务包含 “斑马” 时,多主干可能会重复提取诸如 “条纹” 的特征,从而导致特征冗余。因此,分析任务间的语义关系 [88] 可以帮助检测特征冗余,而对比学习 [184] 可以用于学习更具通用性的特征。

另一方面,大多数提示扩展方法依赖于预训练模型作为初始化。如果没有这样的通用主干网络,使用提示进行轻量化模型更新往往会失败 [185]。然而,在某些特定的下游任务中(例如人脸识别和语音识别),预训练模型并不总是可用。因此,如何摆脱对预训练模型的依赖是这些方法在实际应用中需要解决的关键问题

此外,这些基于提示扩展的方法通常依赖于一批实例来选择实例特定的提示。这种需求在推理过程中同样需要满足,以实现准确的提示检索 [69]。这种机制隐含地导致了不公平的比较,因为在提示检索时利用了一批实例之间的上下文信息,而这违背了机器学习中独立同分布(i.i.d.)测试的常识。

除了上述方法,还有一些研究通过网络掩码(network masks)将大型网络划分为适用于每个任务的子网络 [132], [135], [136]。然而,决定特定子网络的激活需要任务标识符,或者需要额外学习任务分类器。另一方面,一些工作 [152], [186] 提出为增量新任务设计特定模块,例如适配器 [187]

然而,这些模块的手动设计往往需要启发式设计或任务特定的先验知识。这些问题表明,当前方法在实际应用中的可扩展性和通用性方面仍然存在显著挑战,特别是在无预训练模型的场景或需要高效推理的情况下。
2.4 参数正则方法

动态网络旨在通过调整模型容量来适应数据的演变。然而,如果模型结构是固定且不可改变的,我们如何调整其可塑性以抵抗灾难性遗忘?

参数正则化方法认为,不同参数对任务的贡献并不相等。因此,这些方法试图评估每个参数对网络的重要性,并将重要参数保持静态以维护先前的知识。这类算法从贝叶斯框架出发,评估神经网络中的参数不确定性,并将其作为在学习新任务时的先验。

考虑到深度神经网络中的参数规模,以上评估过程往往假设参数之间相互独立,从而可以维持一个和模型大小同等规模的参数重要性矩阵。在学习新的增量学习任务时,便可以基于参数重要性矩阵对更重要的参数施以更大的正则化约束项,从而维持模型在旧类别上的判别能力。

典型的工作会对模型参数进行分布估计,并在学习新任务时将其用作先验。由于参数数量庞大,估计过程通常假设参数之间是独立的。
EWC(Elastic Weight Consolidation)[73] 是首个处理参数正则化的方法。它维护了一个与网络规模相同的重要性矩阵,即 。假设第(k)个模型参数为 ,其重要性由 表示( 越大说明 越重要)。

除了通过公式(3)的训练损失来学习新类别之外,EWC 增加了一个额外的正则化项以记住旧任务:

正则化项按参数逐一计算,由两部分组成:

1.  表示学习上一个任务 后的第(k)个参数;因此, 表示从上一阶段起该参数的偏移量。
2.  是权重,确保重要参数不会偏离上一阶段的值。

由于上一阶段的模型代表了“旧”知识,巩固重要参数能够防止知识被遗忘。EWC 通过量化参数的重要性并对其进行正则化,有效地缓解了固定结构网络中灾难性遗忘的问题。这种方法展示了参数在知识保持中的核心作用,同时为后续的参数正则化方法提供了理论基础。

公式(11)展示了如何对关键参数进行惩罚,而计算重要性矩阵 的方法有多种选择。
EWC 中,采用 Fisher 信息矩阵 [188] 来估计 。然而,EWC 的重要性计算是在每个任务结束时进行的,这忽略了模型训练过程中优化动态的影响。
为了解决这一问题:SI(Synaptic Intelligence)[74] 提出了在线估计 的方法,根据参数对损失下降的贡献来权衡其重要性。RWalk [33] 综合了上述重要性估计技术,结合了 Fisher 信息矩阵的静态和动态计算。
[75], [76] 借助额外的无标签数据集进行在线评估,以提升重要性矩阵的精确性。IMM(Incremental Moment Matching)[77] 使用 Fisher 信息矩阵估计高斯后验的混合最大值。

此外,针对不同网络层在增量学习中的特性,IADM [78] 和 CE-IDM [79] 研究了不同层的容量与可持续性,发现浅层和深层在增量学习中的表现差异:浅层收敛速度快,但表示能力有限。深层收敛速度慢,但具备强大的区分能力。

因此,IADM 在 EWC 的基础上通过集成不同层的方法增强模型,在线学习层级重要性矩阵。K-FAC [80] 扩展了 Fisher 信息矩阵的近似计算,采用克罗内克分解(Kronecker Factorization)技术以提高计算效率。

讨论:尽管参数正则化和数据正则化都通过正则项来抵抗遗忘,但它们的核心思想有本质区别:数据正则化依赖样例集来引导优化方向,参数正则化则基于参数的重要性来构建正则项,通过限制重要参数的变动来保护先前知识。

两种方法各有优势,参数正则化更关注模型内部的参数层级结构,而数据正则化注重样本分布的利用。在实际应用中,可以根据任务需求选择合适的方法或结合两者实现更强的抗遗忘能力。

图 3 所示,参数正则化方法在早期阶段就已引起了学术界的关注。研究 [189] 指出,尽管 SI [74] MAS [75] 的动机截然不同,它们实际上都近似于 Fisher 信息的平方根,而 Fisher 信息是 EWC 的理论依据。然而,估计参数重要性需要保存与主干网络规模相同的矩阵,这带来了以下挑战:

1. 内存需求问题:随着任务数量的不断增加,重要性矩阵的内存需求呈线性增长,与动态网络方法面临相似的内存预算限制问题。

2. 矩阵冲突问题:在不同的增量阶段,重要性矩阵可能会产生冲突 [88],使模型优化变得困难,从而导致新任务上的性能下降。

尽管参数正则化方法在任务增量学习(Task-Incremental Learning)中取得了竞争性结果,但许多研究 [8] 发现,在类别增量学习(Class-Incremental Learning)场景下,这些方法表现不佳。这主要是因为:正则项限制了模型对新任务的充分学习,导致模型表现出 “不适应性”(intransigence)

为了解决上述问题,一些研究尝试通过以下方法缓解不适应性:

1. 学习新主干网络并整合:在学习新任务时,引入一个新主干网络,而不是直接对原有网络施加正则化约束 [64], [77]。在后续的整合过程中,再考虑参数重要性,以确保模型能充分适应新任务。

2. 整合机制的优势:在学习新任务的过程中,模型不会受到正则化项的限制,能够完全适应新任务的数据分布。参数重要性矩阵仅在整合阶段使用,有助于减少冲突并保持对旧任务的记忆。

总结:尽管参数正则化方法在抵抗遗忘方面有理论支持,但其内存需求和优化冲突问题限制了其应用范围。结合动态网络的思想(如学习新主干并整合),可以在不牺牲新任务性能的前提下缓解这些问题,进一步提升类别增量学习的表现。

2.5 知识蒸馏方法

在学习过程中,训练数据是不断变化的,这要求模型进行顺序调优。我们可以将上一个阶段的模型称为“旧模型”,而当前更新的模型称为“新模型”。假设旧模型对于所有已见类是一个良好的分类器,那么我们如何利用旧模型来帮助新模型防止遗忘呢?

为了解决这个问题,一种直观的方式是应用知识蒸馏(KD),这一方法允许从教师模型(旧模型)到学生模型(新模型)转移知识。知识蒸馏通过帮助新模型学习旧模型的预测,减少新模型遗忘旧任务知识的可能性

为了建立这种蒸馏关系,已有多种方法,这些方法可以分为三类:logit 蒸馏、特征蒸馏和关系蒸馏。下图展示了三种模型对齐的方式的异同:

▲ 图5. 三种不同利用知识蒸馏的增量学习范式

logit 蒸馏与 LwF(Learning without Forgetting)

LwF 是将知识蒸馏成功应用于类增量学习(CIL)的首个案例。类似于式(11),它通过知识蒸馏构建正则化项,以防止遗忘:

其中,旧模型 在更新过程中被冻结。正则化项通过强制要求旧模型和新模型之间的预测概率保持一致,来建立旧模型和新模型之间的映射关系。给定一个特定的输入 x,第 k 类的输出概率揭示了输入与该类的语义相似性。因此,式(12)强制要求旧模型和新模型的语义关系保持一致,从而防止遗忘。

iCaRL [82]LwF 扩展为使用示例集,这有助于在增量学习过程中进一步回忆以前的知识。此外,iCaRL 去掉了全连接层,并采用了 [190] 中的方法,在推理过程中使用示例的均值进行最近邻查询。

式(12)在旧类和新类之间进行权衡,其中前一部分旨在学习新类,后一部分则保持旧知识。由于不同增量阶段的旧类和新类数量可能不同,BiC [83] 通过引入动态权衡项扩展了式(12):
其中, 表示旧类在所有类中的比例。随着增量任务的演进, 会增加,表明模型在训练过程中越来越关注旧类。

LwF 启发了社区通过构建模型之间的映射,使得知识蒸馏成为类增量学习(CIL)中的一个有用工具。D+R [84] 建议将式(12)中的第一部分替换为通过训练额外的专家模型得到的蒸馏损失。

GD [85] 提出了选择外部数据进行模型蒸馏,并设计了一种基于置信度的采样方法,以有效利用外部数据。同样,DMC [86] 提出了在每个增量阶段训练一个新模型,然后通过额外的无标签数据将它们压缩为一个模型。

最后,如果没有额外的数据可用于知识蒸馏,ABD [87] 提出了为增量学习蒸馏合成数据。这些方法专注于利用旧模型来帮助新模型抵抗遗忘。然而,COIL [88] 提出了进行双向蒸馏和协同传输,其中既利用了旧模型与新模型之间的语义关系。

除了蒸馏 logits 外,一些研究提出了蒸馏深度模型中的中间结果,例如提取的特征。UCIR [89] 将式(12)中的正则化项替换为:

式(13)强制要求新嵌入模块提取的特征与旧模型的特征相同,这比式(12)提供了更强的正则化。一些研究跟随这一方法,在 CIL 中利用特征蒸馏 [90], [91],[97], [98],而其他研究则提出了蒸馏其他结果。

LwM [92] 提出了通过惩罚分类器注意力图的变化来抵抗遗忘。AFC [93] 在蒸馏过程中考虑了不同特征图的重要性。PODNet [94] 通过最小化高度和宽度方向上池化的中间特征差异,而不是逐元素蒸馏。

CVIC [191] 将蒸馏项解耦为空间特征和时间特征,用于视频分类。DDE [95] 在蒸馏过程中考虑了旧训练的因果效应,以保存旧知识。GeoDL [96] 基于旧模型和新模型的两个特征集的投影进行蒸馏。

然而,logits 蒸馏和特征蒸馏都涉及旧模型和新模型之间的实例级映射。为了揭示模型蒸馏中的结构信息,一些研究建议进行关系知识蒸馏 [192]。这些知识蒸馏方法之间的差异如图 5 所示。

进行关系蒸馏时,需要提取一组实例,例如三元组。我们将提取的三元组表示为 ,其中 称为锚点。在一个三元组中,目标邻居 与锚点 相似,属于同一类,而冒充点 与 不相似(通常来自不同类)。R-DFCIL [99] 提出了映射三元组之间的角度:
其中, 表示旧模型嵌入空间中的表示, 表示当前模型中的表示。余弦值是在相应的嵌入空间中计算的。式(14)提供了一种将旧模型的结构信息编码到新模型中的方法,并柔性地对齐特征空间。

ERL [100] 将这一正则化扩展到少样本CIL场景中。TPCIL [101] 通过弹性赫布图模型化关系,并惩罚顶点之间拓扑关系的变化。TOPIC [27] 进一步探索神经气体网络来建模类别之间的关系。除了三元组关系外,MBP [102] 将正则化扩展到实例邻域,要求旧模型和新模型在邻域中的距离排序相同。

讨论:知识蒸馏是一种通用的方法,用于建立一组方法之间的映射,它在类增量学习中得到了广泛应用,且有多种形式(例如,logits、特征、关系)。

由于其灵活性,基于知识蒸馏的方法也广泛应用于各种增量学习任务,例如语义分割 [193]、行人重识别 [194]、人类动作识别 [91] 和联邦学习 [149]。由于 CIL(类增量学习)中存在一组模型,构建学生-教师映射是直观的,这使得知识蒸馏成为大多数研究中的重要解决方案。

然而,由于知识蒸馏的目标是在学习新任务和记住旧任务之间取得平衡,因此很难精确控制塑性和稳定性之间的折衷。具体来说,给予知识蒸馏项更多的权重会损害学习新任务的塑性,而给予较低的权重则会导致灾难性遗忘或特征覆盖。

与动态网络相比,基于知识蒸馏的方法缺乏学习随着数据发展而逐步变化的更具信息量的特征的能力。[17] 比较了基于知识蒸馏和基于动态网络的方法,并发现它们在不同的内存预算下各有优势。具体而言,基于知识蒸馏的方法在内存有限的情况下表现更强,而动态网络需要充足的内存预算才能具有竞争力。

此外,特征/关系蒸馏只对提取的特征进行正则化,使其相似,从而正则化嵌入函数以抵抗遗忘。然而,由于 CIL 的数据特点,分类器层也会出现偏差并遗忘先前的知识,而基于知识蒸馏的方法无法应对这种挑战。
2.6 模型矫正方法

假设我们可以一次性获得所有训练数据集,并通过多次迭代对其进行洗牌训练,那么模型将不会遭受任何遗忘,并且在所有类别中表现良好。这样的设定被称为类增量学习的上界,表示为 “Oracle”。

然而,由于增量数据训练的模型会遭受灾难性遗忘,多种方法尝试发现 CIL 模型中的异常行为,并将其修正为类似于 Oracle 模型的表现。这些异常行为包括输出 logits、分类器权重和特征嵌入。

基于模型矫正的类别增量学习算法主要通过观察这一类归纳偏好/偏置(bias),并采取相应的矫正策略。例如,UCIR [89] 发现新类的权重范数显著大于旧类,模型倾向于将实例预测为具有较大权重的新类,而余弦分类器可以减少分类器偏置的影响。

这样,权重范数在增量学习中的模型预测中不会产生影响。WA [112] 进一步在每次优化步骤后对权重进行归一化,并引入权重裁剪,确保预测概率与分类器权重成比例。SS-IL [113] 解释了权重漂移的原因,这种现象是由旧实例和新实例之间的不平衡所导致的。

由于新类别实例的数量远多于旧类别实例,使用交叉熵损失优化模型会增加新类的权重并减少旧类的权重。因此,SS-IL 建议采用分离的 softmax 操作和任务级知识蒸馏,以减轻数据不平衡的影响。RPC [114] 提出,所有类别的分类器可以预分配并固定,这样分类器就无法偏向新类别。

另一方面,几项研究发现新类别的预测 logits 比旧类别的要大得多。E2E [110] 提出,在每个阶段之后使用平衡数据集微调全连接层。此外,BiC [83] 提出附加一个额外的修正层来调整预测。该修正层只有两个参数,即重新缩放参数 α 和偏置参数 β,对于 k 类的修正输出表示为:
只有新类别()的 logits 在每次增量任务后会被修正。BiC 从示例集(exemplar set)中分离出一个额外的验证集,即 ,并使用验证集来调节修正层。
另一方面,IL2M [111] 建议使用历史统计数据重新缩放输出。假设某个实例被预测为新类别,则 logits 将被重新缩放,以确保旧类别和新类别的预测遵循相同的分布。

最后,由于在 CIL 中嵌入模块是逐步更新的,一些研究试图修正增量模型的偏倚表示。例如,SDC [105] 利用最近邻类中心分类器,它计算类中心并将实例分配给最近的类中心。然而,由于嵌入是逐步更新的,前一阶段计算的类中心可能在下一阶段发生漂移,从而使分类结果变得不可靠。

由于在当前阶段无法获得旧类别的实例,SDC 旨在通过新类别的漂移来校准旧类别的类中心。CwD [106] 分析了 CIL 模型和 Oracle 模型之间嵌入的差异,并发现 Oracle 模型的嵌入分布更加均匀。它的目标是通过强制特征值接近,使 CIL 模型更接近于 Oracle 模型。

ConFiT [107] 缓解了中间层的特征漂移。MRFA [195] 发现,随着数据的演变,重放样本的全层边界会收缩。其他研究则关注模型权重的修正。CCLL [108] 旨在校准增量学习过程中的旧模型激活图。RKR [109] 提出在学习新任务时修正旧模型的卷积权重。

FACT [104] 描述了一种新的 CIL 训练范式,即前向兼容训练。由于嵌入空间不断调整以适应新类别,FACT 提出预先分配新类别的嵌入空间,以减轻嵌入调优的负担。

讨论:基于模型修正的方法旨在减少 CIL 模型中的归纳偏差,并使其与 Oracle 模型对齐。这类工作有助于理解灾难性遗忘的内在因素。除了本节列出的修正方法外,[113] 指出 CIL 模型的偏差来源于不平衡的数据流。[184] 发现,通过对比损失训练的嵌入比交叉熵损失训练的嵌入遗忘得更少。

[196] 发现 CIL 中的批归一化层 [197] 存在偏差,并提出对该层输出进行重新归一化。[198] 发现视觉转换器在增量更新时逐渐失去局部信息,并提出将局部性先验信息插入自注意力过程。这些工作通常将 Oracle 模型作为示例,并设计训练技术以反映 Oracle 模型的特征。

除了模仿 Oracle 模型之外,也有一些研究关注前向兼容性 [104] 和平坦的损失地形。由于 CIL 的最终目标是在所有任务之间找到一个平坦的最小值,一些工作旨在在第一阶段实现这一目标 [199][200]。未来值得探索灾难性遗忘中的其他因素及其对应的解决方案。

另一方面,Oracle 模型是通过所有数据的联合训练以及监督损失获得的。其他与任务无关的特征也可以帮助构建一个整体的分类器,例如通过对比学习 [184],这是 Oracle 模型所不具备的。
2.7 基于模板的分类方法

如果我们能够为每个类别构建一个“模板”,则分类可以通过将查询实例与最相似的模板进行匹配来完成。一种流行的方法是利用类别原型 [129] 作为模板,这一方法源于认知科学 [201]。在深度神经网络中,原型通常定义为嵌入空间中的平均向量。因此,我们可以通过将实例与最近的原型进行匹配来进行推理,而无需依赖全连接层。

然而,使用基于原型的推理也面临另一个挑战,即阶段之间的嵌入不匹配。由于嵌入函数在不同阶段不断变化,前一阶段的原型可能与后续阶段的查询嵌入不兼容。这种现象也被称为语义漂移 [105]

为了填补这一空白,一种简单的解决方案是利用范例集,并在每个阶段后重新计算类别原型 [37],[82]。由于范例集包含了前面类别的实例,在每个增量阶段后重新计算所有类别原型可以确保原型与最新的嵌入函数兼容。然而,当示例集不可用时,需要设计特定的算法来补偿语义漂移。

例如,我们可以利用当前的嵌入函数 φ(·) 提取第 i 类的原型:
其中,N 是第 i 类的实例数。在公式 16 中,类别原型是通过嵌入空间中的类别中心计算的。因此,我们可以通过将实例与最近的原型进行匹配来进行推理,而无需依赖全连接层:

如在基于模型修正的方法中所讨论的,增量模型的逐步更新会导致全连接层的偏差。因此,iCaRL [82] 提出通过公式 17 进行推理,这也被称为最近类均值分类器 [190]。由于推理是通过在相同嵌入空间中进行实例与原型匹配来进行的,因此可以减轻不同阶段之间的偏差。

然而,使用基于原型的推理也面临另一个挑战,即阶段之间的嵌入不匹配。由于嵌入函数在不同阶段不断变化,前一阶段的原型可能与后续阶段的查询嵌入不兼容。这种现象也被称为语义漂移 [105]

为了填补这一空白,一种简单的解决方案是利用示例集,并在每个阶段后重新计算类别原型 [37],[82]。由于示例集 E 包含了前面类别的实例,在每个增量阶段后重新计算所有类别原型可以确保原型与最新的嵌入函数兼容。然而,当示例集不可用时,需要设计特定的算法来补偿语义漂移。

在没有示例集的情况下的原型推理:当在类增量学习(CIL)中没有示例集可用时,有两种主要方法可以维持基于原型的分类器。一种简单的解决方案是在第一个增量阶段之后冻结嵌入函数,这样可以确保不同阶段的原型保持兼容。该方法假设在第一个阶段训练的嵌入函数具有足够的泛化能力,可以处理未来的任务。

因此,研究人员通常会设计合适的训练技术,使用第一阶段的数据((D_1))来获得一个能够很好地泛化到未来任务的特征空间。例如,对比学习被用来设计预任务,以增强第一阶段学习到的表示 [49] [120]

CEC [115] 采用元学习方法,通过在分类器之间传播上下文信息来调整新类的原型。LIMIT [121] 发现第一阶段的原型倾向于将实例过度预测为第一阶段的类别,提出通过元学习的变换器块来校准预测的logits,使其适应新旧类别。TEEN [119] 分析了新旧类之间的性能差距,建议将新类的原型推向旧类的原型,从而校准决策边界。

此外,一些方法旨在通过为新类保留嵌入空间来提高模型的前向兼容性,使得嵌入空间能够容纳新类而不损害现有类的性能。FACT [104] 提出了为新类分配“虚拟原型”的方法,并使用双模目标标签和流形混合来生成新类实例,以确保新类能够顺利插入空间。

当有预训练嵌入函数时,ADAM [116] 发现基于原型的分类器优于最先进的基于提示的方法。尽管预训练的模型可能具有良好的泛化能力,但它仍然缺乏增量数据集所需的任务特定信息。

为了解决这个问题,ADAM 提出了“适应与合并”协议,通过将预训练模型的泛化能力与任务特定的适应性结合起来。在使用第一阶段数据集对嵌入进行微调后,ADAM 将微调后的嵌入与预训练的嵌入结合,以提取原型。

RanPAC [117] 进一步扩展了这一方法,通过使用随机投影将结合的特征投射到更高维度的空间中,从而提高了类别分离的效果。此外,FeCAM [118]贝叶斯分类器代替了余弦分类器,解决了原有余弦分类器的局限性。

一些工作试图补偿语义漂移,即随着嵌入函数在不同阶段的变化而导致的原型漂移。例如,SDC [105] 量化了不同阶段之间原型的漂移,并利用当前阶段数据的加权组合作为参考。ZSTCI [122] 通过将不同阶段的原型映射到同一嵌入空间来对其进行对齐,并引入了跨阶段的原型对齐损失,以减少漂移。

最后,另一种方法是考虑生成分类 [123],其中每个类别通过生成模型表示。与使用原型不同,类别是由生成模板表示的。然后,通过计算查询实例在生成模型下的似然来进行推理。与基于原型的方法相比,这种方法在推理过程中需要更多的计算资源。

讨论:模板分类有两个主要优点:

1. 当示例集可用时,使用模板分类可以在嵌入空间中通过查询实例与原型进行匹配。由于增量学习后分类器会出现偏差,利用这种匹配目标可以在推理时减轻归纳偏差 [82]

2. 当预训练模型(或使用大规模基础类训练的模型)作为初始化模型可用时,特征表示具有较强的泛化能力,并可以转移到下游任务中。因此,冻结嵌入并使用基于模板的分类可以充分利用这些具有泛化能力的特征,且这种非增量学习模型不会因冻结的主干网络而遭遇遗忘问题 [116] [117] [118]

然而,这种方法也存在一些缺点:

1. 当没有示例集时,无法重新计算原型,需要一个复杂的调整过程来克服语义漂移 [105] [122]

2. 冻结主干网络并使用基于模板的分类器时,模型牺牲了其对下游任务的适应性。如果预训练模型和下游数据之间存在显著的领域差异 [203] [204],基于模板的分类将失败,因为它无法提取出具有普遍适用性的特征。在这种情况下,持续调整主干网络可能更加适合提取任务特定的特征。

最后,我们可以使用基于能量的模型 [205] 来为每个类别计算能量值,而不是计算似然值 [206],以此来减轻生成模型带来的高计算开销。

类别增量学习方法评估

本文主要在 3 个增量学习基准数据集 CIFAR100,ImageNet100/1000 上对 17 个典型类别增量学习算法进行评估。目的是回答三个问题:

  1. 这些方法在基准数据集上的性能如何?
  2. 在基准数据集上的评估结果是否是公平对比的?
  3. 如果基准数据集无法公平对比类别增量学习模型,如何设计存储无关的增量学习评估指标?

我们首先回答第一个问题,并在 CIFAR100 和 ImageNet100/1000 的多种数据划分上进行了实验,主要对比以下 17 个方法:

  • 数据重放:Replay [128],RMM [144]
  • 数据正则:GEM [53]
  • 参数正则:EWC [73]
  • 动态网络:AANets [66],FOSTER [16],MEMO [17],DER [15],DyTox [18],L2P [69]
  • 知识蒸馏:LwF [81],iCaRL [82],PODNET [94],Coil [88]
  • 模型矫正:WA [112],BiC [83]
  • 基线方法:Finetune

结果如下:

▲ 图6 不同类别增量学习算法的性能对比

进一步地,我们将不同算法在 CIFAR100 上的性能与参数数目等在下表中进行了汇总:

▲ 表2 CIFAR100上不同算法的参数数目与性能对比

通过以上实验,我们有以下结论:

  • 在 CIL 模型中,使用范例集进行数据重放是一种简单有效的防止遗忘的方法。
  • 知识蒸馏在防止遗忘方面的表现优于参数正则化,在相同计算开销的情况下知识蒸馏更适用于类别增量学习。
  • 模型矫正可以即插即用的方式进一步提高其他 CIL 模型的性能。
  • 预训练模型可以减轻增量学习的负担,并显示出非常强的性能.然而,由于预训练模型的特征已经可用,不需要增量学习,因此将预训练模型与其他方法进行比较是不公平的。
  • 动态网络在评估中表现最佳,但需要额外的存储开销。
接下来,我们回答第二个问题,即这些方法是否被公平对比。为了回答这个问题,我们将 CIFAR100 Base0 Inc10 上不同模型的存储开销进行了可视化,结果如下(左图):

▲ 图7 不同评估范式下的总存储开销对比

可以发现,当前基准设定下的对比虽然要求不同方法使用等量的范例集样本,却忽视了另一个重要的因素,即模型的参数数目。存储旧模型同样占用了存储开销,这使得不同方法并未被公平对比

可以设想一种极端情况,如果一个记忆模型将所有见过的样本存储为它的参数,那么它的存储开销将是无限的,但是它的性能将是最好的。因此,我们将类别增量学习过程中的总存储开销定义为:

总存储开销 = 范例集样本存储开销 + 模型存储开销

因此,一个更公平的对比应该是将不同方法的总存储开销进行对齐,对于模型存储开销更小的方法,应当为他们存储更多的范例集样本(如上右图所示)。

模型参数与范例集样本的转换关系为: ResNet32 模型的参数数目为  463,504 个(float),一个 CIFAR 图像需要占用 3 × 32 × 32 个整型存储(int)。因此,存储一个 ResNet32 模型的开销等于存储 463,504 个 float ×4 bytes/float ÷(3 × 32 × 32) bytes/image ≈ 603 个 CIFAR 图像。

我们在这种设定下重新进行了基准数据集上的实验,结果如下:

▲ 图8 不同方法使用相同模型存储开销情况

可以发现,当将所有方法的存储开销进行对齐后,不同方法间的性能差距变小。

最后,我们回答第三个问题。考虑到上述对比只是将不同方法的存储开销进行了对齐,将存储开销更小的方法进行了补足扩大,然而,真实世界场景中,存储开销是有限的,CIL 模型不应仅在高性能计算机上部署,还应在边缘设备上部署。

因此,我们设计了多个存储对比节点,既涵盖了较小的存储开销,也涵盖了较大的存储开销,以便在不同的预算下进行选择。

我们倡议在不同的存储开销下对比类别增量学习方法,并绘制如下所示的性能-存储曲线

▲ 图9 性能-存储曲线 横轴代表存储开销 纵轴代表模型性能

可以发现,不同类型的类别增量学习方法各有优缺点,其中动态网络结构方法更适宜在大存储开销下部署,而传统的基于单个主干网络的方法则更适宜在小存储开销下部署。为了衡量算法的可扩展性,我们主张用曲线下的面积(AUC)进行评估
我们定义了两种 AUC,分别为 AUC-A 和 AUC-L,他们的区别在于绘图时的 Y 轴指标,AUC-A 使用平均准确率,AUC-L 使用最终准确率。我们对多个算法的 AUC 进行了计算,结果如下:

▲ 图9 不同算法的AUC指标,用于衡量模型可扩展性
我们发现,FOSTER 和 MEMO 算法在这种存储无关的对比指标下具有更好的性能,这表示他们具有更好的可扩展性。AUC-A 和 AUC-L 提供了一种内存不可知的方式来评估不同的 CIL 算法,这可以帮助在给定任何预算下选择具有可扩展性的方法。

未来展望及方向

具有复杂输入的 CIL:在现实世界中,数据通常具有复杂的格式,例如:少样本学习 [27]、不平衡数据 [28]、弱监督学习 [184][214]、多模态数据 [180][183]、概念漂移 [10]、新类 [215] 等。为了更好的泛化能力,CIL 方法应该能够处理这些现实世界的场景。

具有一般数据流的 CIL:目前的 CIL 方法对数据流有一定的限制,例如保存示例集以进行复习、在增量任务中进行多轮离线训练等。此外,大多数 CIL 方法依赖于基础类的数量来定义模型优化的超参数,其中更多的基础类需要更大的稳定性,而较少的基础类则需要更大的可塑性。因此,设计能够处理任何基础类的 CIL 问题 [226] 对现实世界至关重要。

具有任意内存/计算预算的 CIL:在现实世界中,一个好的 CIL 算法应该能够处理不同的预算限制。比如,部署并比较 CIL 模型时,应考虑内存预算。AUC-A/L [17] 等性能度量是一个合适的解决方案,能够在给定任何内存预算的情况下全面比较不同的方法。

另一个重要的特点是计算预算 [228]。对于现实场景中的高吞吐量数据流,计算瓶颈对学习带来了隐含约束,这可能使得训练中无法重新访问太多过去的样本。因此,设计在现实世界应用中高效的计算算法仍然是将 CIL 与现实场景相关联的一个有前景的方向。

与预训练模型结合的 CIL:近年来,预训练模型凭借其强大的迁移能力在 CIL 领域表现出色,尤其是基于视觉 Transformer(ViT)的方法 [69][70][71][72]。CIL 与预训练模型相结合,是处理现实世界增量应用的一个良好起点。

然而,由于增量学习的最终目标是持续构建一个具有广泛适用性的特征空间,一些人可能认为预训练模型削弱了增量学习的难度。从这个角度看,从头开始训练CIL模型会更具挑战性。另一方面,近年来,预训练的语言-视觉模型 [180] 展现了强大的泛化能力,探索不同预训练模型的集成也是一个令人兴奋的话题。

CIL 与双向兼容性:兼容性是软件工程中的一种设计特性 [229][230][231][232],并在 [233][234] 中引入了机器学习领域。向后兼容性允许与旧的遗留系统进行互操作。相比之下,向前兼容性则使系统能够接受为其后续版本设计的输入。

在增量学习领域,兼容性也是一个核心问题,新的模型需要理解旧模型产生的特征,以便分类旧类。大多数方法旨在通过使新模型与旧模型相似来增强向后兼容性。然而,FACT [104] 处理了 CIL 中的向前兼容性,模型应为未来的更新做好准备,表现得像是预先分配的接口。此外,未来探讨双向兼容性 [88] 也将是一个有趣的话题。

分析灾难性遗忘的原因:基于模型修正的方法旨在减少 CIL 模型中的归纳偏差。最近,更多的研究尝试分析 CIL 中遗忘的原因。[196] 认为,当顺序训练时,批量归一化层存在偏差,这会导致旧类和新类的激活不同。[223] 发现,具有大特征值的表示能够更好地转移并且受到的遗忘影响较小,未来从理论和实证角度进一步探索灾难性遗忘的原因将是一个有趣的研究方向。

结论

现实世界的应用通常面临流数据问题,模型应当能够在不发生灾难性遗忘的情况下逐步更新。在本文中,我们对类增量学习(CIL)进行了全面的综述,将当前的典型算法分为七个类别,并给出了各类算法随时间的发展演进方向。

此外,我们还对多种公开数据集上的不同方法进行了全面的比较。通过这些结果,我们讨论了相关的见解并总结了常见的规律,以启发未来的研究。

最后,我们强调了 CIL 比较中的一个重要因素——内存预算,并提倡通过强调内存预算的影响来全面评估不同方法。我们提供了在特定预算下对不同方法的综合评估,以及一些新的性能度量。我们期望这篇综述能够提供一种有效的方式来理解当前的最先进技术,并加速 CIL 领域的发展。

(文:PaperWeekly)

发表评论