IOCTF
0. 摘要
在类别增量学习中,资源有限的智能体需要学习一系列分类任务,形成一个不断增长的分类问题,并且不能访问之前任务的数据。与任务增量学习的主要区别在于,任务增量学习在推理时可以使用任务ID,而类别增量学习的学习者还需要进行跨任务区分,即区分那些没有一起见过的类别。解决这个问题的方法有很多,大多数方法都使用了一个不可忽视大小的外部记忆(缓冲区)。在本文中,我们通过消融实验研究了跨任务特征的学习,并分析了其对用于类别增量学习的基本回放策略性能的影响。我们还定义了类别增量学习中的新遗忘度量,并发现遗忘并不是性能低下的主要原因。我们的实验结果表明,未来的类别增量学习算法不仅应防止遗忘,还应致力于提高跨任务特征的质量以及任务之间的知识转移。这在任务数据量有限时尤为重要。
1. 引言
为了使资源有限的智能体能够在不访问之前学习数据的情况下高效地更新其知识,我们需要解决增量学习的问题。该设定假设智能体暴露在一系列任务中,这些任务需要逐个学习,同时避免对先前任务的灾难性遗忘(French, 1999; Rebuffi et al., 2017; Thrun, 1996)。在实践中,由于存储每个任务数据的不便性或不可行性,以及每次需要重新训练新模型的计算和内存需求,增量学习是必要的。增量学习可以分为任务增量学习(task-IL)(Delange et al., 2021)和类别增量学习(class-IL)(Masana et al., 2020a),分别取决于测试时是否可以使用任务ID。在这两种情况下,每个任务都可以在训练期间学习。
类别增量学习的一个特殊挑战是,不同任务中的类别从未一起学习,但必须在测试时进行区分(没有任务ID)。解决这个问题的一种方法是存储每个类别的一小部分实例,以便在学习新类别时进行回放(Castro et al., 2018; Rebuffi et al., 2017)。因此,智能体能够在训练过程中看到来自不同任务的类别。尽管一些类别增量学习方法不使用记忆缓冲区(Dhar et al., 2019; Yu et al., 2020),但目前这些方法无法与使用缓冲区的方法竞争(Masana et al., 2020a)。因此,在本文中,我们将注意力集中在使用记忆缓冲区的方法上。然而,由于这种回放记忆缓冲区的内存限制,学习过程中会引入类别不平衡问题。这种类别不平衡的副作用之一是,分类器中的权重偏差和范数在较新任务的类别中往往更高(Hou et al., 2019; Masana et al., 2020a; Wu et al., 2019)。这种现象被称为任务近期偏差,并通过不同的偏差校正策略来解决(Belouadah & Popescu, 2019; Hou et al., 2019; Wu et al., 2019)。尽管解决了任务近期偏差,但与上限(联合训练)之间仍存在较大差距。在本文中,我们研究了通过训练更好的跨任务特征能在多大程度上缩小这一差距。
本文的另一个重点是研究类别增量学习中性能下降的原因。与其他增量学习设定一样,处理类别增量学习中的任务序列会导致从早期任务到最新任务的性能大幅下降。许多类别增量学习工作将灾难性遗忘与这种性能下降联系起来,而灾难性遗忘在任务增量学习设定中已被广泛研究。然而,为任务增量学习定义的指标并不适用于类别增量学习设定,直接应用这些指标可能会产生误导性结果。在本工作中,我们将定义适用于类别增量学习的类似指标,并使用它们来增加对该设定下性能下降主要原因的理解。
在增量学习中,我们认为特征提取器可以学习两种类型的特征(见图1)。跨任务区分特征用于区分属于不同任务的类别,而任务内区分特征用于区分同一任务中的类别。此外,某些特征可能在训练过程中同时满足这两种区分。鉴于这些特征类型,我们假设类别增量学习中的回放应在特征提取器层面发挥多重作用。首先,保持先前学习的任务内区分特征。其次,创建能够区分不在同一任务中的类别的跨任务区分特征。例如,在图1中,区分同一任务中的类别只需要学习颜色特征(任务内),而解决类别增量学习中提出的累积任务还需要学习形状特征(跨任务)。其第三个作用是启用新任务与先前任务之间的知识转移,以便一个任务可以从另一个任务的学习中受益,就像在同时学习多个任务时发生的那样(Baxter, 2000)。未能学习任何一种特征都会导致更高的误分类率。在本文中,我们旨在研究这两种特征是否通过回放得到了适当的学习,尤其是跨任务特征。

我们的贡献总结如下:
- 我们比较了使用回放的两种基线方法。一种旨在学习跨任务特征,另一种则不学习。这有助于我们评估跨任务特征在类别增量学习设定中的重要性。
- 我们质疑经典任务增量学习指标在类别增量学习中的使用,并提出了新的适当指标。我们观察到,灾难性遗忘并不是类别增量学习中性能下降的主要原因。
此外,我们进行了实验,允许类别增量算法使用不断增加的内存。这些结果表明,即使没有遗忘,任务特定准确率仍有改进空间,这可以显著提高跨任务区分能力,而无需显式构建特征。
2. 相关工作
类别增量学习方法可以分为三类(Masana et al., 2020a):基于正则化的方法、偏差校正方法和基于回放的方法,这些方法通常结合使用以应对多重增量学习挑战。基于正则化的方法在损失中添加正则化项,以惩罚权重的变化(Aljundi et al., 2018; Chaudhry et al., 2018; Kirkpatrick et al., 2017)或激活值的变化(Jung et al., 2016; Li & Hoiem, 2017; Rannen et al., 2017; Zhang et al., 2020)。这保持了在保持先前知识与学习新任务之间的稳定性-可塑性权衡。这些方法在任务增量学习中被广泛使用。此外,它们还在类别增量学习中显示出有希望的结果,无论是通过与基于回放的方法结合(Castro et al., 2018; Hou et al., 2019; Rebuffi et al., 2017; Wu et al., 2019)还是通过其他策略如注意力机制(Dhar et al., 2019)。
回放已成为类别增量学习中最常用的方法,重点是在学习新任务时回放先前任务的图像或特征。基于回放的方法可以进一步分为不同的子类别。伪回放方法通过生成图像进行回放(Shin et al., 2017),从而避免存储原始数据的隐私问题。它们还具有减少存储内存的优势,并且可以即时生成数据。在MerGan(Wu et al., 2018)中,使用条件GAN进行图像回放,引入了高级网络的学习和存储,而不是存储样本。在生成特征回放(Liu et al., 2020a)中,使用GAN将较小尺寸的特征回放到分类层,这使得GAN学习更容易,但代价是固定特征提取器,限制了未来学习的能力。一些伪回放方法通过直接在图像空间中优化以防止遗忘的损失来生成图像(Ji et al., 2020; Liu et al., 2020b),从而避免了外部生成器的使用。经典回放方法存储样本并将其与当前任务的数据一起回放。然而,这引入了先前学习类别的少量样本与新任务的大量数据之间的数据不平衡问题。因此,一些方法将回放与偏差校正结合使用(Belouadah & Popescu, 2019; Hou et al., 2019; Wu et al., 2019),这也解决了任务近期偏差。
在IL2M(Belouadah & Popescu, 2019)中,提出了双记忆方法,存储图像和类别统计信息,用于校正过去类别的得分。值得注意的是,大多数回放方法在模型输出上使用蒸馏损失项,而IL2M则使用经典的微调交叉熵损失获得了类似的结果。
更具挑战性的设定是在线学习,其中只允许对当前任务数据进行一次遍历。因此,与可以在数据上迭代多个epoch的增量训练会话不同,每个样本只能被看到一次,除非存储在外部样本记忆中。这个设定最初是为任务增量学习探索的,其中任务ID在测试时是已知的(Chaudhry et al., 2019a; Lopez-Paz & Ranzato, 2017)。在GEM(Lopez-Paz & Ranzato, 2017)和A-GEM(Chaudhry et al., 2019a)中,梯度被修改以避免增加样本损失和过拟合样本。最终,在“小样本记忆”(Chaudhry et al., 2019b)中观察到,即使只有少量样本可用,回放样本也能有效地防止任务增量学习设定中的遗忘。最近,一些方法已应用于在线类别增量学习(Aljundi et al., 2019a;b; Hayes et al., 2020)。在MIR(Aljundi et al., 2019a)中,执行控制采样以自动回放当前经历最多遗忘的任务的样本。REMIND(Hayes et al., 2020)使用学习的量化模块压缩样本的特征,然后进行回放。
在最近的调查中(Belouadah et al., 2020; Masana et al., 2020a),任务间混淆和偏差校正被确定为类别增量学习的主要挑战。我们认为,额外的挑战是任务之间的知识转移以及跨任务特征的学习(与任务近期偏差相对)。最后,GDumb(Prabhu et al., 2020)引入了一种仅使用缓冲区样本的基线,获得了与在线设定中最先进方法相当的性能。所提出的方法也适用于类别增量学习,因为它只需要记忆缓冲区中的样本,然而,它的性能较低。同样,我们提出的基线也适用于在线和离线类别增量学习。
3. 任务内和跨任务训练
3.1. 符号表示
我们假设数据以以下任务序列的形式出现:
其中
3.2. 两种回放基线
为了更好地剖析回放机制,我们提出了两种不同的基线方法来解决类别增量学习问题。这两种方法仅在应用于特征提取器的损失函数上有所不同。第一种方法显式地尝试学习跨任务和任务内区分特征,而第二种方法避免学习跨任务区分特征,仅限于学习任务内特征。它们定义如下:
为了应对由于不平衡训练可能产生的任务近期偏差,并校准特征提取器顶部的分类头,我们在提出的基线算法中添加了一个额外的步骤。受 EEIL(Castro et al., 2018)的启发,我们在学习当前任务后执行一个额外的平衡微调步骤,仅在样本记忆缓冲区中的数据上训练网络,该缓冲区包含每个类别的平衡数量的训练样本。我们在这两种情况下都使用
详细的训练过程在算法1中解释,其中

自然地,我们预计
最后,我们简要回顾任务增量学习的主要挑战,因为这些挑战被类别增量学习继承。在任务增量学习中,由于在测试时可以使用任务ID,因此无需学习任何跨任务特征即可在每个特定任务上获得良好的性能。这种设定仍然带来了一些挑战。灾难性遗忘(Goodfellow et al., 2014; Kirkpatrick et al., 2017)是文献中讨论最多的挑战之一。在任务增量学习中,它被描述为在学习新任务时对先前任务性能的下降。虽然在某些设定下且无法访问旧样本时,灾难性遗忘可能难以解决,但使用合理大小的记忆缓冲区(如类别增量学习回放方法中所做的那样)时,避免遗忘变得更容易,许多工作已经展示了如何防止遗忘(Lopez-Paz & Ranzato, 2017; Chaudhry et al., 2019a)。然而,其他挑战也被识别出来,其中之一是任务之间的知识转移。主要在多任务学习文献中讨论(Baxter, 2000),任务之间的知识转移使学习者在同时学习多个任务时能够提高其在单独任务上的性能。在任务增量学习设定中,这种任务之间的转移在 GEM(Lopez-Paz & Ranzato, 2017)中被称为后向和前向转移。其中后向表示学习后续任务对先前任务性能的积极影响,而前向表示学习先前任务对学习新任务的积极影响。
3.3. 类别增量学习中的遗忘
灾难性遗忘(Goodfellow et al., 2014; Kirkpatrick et al., 2017)被广泛认为是许多持续学习设定中性能下降的主要原因。从与迁移学习类似的两任务任务增量学习工作(Kirkpatrick et al., 2017)中,遗忘的测量被定义为在学习目标任务时源任务性能下降的程度。最初,即使在从两个任务转向一系列任务时,这种测量也非常有用,因为每个任务都是单独评估的。广泛观察到,在没有访问先前任务数据的情况下,在任务序列上训练神经网络会导致对先前学习的任务的灾难性遗忘。类似的度量变体也被提出用于任务增量学习和类别增量学习(Chaudhry et al., 2018; Lee et al., 2019; Serra et al., 2018)。然而,我们认为它们不能直接转移到类别增量学习中,因为在该设定中,平均准确率是在一个越来越困难的问题上报告的,即对所有
任务增量学习指标:假设
类别增量学习指标:为了将这些指标应用于类别增量学习的情况,我们必须用累积任务的概念替换任务增量学习中使用的单独任务,累积任务由迄今为止见过的所有任务的连接组成
这将输出限制在
这表示模型
该度量可以平均到迄今为止学习的所有任务上:
4. 实验结果
我们的实现基于 FACIL 框架(Masana et al., 2020a)。我们使用相同的数据处理和场景配置。我们扩展了该框架以包含我们提出的基线,并与其实施的最先进方法进行比较。更多细节可在补充材料中找到。我们的代码可在 https://github.com/AlbinSou/cross_task_cil 获取。
数据集:CIFAR-100(Krizhevsky, 2009)包含 60,000 张 32x32x3 的 RGB 图像,分为 100 个类别,每个类别有 500 张训练图像和 100 张测试图像。由于没有定义的验证集,我们从训练集中分离出 10% 作为验证集,并在所有实验中保持相同。这是类别增量学习中的常见设置(Belouadah & Popescu, 2019; Castro et al., 2018; Hou et al., 2019; Rebuffi et al., 2017; Wu et al., 2019)。类别被分为 10 或 20 个任务分割以增量学习,记忆缓冲区包含每个类别 20 个样本用于回放(总共 2,000 个)。使用 herding 策略选择样本,该策略已被证明比其他策略稍微更鲁棒(Masana et al., 2020a)。训练期间通过填充、随机裁剪和随机水平翻转进行数据增强。最后,任务和类别顺序(Masana et al., 2020b)固定为常用的 iCaRL 种子(Masana et al., 2020a; Rebuffi et al., 2017; Wu et al., 2019)。
ImageNet(Russakovsky et al., 2015)包含 1,000 个对象类别,每个类别的样本数量不同。在我们的实验中,我们使用其前 100 个类别的简化版本,即 ImageNet-Subset(如(Rebuffi et al., 2017))。数据预处理使用 224×224 随机裁剪、归一化和随机水平翻转。我们将此数据集分为 25 个任务,所有实验的随机类别顺序固定。样本处理方式与 CIFAR-100 实验相同。
网络:我们使用 CIFAR-100 实验中常用的配对网络:ResNet-32(He et al., 2016),使用带有耐心机制的随机梯度下降进行学习。有关训练期间使用的超参数的更多详细信息可在补充材料中找到。对于 ImageNet-Subset,我们使用 ResNet-18,它允许更大的输入尺寸并提供更多的容量。
上限:对于每个使用有限内存的基线,我们考虑它们各自的上限,即可以访问先前任务的所有数据,分别为
4.1. 跨任务特征的重要性
CIFAR-100 的结果如表1所示。对于 10 个任务的分割,当使用 10 个或更多样本时,



在 ImageNet-Subset 上(见图4),我们得出了相同的结论。由于额外学习了跨任务特征,两个基线之间存在一致的差异。但这种差异并不占性能差距的主要部分,主要差距体现在

4.2. 累积准确率和累积遗忘
我们认为为任务增量学习定义的遗忘度量不能直接应用于类别增量学习(如某些论文中所做的那样)。相反,定义应适应考虑任务的累积准确率(见公式5)。
我们将第3.3节中定义的度量应用于 CIFAR-100(10 和 20 个任务)的实验。分析类别增量学习方法学习过程的一种有见地的方式如图5所示,我们称之为累积准确率图。它允许您在训练过程中分析各种累积任务的行为。例如,从任务2开始的行表示
最后,对于使用最大内存的模型(见图5),我们观察到累积准确率在训练过程中增加,这意味着模型在处理先前的累积任务时表现更好。这表明正向的后向转移正在发生:学习新任务改善了旧任务的性能。

4.3. 与最先进方法的比较
在图6中,我们展示了所考虑的基线与 iCarl(Rebuffi et al., 2017)、LUCIR(Hou et al., 2019)、BiC(Wu et al., 2019)和 EEIL(Castro et al., 2018)等其他最先进方法的比较。

4.4. 讨论
我们在这里探讨了

尽管使用

5. 结论和未来方向
通过消融类别增量学习与任务增量学习不同的一个主要组成部分,我们试图将这两个设定面临的挑战联系起来。通过研究显式跨任务特征学习的缺失对流行基准的影响,我们已经表明,使用简单的回放程序已经部分解决了这一问题。虽然跨任务特征的学习仍然可以改进,但它对最终结果的影响可能没有我们想象的那么决定性。相反,差距的主要部分可能归因于其他来源。任务增量学习中研究的知识转移的缺乏可能是其中之一。我们还强调了为任务增量学习定义的遗忘必须仔细适应类别增量学习。使用我们提出的累积遗忘度量,我们观察到遗忘并不是该设定下性能下降的主要原因。我们希望未来的研究能够在任务增量学习和类别增量学习之间建立更多联系。虽然这两种设定不同,但我们看到它们面临类似的挑战。特别是,我们认为使用与类别增量学习类似的内存约束来解决任务增量学习设定,并致力于更好的知识转移而不是零遗忘,可能会很有趣。事实上,通过在学习特征提取器顶部学习分类头,可以直接将任务之间的知识转移应用于类别增量学习,就像我们使用
另一种有希望的方法是通过与当前任务并行的未标记数据流来学习,以提高学习表示的质量,如(Lee et al., 2019)中所做的那样。这样,知识在数据流和当前任务之间转移,而不是在任务之间转移。然而,这要求能够访问与当前任务相关的具有良好属性的数据流。