DUCT
0. 摘要
域增量学习(Domain-Incremental Learning, DIL)涉及模型在不同域中逐步适应新概念。尽管预训练模型的最新进展为 DIL 提供了坚实的基础,但学习新概念通常会导致预训练知识的灾难性遗忘。具体来说,顺序模型更新可能会用来自最新域的知识覆盖表示和分类器。因此,开发一种在学习过程中适应所有已见域的表示和相应的分类器至关重要。为此,我们提出了双重巩固(DUal ConsolidaTion, DUCT),以在表示和分类器两个层面统一和巩固历史知识。通过合并不同阶段的主干网络,我们创建了一个适合多域增量学习的表示空间。合并后的表示作为一个平衡的中间体,捕捉了所有已见域的特定任务特征。此外,为了解决合并嵌入和分类器之间的不匹配问题,我们引入了一个额外的分类器巩固过程。利用类级语义信息,我们估计了最新嵌入空间中旧域的分类器权重。通过合并历史和估计的分类器,我们将它们与合并的嵌入空间对齐,促进了增量分类。在四个基准数据集上的广泛实验结果证明了 DUCT 的最先进性能。
1. 引言
近年来,深度学习的兴起展示了其在现实世界应用中的强大潜力(He et al., 2016; Deng et al., 2009; Floridi & Chiriatti, 2020)。然而,在一个动态且不断变化的世界中,数据通常以流的形式演变(Aggarwal, 2018; Ye et al., 2024),因此需要不断更新来自新域的数据(Gama et al., 2014)。例如,自动驾驶汽车必须处理不同季节和天气条件下的驾驶任务(Bojarski et al., 2016),而人脸识别系统应该能够在不同的光照条件下识别用户(Zhao et al., 2003)。相应地,域增量学习(DIL)(van de Ven et al., 2022)通过从新数据分布中吸收新知识同时保留现有知识来应对这一挑战。然而,顺序更新模型以适应新域通常会使得嵌入(Yu et al., 2020)和分类器(Zhao et al., 2020; Wu et al., 2019)模块偏向最新域,导致先前知识的灾难性遗忘(Mermillod et al., 2013; De Lange et al., 2021)。因此,开发一种在学习新域时不遗忘现有知识的方法成为机器学习社区面临的一个关键挑战。
为了应对灾难性遗忘,最近的工作利用强大的预训练模型(PTMs)(Han et al., 2021)作为 DIL 的初始化(Wang et al., 2022d;c;b)。PTMs 的强大表示能力为 DIL 提供了一个强大的起点,在 DIL 基准测试中显示出良好的结果。这些方法冻结了预训练的主干网络以保留现有知识,并附加轻量级模块(Jia et al., 2022; Chen et al., 2022; Lian et al., 2022)以捕捉新模式。然而,由于传入的域也会覆盖附加的模块,表示仍然会遭受遗忘,从而导致分类器的相应偏差。
在 DIL 中,遗忘有两个主要来源:特征的覆盖和分类器的覆盖。不断调整特征以捕捉最新任务会使表示偏向最新域。例如,假设前一个任务涉及真实世界的照片,而后一个任务包括快速绘制的图像。特征将被大幅调整为突出非客观细节,这些细节在区分先前域时帮助不大,从而导致遗忘。鉴于此,DIL 中的理想特征空间应适合所有域,并同等地突出所有已见任务的特定域特征。然而,由于覆盖导致特征的可泛化性降低,分类器也会偏向最新域。由于分类器在将嵌入映射到类别中起着关键作用,使用有偏分类器可能会对决策产生不利影响。因此,必须在特征和分类器上巩固现有知识以抵抗遗忘。
实现这一目标有两个主要挑战:1)不断构建一个适合所有任务的统一嵌入空间。由于训练数据以流的形式到达,我们无法同时访问所有训练实例,这阻止了我们实现适合所有已见域的“预言嵌入”。2)校准有偏分类器的预测。即使我们实现了适合所有任务的整体嵌入,由于缺乏先前实例,我们仍然无法在特征和类别之间建立准确的映射。因此,需要一个分类器巩固过程来不断将分类器权重与变化的特征对齐。
在本文中,我们提出了双重巩固(DUCT)来应对这些挑战。为了应对特征漂移,我们引入了一种表示合并技术,不断整合历史主干网络。这种合并的嵌入巩固了所有先前域的特定任务信息,提供了信息丰富的特征而不遗忘。因此,我们逐步实现了不可遗忘的特征,并抵抗了特征级遗忘。为了将更新的特征映射到类别,我们设计了一个分类器巩固过程,将历史分类器权重与校准权重合并。通过在联合空间中提取类级语义关系,我们开发了一种分类器传输机制,估计最新嵌入空间中先前域类别的分类器。通过以这种协调的方式巩固特征和分类器,DUCT 平衡了所有已见域,并稳健地抵抗了遗忘,在各种基准测试中取得了有竞争力的性能。
2. 相关工作
持续学习/增量学习是机器学习领域的一个热门话题,旨在在流数据中融入新知识(De Lange et al., 2021; Masana et al., 2023; Wang et al., 2024; Zhao et al., 2021; Zheng et al., 2024; Qi et al., 2024)。它可以进一步分为三个子类别,即任务增量学习(TIL)(De Lange et al., 2021)、类增量学习(CIL)(Masana et al., 2023)和域增量学习(DIL)(van de Ven et al., 2022)。其中,TIL 和 CIL 面临新兴的新类别,并要求在学习这些类别时不遗忘。相比之下,DIL 主要关注标签空间固定而传入数据涉及新域的场景(Wang et al., 2022b; Shi & Wang, 2023)。在持续学习中,典型的解决方案包括使用数据回放(Bang et al., 2021; Aljundi et al., 2019b; Isele & Cosgun, 2018; Rolnick et al., 2019; Ratcliff, 1990)来回顾先前的知识,使用知识蒸馏(Hinton et al., 2015; Rebuffi et al., 2017; Li & Hoiem, 2017)或参数正则化(Kirkpatrick et al., 2017; Zenke et al., 2017; Chaudhry et al., 2018; Aljundi et al., 2018; 2019a)来维护现有知识。最近的进展还通过偏差校正(Hou et al., 2019; Zhao et al., 2020; Ahn et al., 2021; Castro et al., 2018; Wu et al., 2019; Belouadah & Popescu, 2019)来纠正模型偏差或随着数据的演变扩展网络结构(Rusu et al., 2016; Aljundi et al., 2017; Yan et al., 2021; Wang et al., 2022a; Zhou et al., 2023)。
基于预训练模型的域增量学习:随着预训练技术的快速发展,PTMs 为 DIL 模型提供了强大的初始化,以提升特征的泛化能力(Smith et al., 2023; Wang et al., 2022c;d;b)。当前的基于 PTM 的 DIL 方法主要采用视觉提示调优(Jia et al., 2022)来调整预训练特征。在冻结预训练特征的情况下,它学习一个提示池作为外部知识,并选择实例特定的提示来编码任务信息。L2P(Wang et al., 2022d)利用查询键匹配机制选择实例特定的提示,而 DualPrompt(Wang et al., 2022c)通过联合学习任务特定和实例特定的提示来扩展它。相比之下,S-Prompts(Wang et al., 2022b)为 DIL 学习域特定的提示,并通过 KNN 搜索检索提示。为了减轻提示选择的成本,CODA-Prompt(Smith et al., 2023)将提示选择过程修改为基于注意力的加权组合。除了提示调优外,还有一些方法直接在预训练特征上构建分类器(Zhou et al., 2024a; McDonnell et al., 2023)。
模型合并:预训练的最新进展使得不同模型之间的权重插值成为模型编辑中的有用技术(Ainsworth et al., 2023; Frankle et al., 2020; Ilharco et al., 2023; Matena & Raffel, 2021; Wortsman et al., 2022a;b)。大多数工作集中在多个模型的简单平均,旨在增强模型在单一任务上的性能和对抗分布外数据的鲁棒性。在本文中,我们考虑合并预训练权重和任务向量参数,以培养适合所有已见域的多任务表示。
3. 从旧域到新域
在本节中,我们介绍了域增量学习的背景信息,以及将预训练模型应用于域增量学习的基线方法。
3.1 域增量学习
在域增量学习中,模型面临一个任务序列的数据流
其中
根据(Wang et al., 2022c;d;b; Smith et al., 2023),我们假设一个预训练的视觉 Transformer(ViT)(Dosovitskiy et al., 2020)可用作
3.2 域增量学习中的基线方法
在域增量学习中,面对新域的传入数据集,一种简单的解决方案是直接优化嵌入和分类器:
以预训练权重作为初始化,公式(2)可以快速捕捉新域中的判别特征。然而,由于嵌入
为了抵抗特征级遗忘,一种可行的解决方案是冻结预训练权重并附加轻量级模块以编码域特定知识,例如提示(Jia et al., 2022)。代表性工作 L2P(Wang et al., 2022d)组织一组提示作为提示池(即 Pool),并通过以下方式优化模型:
其中
讨论:尽管公式(2)和公式(3)采用了不同的模型更新策略,但它们都遭受了特征级遗忘。具体来说,通过公式(2)调整模型可以将特定任务知识编码到嵌入中,但也存在特征被新域完全覆盖的风险,因为没有限制保留先前知识。此外,尽管公式(3)冻结了预训练权重,附加的可训练提示也可能导致遗忘。由于提示的特征依赖于实例特定的提示选择,为新域优化提示仍然有覆盖先前提示的风险。随着特征偏向最新域,分类器也会相应地调整。因此,先前任务的分类器与不稳定且不断变化的特征不兼容,导致了分类器级遗忘。
4. DUCT:域增量学习的双重巩固
观察到特征级和分类器级覆盖的风险,我们旨在从两个方面抵抗 DIL 中的遗忘。首先,减轻特征级遗忘需要以低成本获得一个统一的嵌入空间。由于顺序更新主干网络或提示都会导致遗忘,因此需要一种适当的解决方案来充分利用所有历史特征并将它们合并为一个统一的特征。其次,随着表示从任务到任务的变化,分类器和嵌入之间的不匹配随着数据的演变变得更加严重。因此,需要一个分类器巩固步骤来校准它们以与嵌入兼容。
在接下来的部分中,我们介绍了表示巩固和分类器巩固的学习范式。最后,我们提供了训练和推理的详细指南。
4.1 表示巩固
观察到在所有已见域之间取得平衡的挑战,我们需要选择另一种特征更新策略以避免顺序覆盖并抵抗遗忘。假设我们能够为每个传入域分别训练每个模型,获得一组模型
相应地,我们从模型合并社区(Ilharco et al., 2023; Ramé et al., 2023)中获得灵感,即通过组合多个任务向量可以实现适合多个域的理想模型。我们将嵌入函数的相对变化表示为
它将预训练权重与每个任务向量合并。由于所有微调的嵌入都从相同的预训练权重开始,(Ilharco et al., 2023; Zhang & Bottou, 2023)验证了由于不同域之间的语义差距,任务向量之间的相似性较低。因此,添加此类权重使得合并的模型能够突出所有特定任务的特征,公式(4)提供了一种获得适合所有已见域的通用特征表示的可行方法。
表示巩固与任务相似性:尽管公式(4)提供了一种简单的方法来合并多个任务向量以构建统一的嵌入,但它仍然缺乏对任务相似性的考虑。例如,如果两个不同的域更相似,突出这些特征将更有助于识别相应域的类别。因此,我们将任务相似性(
具体来说,由于合并的嵌入是基于预训练权重和任务向量构建的,我们考虑预训练模型
随后,我们可以在嵌入空间中获得两组类中心,即
其中我们使用余弦相似性来计算中心相似性
表示巩固的效果:图 1(顶部)可视化了表示巩固过程,其中合并的主干网络可以统一多个域。通过公式(5),我们能够通过参数空间中的组合构建适合所有任务的联合嵌入空间。由于 DIL 中的任务是一个接一个出现的,表示巩固过程也可以增量式进行,即:
这样,我们可以摆脱大量的内存开销,只需在内存中最多保留两个主干网络。在每个训练阶段,我们首先通过公式(2)微调模型,并进行表示巩固以聚合表示。通过这种方式,我们获得了一个跨所有已见任务的统一嵌入空间。
4.2 分类器巩固
在公式(5)中,我们设计了特征巩固过程,通过累积任务向量聚合多个微调模型。然而,仍然存在一个致命问题,即分类器与合并的嵌入之间存在不匹配。由于分类器被优化以将嵌入映射到相应的类别,随着主干网络被替换,匹配度急剧下降。回顾第 3.1 节中的背景信息,我们为每个域使用独立的分类器,因此需要设计额外的分类器巩固过程以将分类器与嵌入空间对齐。在每个训练阶段,我们将先前域的分类器称为“旧分类器”(
新分类器重新训练:在每个训练阶段,我们手中有训练数据
其中合并的特征
旧分类器传输:公式(9)将新分类器与最新嵌入空间对齐。然而,仍然存在一个致命问题,即旧分类器也与合并的嵌入空间不兼容。因此,先前旧域的知识在增量学习过程中将被遗忘。如果我们有大量先前域的训练实例,可以像公式(9)那样进行类似的校准过程。然而,由于无样本限制,我们无法在内存中保存任何先前实例。因此,我们需要找到另一种方法来估计旧分类器的相对校准权重。例如,如果我们有一个重新训练的分类器来分类“狮子”的剪贴画风格,它可以大部分重用于分类“狮子”的真实照片风格。我们将这种关系称为“语义信息”,目标是利用这种信息来辅助旧分类器的对齐。我们使用语义信息
通过最优传输实现
我们定义
这是最优传输(OT)的 Kantorovich 公式(Villani, 2008; Peyré et al., 2019)。优化公式(10)使我们能够展示如何以低成本在域之间移动概率质量。由于目标是重用重新训练的分类器
定义语义信息的传输成本:求解公式(10)需要正确定义跨域成本
分类器巩固的效果:我们在图 1(底部)可视化了分类器巩固过程。分类器巩固过程分为两个步骤,即新分类器重新训练和旧分类器传输。第一步旨在将新分类器与统一嵌入对齐,而第二步旨在将旧分类器与校准的分类器重新组合。通过这种方式,我们获得了一个与合并特征兼容的分类器,从而有利于在统一嵌入空间中进行识别。
4.3 DUCT 总结

我们总结了训练步骤,如算法 1 所示。具体来说,面对一个新的训练任务,我们首先使用
内存开销的讨论:在训练过程中,我们需要在内存中保留两个模型,即历史合并的主干网络
5. 实验
在本节中,我们在基准数据集上进行了实验,将 DUCT 与现有的最先进方法进行比较。我们还提供了对组件和参数鲁棒性的消融研究,以分析不同模块的效果。嵌入空间的可视化也验证了我们提出方法的有效性。
5.1 实验设置
数据集:遵循基于预训练模型的域增量学习的基准设置(Wang et al., 2022c;d;b; Smith et al., 2023),我们在 Office-Home(Venkateswara et al., 2017)、DomainNet(Peng et al., 2019)、CORe50(Lomonaco & Maltoni, 2017)和 CDDB-Hard(Li et al., 2023)上评估性能。具体来说,Office-Home 有四个域,DomainNet 有六个域,CORe50 有 11 个域,CDDB-Hard 有五个域。我们考虑五种任务顺序来打乱这些域,以进行全面评估,并在附录 B.2 中报告详细信息。
对比方法:在对比中,我们考虑了两类方法,包括基于样本的方法(如 Replay(Ratcliff, 1990)、iCaRL(Rebuffi et al., 2017)、MEMO(Zhou et al., 2023))和最新的无样本 DIL 方法(如 SimpleCIL(Zhou et al., 2024a)、L2P(Wang et al., 2022d)、DualPrompt(Wang et al., 2022c)、CODA-Prompt(Smith et al., 2023)、EASE(Zhou et al., 2024b)、RanPAC(McDonnell et al., 2023)和 S-iPrompt(Wang et al., 2022b))。我们为所有对比方法使用相同的预训练主干网络。
实现细节:我们使用 PyTorch(Paszke et al., 2019)和 Pilot(Sun et al., 2023)在 NVIDIA 4090 上进行实验。根据(Wang et al., 2022d; Zhou et al., 2024b),我们考虑两种典型的预训练权重,即 ViT-B/16-IN21K 和 ViT-B/16-IN1K。两者都是在 ImageNet21K(Russakovsky et al., 2015)上预训练的,后者进一步在 ImageNet1K 上进行了微调。我们使用 SGD 优化器优化 DUCT,批量大小为 128,训练 15 个 epoch。学习率设置为 0.001。我们使用 herding 算法(Welling, 2009)为基于样本的方法选择每个类别的 10 个样本。在 DUCT 中,我们设置合并参数
性能指标:根据(Wang et al., 2022d;b),我们将学习第
5.2 基准对比
我们在图 2 中报告了四个基准数据集上的结果。从这些结果中可以看出,DUCT 在最终准确率上始终比其他对比方法高出 1% 到 7%。需要注意的是,起点的差异是由于不同的调优技术造成的,这些方法中可训练参数的数量不同,因此无法直接对齐。具体来说,即使从预训练模型开始,顺序微调模型也会遭受灾难性遗忘。为了补偿遗忘现象,我们观察到一些基于示例的方法(如 Replay、iCaRL 和 MEMO)对基线显示出稳定的改进。然而,由于其中一些工作是为类增量学习场景设计的,扩展或蒸馏目标可能不适用于当前设置。然后,我们将 DUCT 与专门为预训练模型设计的方法进行比较,发现基于提示的方法(如 L2P、DualPrompt、CODA-Prompt 和 S-iPrompt)的表现不如我们的方法。我们还观察到,DUCT 与各种预训练权重兼容,并在 ViT-B/16 IN1K(a∼d)和 IN21K(e∼f)上显示出稳定的改进。
此外,我们还在表 1 和图 3(a) 中报告了五个任务顺序下的增量性能(平均值和标准差)。从表中可以看出,DUCT 在不同的任务顺序下表现稳健,与现有的最先进方法相比显示出稳定的改进。
5.3 进一步分析
遗忘度量
图 2 和表 1 主要关注准确率度量,该度量使用所有见过的域来衡量相对性能。除了准确率度量外,我们还遵循(Wang et al., 2022b;d)使用遗忘度量,该度量捕捉了先前域中现有知识的稳定性。如图 3(b) 所示,我们在 CDDB 数据集上报告了所有对比方法的遗忘度量。从图中可以看出,一些方法遭受了严重的遗忘,例如 Finetune 和 MEMO,表明它们不适合域增量学习场景。我们还观察到,基于提示的方法冻结了主干以防止特征漂移,这解决了遗忘现象。然而,DUCT 在所有对比方法中显示出最少的遗忘(即 0.12),表明其强大的性能。
参数稳健性
DUCT 有两个主要的合并步骤,即公式 (5) 中的表示合并和公式 (10) 中的分类器合并。这些合并步骤包括一组模型/分类器之间的合并参数,即主干合并比率
组成模块
在本节中,我们在 CDDB 数据集上进行了实验,以研究 DUCT 中每个模块的重要性。如表 2 所示,“Baseline”表示直接冻结嵌入并提取类中心作为分类器,由于与下游域的域差距,显示出较差的性能。然后,我们使用公式 (4) 顺序合并主干以合并表示,并将其称为“Variation 1”。结果表明,添加表示合并过程显著提高了性能,表明这种统一表示在域增量学习中的优越性。然而,当将公式 (4) 切换到公式 (5) 时,我们发现“Variation 2”进一步提高了性能,表明任务相似性在获得通用嵌入空间方面是有帮助的。之后,我们将其与公式 (8) 中的分类器重新训练过程结合,称为“Variation 3”。结果表明,合并特征与分类器之间的不匹配削弱了性能,将新分类器与嵌入对齐有助于域增量学习。当将 DUCT 与“Variation 3”进行比较时,我们发现旧分类器的传输对于恢复先前知识和抵抗遗忘也至关重要,这将最终准确率提高了 2%。消融实验验证了 DUCT 中不同模块的有效性。
可视化
在本节中,我们可视化了嵌入空间,以展示 DUCT 在 DomainNet 数据集上的有效性。我们考虑了一个两阶段的域增量学习场景,每个阶段包含五个类别,并使用 t-SNE(Van der Maaten & Hinton, 2008)可视化表示空间,分别在 DUCT 应用前后。我们使用点表示第一阶段中的类别,三角形表示第二阶段中的类别。我们使用阴影区域表示由分类器权重获得的不同类别的决策边界。如图 4 所示,尽管在 DUCT 应用前的嵌入空间显示出竞争性能,但存在两个主要缺陷:1)黄色和红色点之间存在混淆区域,表明随着数据的演变,先前类别被部分遗忘。2)同一类别的嵌入空间仍然位于不同的区域,例如紫色和绿色类别,这对于域增量学习并不理想。然而,当应用 DUCT 合并特征和分类器时,上述问题在图 5 中得到了解决。具体来说,由于合并后的嵌入适用于所有任务,先前域的遗忘得到了缓解。此外,统一的嵌入空间将不同域的同一类别适当地放在一起,有利于最终的推理。
6 结论
域增量学习是现实世界学习系统获取新知识的理想能力。在本文中,我们提出了双重合并(DUCT)来实现这一目标。由于域增量学习中的遗忘发生在两个方面,即嵌入和分类器,我们分别设计了合并技术来处理它们。具体来说,我们考虑将预训练模型与特定域的任务向量合并,以实现统一的嵌入。为了补偿合并特征与分类器之间的不匹配,我们通过引入语义引导的传输设计了分类器合并过程。大量实验验证了 DUCT 的有效性。
局限性
可能的局限性包括对预训练模型的使用,因为特征合并依赖于可泛化的初始化。未来的工作包括将 DUCT 扩展到非预训练模型的场景。