
收录期刊:
论文地址:
代码链接:
进一步地,我们注意到当前领域内的评估过程忽略了存储开销对模型性能的影响,不同存储开销的模型同时进行对比是一种不公平的比较,可能导致有偏的结果。因此,我们主张通过在评估中对齐存储开销来实现公平比较,同时提出了多个与存储无关(memory-agnostic)的性能评估指标。
引言
类增量学习的核心挑战是灾难性遗忘(catastrophic forgetting)问题。具体而言,直接使用新类别优化网络会抹去之前类别的知识,导致性能不可逆地下降。因此,如何有效抵抗灾难性遗忘,成为构建 CIL 模型的核心问题。
一个优秀的模型应该在刻画新类别特征与保留已学旧类别模式之间取得平衡。这种权衡也被神经系统研究中称为“稳定性-可塑性两难”(stability-plasticity dilemma)[7],其中稳定性表示维持已有知识的能力,可塑性则表示适应新模式的能力。
目前,有一些相关综述讨论了增量学习问题。例如,[6] 聚焦于任务增量学习(TIL)问题并提供了全面综述;[14] 是关于类增量学习领域的相关综述,但仅讨论并评估了截至 2020 年的方法。
3. 为了促进 CIL 模型在实际场景中的应用,这些模型不仅应部署在高性能计算机上,还应能部署在边缘设备上。因此,我们倡导通过对齐模型存储开销来对模型性能进行全面评估,并相应地提供了不同方法在特定存储开销下的全面评估以及新的性能指标。
我们还在图 3 中按时间顺序列出了这些方法的代表性研究成果,以展示不同时间段的研究重点和发展方向。
因此,这七个类别并非相互排斥,彼此之间也没有严格的界限。我们将这些方法组织为多个类别,以便从特定视角增强对 CIL 的整体理解。在接下来的章节中,我们将从这些方面详细讨论 CIL 方法。
与公式(3)对比可以发现,样本集(E)被拼接到训练集中用于更新模型,从而在学习新概念时回顾先前知识。
[35] 探索了在没有显式任务边界的情况下,通过蓄水池采样确保样本独立同分布。[36] 将重放过程形式化为双层优化,在过去任务的某些锚点上保持预测完整性。[37] 在原型网络 [129] 中引入数据重放,并将样本作为伪原型用于嵌入评估。Mnemonics [40] 提出了参数化样本的方法,以元学习的方式优化样本。该框架通过双层优化进行训练,包括模型级优化和样本级优化,可以与多种 CIL 算法结合。
内存高效的重放
由于样本集由原始图像构成,直接保存一组实例可能会消耗大量内存。因此,一些研究致力于构建内存高效的重放缓存 [17]:[38] 认为提取的特征比原始图像维度更低,提出保存特征以减轻内存负担。[39] 提议保存低保真图像代替原始图像。然而,由于提取特征和低保真图像的分布可能与原始图像不同,这些方法需要额外的适配过程,增加了算法的复杂性。
近期扩散模型的进展为利用预训练扩散模型生成样本提供了可能性 [51]。然而,使用预训练模型可能导致与未使用额外信息的其他方法之间的比较不公平。生成式重放方法中,生成模型在连续更新时也会面临灾难性遗忘 [157][158]。对于生成式重放方法,算法需同时解决分类器和生成模型两个方面的灾难性遗忘问题,以提升其在复杂场景下的表现。
GEM [53] 引入了一种机制,在学习新类别和保留旧知识之间保持平衡。其优化目标为:



当梯度形式中的不等式被违反时,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] 将数据重放扩展到对抗攻击领域,并通过元学习自适应融合模块,帮助分配知识容量以应对不同难度的任务。
深度神经网络已被证明会生成特定于任务的特征 [175]。例如,当训练数据集包含“汽车”时,模型倾向于描绘车轮和窗户。然而,如果模型更新为包含“猫”的新类别,其特征将适配为胡须和条纹。由于模型的容量有限,适配新特征会导致旧特征被覆盖,从而引发遗忘 [59]。因此,利用提取的胡须和条纹特征来识别汽车是低效的。
为了解决这一问题,动态网络被设计用来动态调整模型的表示能力,以适应不断变化的数据流。扩展表示能力有多种方法,我们将其分为三类:神经元扩展、主干扩展和提示扩展。
早期的工作集中于通过添加神经元来扩展网络容量,以便在表示能力不足以捕获新类别时进行增强。DEN [59] 将调整过程分为选择、扩展、复制和消除四个步骤,来完成对网络结构启发式的扩展和收缩过程。
如果重新训练后的损失仍然超过某个阈值,DEN 会从上至下地扩展新神经元,并通过群稀疏正则化移除无用神经元。随后,它计算每个神经元的漂移程度,并复制那些从原始值漂移过大的神经元。
除了启发式地扩展和收缩网络结构外,RCL [60] 将网络扩展过程公式化为一个强化学习问题,以为每个新任务搜索最佳的神经结构。同样,神经结构搜索(Neural Architecture Search, NAS)[176] 也被应用于为每个连续任务找到最优结构 [61]。
▲ 图4. 三种典型的动态网络结构类别增量学习算法
可以看出,DER 为每个新任务构建一个新的主干网络,这将消耗大量的存储空间,为了减少模型扩张带来的爆炸性存储开销,FOSTER 主张在模型扩张后进行一个额外的模型压缩过程,以保持模型的总体存储开销保持不变。
MEMO 则从另一角度考虑减轻模型扩张代价,通过分析模型的参数相似度与偏移程度,MEMO 发现在增量学习过程中模型的改变幅度随网络深度增加而不断增大,同时对于多个增量模型,其浅层的参数相似度较高,而深层的参数相似度较低。
因此 MEMO 提出了一种模型解耦方式,通过将深度模型解耦为泛化层(Generalized Layers)与任务相关层(Specialized Layers),提出模型可以在共享泛化层的前提下仅扩张任务相关层,从而减少模型扩张带来的存储开销。


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


因此,主干网络的数量始终限制为一个,从而避免内存预算的灾难性膨胀。
MEMO [17] 针对增量学习(CIL)中的内存问题,旨在以最低的预算成本实现模型扩展。研究发现,在 CIL 中,不同任务模型的浅层部分相似,而深层部分差异显著。换句话说,浅层更具泛化性,而深层特定于任务。
近年来,Vision Transformer(ViT)[19] 吸引了计算机视觉领域的广泛关注,许多研究尝试使用 ViT 作为主干网络设计 CIL 学习器。相比于卷积网络,ViT 的模型扩展更加简单。
L2P [69] 和 DualPrompt [70] 等代表方法借鉴了视觉提示调优(Visual Prompt Tuning,VPT)[179] 的思路,通过提示(prompt)逐步微调模型以适应新任务。对于提供的多组提示,每个实例选择最相似的提示,获得特定的预测。除此之外,其他轻量化模型也可以在 CIL 中动态扩展 [181],[182],[183]。
在 L2P 中,预训练的 ViT 在学习过程中是冻结的,模型仅优化提示以适应新模式。
CODA-Prompt [71] 利用注意力机制扩展了提示搜索。此外,S-Prompt [72] 使用预训练的语言-视觉模型 CLIP [180] 应用于 CIL,同时学习语言提示和视觉提示以增强表征能力。
除了扩展提示以外,其他轻量化模块也可以在 CIL 中动态扩展 [181],[182],[183]。
讨论:动态网络学习,尤其是主干扩展方法,在近年来取得了最先进的性能 [15], [16], [17], [68]。然而,这类方法通常需要扩展的内存预算,因此不适用于边缘设备上的增量学习。为了解决此问题,可以采用进一步的模型压缩 [16]、模块解耦 [17] 和剪枝等技术来缓解内存需求。
此外,训练 DER 需要为每个任务单独分配一个主干网络,并将所有历史主干网络聚合为特征提取器,这实际上对其他使用单一主干的模型方法构成了不公平的比较 [17]。本文在 4.4 和 4.5 节中系统地研究了这些动态网络与其他方法之间的公平比较协议。
此外,主干扩展忽略了任务间的语义信息,例如,当旧任务包含 “老虎” 而新任务包含 “斑马” 时,多主干可能会重复提取诸如 “条纹” 的特征,从而导致特征冗余。因此,分析任务间的语义关系 [88] 可以帮助检测特征冗余,而对比学习 [184] 可以用于学习更具通用性的特征。
另一方面,大多数提示扩展方法依赖于预训练模型作为初始化。如果没有这样的通用主干网络,使用提示进行轻量化模型更新往往会失败 [185]。然而,在某些特定的下游任务中(例如人脸识别和语音识别),预训练模型并不总是可用。因此,如何摆脱对预训练模型的依赖是这些方法在实际应用中需要解决的关键问题。
此外,这些基于提示扩展的方法通常依赖于一批实例来选择实例特定的提示。这种需求在推理过程中同样需要满足,以实现准确的提示检索 [69]。这种机制隐含地导致了不公平的比较,因为在提示检索时利用了一批实例之间的上下文信息,而这违背了机器学习中独立同分布(i.i.d.)测试的常识。
除了上述方法,还有一些研究通过网络掩码(network masks)将大型网络划分为适用于每个任务的子网络 [132], [135], [136]。然而,决定特定子网络的激活需要任务标识符,或者需要额外学习任务分类器。另一方面,一些工作 [152], [186] 提出为增量新任务设计特定模块,例如适配器 [187]。
动态网络旨在通过调整模型容量来适应数据的演变。然而,如果模型结构是固定且不可改变的,我们如何调整其可塑性以抵抗灾难性遗忘?
参数正则化方法认为,不同参数对任务的贡献并不相等。因此,这些方法试图评估每个参数对网络的重要性,并将重要参数保持静态以维护先前的知识。这类算法从贝叶斯框架出发,评估神经网络中的参数不确定性,并将其作为在学习新任务时的先验。
考虑到深度神经网络中的参数规模,以上评估过程往往假设参数之间相互独立,从而可以维持一个和模型大小同等规模的参数重要性矩阵。在学习新的增量学习任务时,便可以基于参数重要性矩阵对更重要的参数施以更大的正则化约束项,从而维持模型在旧类别上的判别能力。
除了通过公式(3)的训练损失来学习新类别之外,EWC 增加了一个额外的正则化项以记住旧任务:
正则化项按参数逐一计算,由两部分组成:
由于上一阶段的模型代表了“旧”知识,巩固重要参数能够防止知识被遗忘。EWC 通过量化参数的重要性并对其进行正则化,有效地缓解了固定结构网络中灾难性遗忘的问题。这种方法展示了参数在知识保持中的核心作用,同时为后续的参数正则化方法提供了理论基础。
此外,针对不同网络层在增量学习中的特性,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),这一方法允许从教师模型(旧模型)到学生模型(新模型)转移知识。知识蒸馏通过帮助新模型学习旧模型的预测,减少新模型遗忘旧任务知识的可能性。
▲ 图5. 三种不同利用知识蒸馏的增量学习范式
logit 蒸馏与 LwF(Learning without Forgetting)
iCaRL [82] 将 LwF 扩展为使用示例集,这有助于在增量学习过程中进一步回忆以前的知识。此外,iCaRL 去掉了全连接层,并采用了 [190] 中的方法,在推理过程中使用示例的均值进行最近邻查询。

LwF 启发了社区通过构建模型之间的映射,使得知识蒸馏成为类增量学习(CIL)中的一个有用工具。D+R [84] 建议将式(12)中的第一部分替换为通过训练额外的专家模型得到的蒸馏损失。
GD [85] 提出了选择外部数据进行模型蒸馏,并设计了一种基于置信度的采样方法,以有效利用外部数据。同样,DMC [86] 提出了在每个增量阶段训练一个新模型,然后通过额外的无标签数据将它们压缩为一个模型。
最后,如果没有额外的数据可用于知识蒸馏,ABD [87] 提出了为增量学习蒸馏合成数据。这些方法专注于利用旧模型来帮助新模型抵抗遗忘。然而,COIL [88] 提出了进行双向蒸馏和协同传输,其中既利用了旧模型与新模型之间的语义关系。

式(13)强制要求新嵌入模块提取的特征与旧模型的特征相同,这比式(12)提供了更强的正则化。一些研究跟随这一方法,在 CIL 中利用特征蒸馏 [90], [91],[97], [98],而其他研究则提出了蒸馏其他结果。
LwM [92] 提出了通过惩罚分类器注意力图的变化来抵抗遗忘。AFC [93] 在蒸馏过程中考虑了不同特征图的重要性。PODNet [94] 通过最小化高度和宽度方向上池化的中间特征差异,而不是逐元素蒸馏。
CVIC [191] 将蒸馏项解耦为空间特征和时间特征,用于视频分类。DDE [95] 在蒸馏过程中考虑了旧训练的因果效应,以保存旧知识。GeoDL [96] 基于旧模型和新模型的两个特征集的投影进行蒸馏。
然而,logits 蒸馏和特征蒸馏都涉及旧模型和新模型之间的实例级映射。为了揭示模型蒸馏中的结构信息,一些研究建议进行关系知识蒸馏 [192]。这些知识蒸馏方法之间的差异如图 5 所示。

ERL [100] 将这一正则化扩展到少样本CIL场景中。TPCIL [101] 通过弹性赫布图模型化关系,并惩罚顶点之间拓扑关系的变化。TOPIC [27] 进一步探索神经气体网络来建模类别之间的关系。除了三元组关系外,MBP [102] 将正则化扩展到实例邻域,要求旧模型和新模型在邻域中的距离排序相同。
讨论:知识蒸馏是一种通用的方法,用于建立一组方法之间的映射,它在类增量学习中得到了广泛应用,且有多种形式(例如,logits、特征、关系)。
由于其灵活性,基于知识蒸馏的方法也广泛应用于各种增量学习任务,例如语义分割 [193]、行人重识别 [194]、人类动作识别 [91] 和联邦学习 [149]。由于 CIL(类增量学习)中存在一组模型,构建学生-教师映射是直观的,这使得知识蒸馏成为大多数研究中的重要解决方案。
然而,由于知识蒸馏的目标是在学习新任务和记住旧任务之间取得平衡,因此很难精确控制塑性和稳定性之间的折衷。具体来说,给予知识蒸馏项更多的权重会损害学习新任务的塑性,而给予较低的权重则会导致灾难性遗忘或特征覆盖。
与动态网络相比,基于知识蒸馏的方法缺乏学习随着数据发展而逐步变化的更具信息量的特征的能力。[17] 比较了基于知识蒸馏和基于动态网络的方法,并发现它们在不同的内存预算下各有优势。具体而言,基于知识蒸馏的方法在内存有限的情况下表现更强,而动态网络需要充足的内存预算才能具有竞争力。
假设我们可以一次性获得所有训练数据集,并通过多次迭代对其进行洗牌训练,那么模型将不会遭受任何遗忘,并且在所有类别中表现良好。这样的设定被称为类增量学习的上界,表示为 “Oracle”。
然而,由于增量数据训练的模型会遭受灾难性遗忘,多种方法尝试发现 CIL 模型中的异常行为,并将其修正为类似于 Oracle 模型的表现。这些异常行为包括输出 logits、分类器权重和特征嵌入。

这样,权重范数在增量学习中的模型预测中不会产生影响。WA [112] 进一步在每次优化步骤后对权重进行归一化,并引入权重裁剪,确保预测概率与分类器权重成比例。SS-IL [113] 解释了权重漂移的原因,这种现象是由旧实例和新实例之间的不平衡所导致的。
由于新类别实例的数量远多于旧类别实例,使用交叉熵损失优化模型会增加新类的权重并减少旧类的权重。因此,SS-IL 建议采用分离的 softmax 操作和任务级知识蒸馏,以减轻数据不平衡的影响。RPC [114] 提出,所有类别的分类器可以预分配并固定,这样分类器就无法偏向新类别。

最后,由于在 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]。未来值得探索灾难性遗忘中的其他因素及其对应的解决方案。
如果我们能够为每个类别构建一个“模板”,则分类可以通过将查询实例与最相似的模板进行匹配来完成。一种流行的方法是利用类别原型 [129] 作为模板,这一方法源于认知科学 [201]。在深度神经网络中,原型通常定义为嵌入空间中的平均向量。因此,我们可以通过将实例与最近的原型进行匹配来进行推理,而无需依赖全连接层。
然而,使用基于原型的推理也面临另一个挑战,即阶段之间的嵌入不匹配。由于嵌入函数在不同阶段不断变化,前一阶段的原型可能与后续阶段的查询嵌入不兼容。这种现象也被称为语义漂移 [105]。
为了填补这一空白,一种简单的解决方案是利用范例集,并在每个阶段后重新计算类别原型 [37],[82]。由于范例集包含了前面类别的实例,在每个增量阶段后重新计算所有类别原型可以确保原型与最新的嵌入函数兼容。然而,当示例集不可用时,需要设计特定的算法来补偿语义漂移。


如在基于模型修正的方法中所讨论的,增量模型的逐步更新会导致全连接层的偏差。因此,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],基于模板的分类将失败,因为它无法提取出具有普遍适用性的特征。在这种情况下,持续调整主干网络可能更加适合提取任务特定的特征。
本文主要在 3 个增量学习基准数据集 CIFAR100,ImageNet100/1000 上对 17 个典型类别增量学习算法进行评估。目的是回答三个问题:
-
这些方法在基准数据集上的性能如何? -
在基准数据集上的评估结果是否是公平对比的? -
如果基准数据集无法公平对比类别增量学习模型,如何设计存储无关的增量学习评估指标?
我们首先回答第一个问题,并在 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 不同类别增量学习算法的性能对比
通过以上实验,我们有以下结论:
-
在 CIL 模型中,使用范例集进行数据重放是一种简单有效的防止遗忘的方法。 -
知识蒸馏在防止遗忘方面的表现优于参数正则化,在相同计算开销的情况下知识蒸馏更适用于类别增量学习。 -
模型矫正可以即插即用的方式进一步提高其他 CIL 模型的性能。 -
预训练模型可以减轻增量学习的负担,并显示出非常强的性能.然而,由于预训练模型的特征已经可用,不需要增量学习,因此将预训练模型与其他方法进行比较是不公平的。 -
动态网络在评估中表现最佳,但需要额外的存储开销。
▲ 图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 性能-存储曲线 横轴代表存储开销 纵轴代表模型性能
具有复杂输入的 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 比较中的一个重要因素——内存预算,并提倡通过强调内存预算的影响来全面评估不同方法。我们提供了在特定预算下对不同方法的综合评估,以及一些新的性能度量。我们期望这篇综述能够提供一种有效的方式来理解当前的最先进技术,并加速 CIL 领域的发展。
(文:PaperWeekly)