[论文翻译] Class-incremental learning: survey and performance evaluation on image classification

论文地址:https://arxiv.org/abs/2010.15277
代码:https://github.com/mmasana/FACIL
发表于:arXiv Oct 2020
省略了图、表的翻译,建议配合原文食用

Class-Incremental Learning: Survey and Performance Evaluation on Image Classification

Abstract

对于未来的学习系统来说,很需要增量学习,因为增量学习可以:消除在新数据到来时所需的从头重新训练,以有效地使用资源;防止或限制需要存储的数据量以减少内存的使用并保护隐私;以及以更接近于人类学习的方式来学习。增量学习的主要挑战是灾难性遗忘(catastrophic forgetting),这指的是在学习新的任务后,以前学过的任务的性能会急剧下降。近年来,深度神经网络的增量学习有了爆炸性的增长。最初的工作集中在任务增量学习上,即在推理时提供一个任务的ID。最近,我们看到了朝着类增量学习的转变,学习器必须在推理时对以前任务中看到的所有类进行区分,而不需要依赖于任务ID。在本文中,我们对现有的用于图像分类的类增量学习方法进行了完整的调查,并对13种类增量方法进行了广泛的实验评估。我们考虑了几个新的实验场景,包括在多个大规模图像分类数据集上比较类增量方法,调查小的和大的域转移,以及比较各种网络结构。

I. Introduction

增量学习的目的是开发人工智能系统,该系统可以不断学习,从新的数据中解决新的任务,同时保留从以前学习的任务中获得的知识。在大多数增量学习场景中,任务是在一连串划定的训练环节中呈现给学习者的,在此期间只有单一任务的数据可供学习。在每个训练环节之后,学习器应该有能力在未见过的数据上执行所有先前看到过的任务。这种学习模式的生物学灵感很明显,因为它反映了人类是如何获得和整合新知识的:当有新的任务需要学习时,我们会利用以前的知识,将新学的知识整合到以前的任务中。

这与普遍的监督学习范式形成了鲜明的对比,其在深度网络的单一训练环节中,所有任务的标记数据都是共同可用的。增量学习器每次只能获得单一任务的数据,同时对迄今为止的所有学习任务进行评估。增量学习的主要挑战是如何从当前任务的数据中学习,同时防止遗忘以前学习的任务。简单的微调方法,虽然能够卓有成效地应用于领域转移问题,但由于缺乏以前任务的数据,所以得到的分类器无法对这些数据进行分类。这种在以前学过的任务上性能急剧下降是一种被称为灾难性遗忘(catastrophic forgetting)的现象。增量学习的目的是防止灾难性遗忘,同时避免抑制对新任务适应能力的不妥协(intransigence)问题。

我们采用了与iCaRL一起首次提出的关于增量学习的观点以及术语。在增量学习中,训练被分为一连串的任务,在任一训练环节中,学习者只能获得当前任务的数据,不过也有一些方法考虑存储少量以前任务的数据。大多数早期的增量学习方法都考虑了的是这种情景,即所谓的任务增量学习(task-IL)。在这种情况下,算法在推理时可以获得一个任务ID。这有一个明显的优势,即方法不需要区分来自不同任务的类别。最近,一些方法开始处理更困难的类增量学习(class-IL)的情况,在这种情况下,学习器在推理时无法获得任务ID,因此必须能够区分来自所有任务的所有类(见图1)。在推理时通常没有任务ID的场景包括那些逐步增加其容量粒度的场景(例如检测图像中越来越多的物体类别)。在过去的几年里,人们提出了各种各样的class-IL方法,现在是提供一个广泛的概述和实验比较的时机。

在这项综述中,我们着手确定class-IL的主要挑战,并将提出的解决方案分为三大类:基于正则化(regularization-based)的解决方案,其旨在将学习新任务对以前任务的重要权重的影响降到最低;基于示范(exemplar-based)的解决方案,存储一组有限的示范,以防止遗忘以前的任务;以及直接解决任务-时间偏差(task-recency bias)问题的解决方案,这种现象发生在class-IL方法中,是指对最近学习的任务的偏见。除了概述近年来在class-IL方面的进展,我们还对现有的方法进行了广泛的实验评估。我们评估了几种比较流行的正则化方法(通常是为task-IL提出的),并通过示范对它们进行了扩展,以便与最近提出的方法进行更公平的比较。此外,我们进行了广泛的实验,在几种场景下对13种方法进行了比较。还在一个新的、更具挑战性的多数据集设置上评估了class-IL方法。我们是第一个在广泛的网络结构上比较这些方法的。在本页顶部的 "建议 "中总结了我们调查的结果。我们可扩展的class-IL评估框架,包括复现结果的代码,是公开可用的(https://github.com/mmasana/FACIL)。

本文的组织结构如下。在第二章,我们定义了类增量学习和需要解决的主要挑战。在第三章,我们首先定义了我们在实验评估中所考虑的方法的范围,该范围是基于一个期望值的清单。然后,我们介绍了已经提出的用于类增量学习的主要方法。在第四章,我们描述了相关的工作。在第五章,我们概述了我们的实验设置,并在第六章进行了广泛的实验评估。在第七章中,我们讨论了类增量学习的几个新趋势,然后在第八章给出结论。

II. Class-Incremental Learning

增量学习与几个研究课题相关,包括持续学习(continual learning)和终身学习(lifelong learning)。尽管持续学习和增量学习经常被交替使用,增量学习可以被认为是持续学习的一种,其中任务是以大块的新监督数据呈现的。相比之下,持续学习决不仅局限于受监督的情况。事实上,有一项工作引发了对持续学习的新兴趣,它被应用于视频游戏的深度强化学习。终身学习可以被认为是建立能够在整个延长的生命周期中学习的智能系统的问题,在这个生命周期中必须获得和整合新的知识来完成新的任务。持续学习是终身学习系统的特征之一,然而,即使是这种区别也往往是模糊的,它依然也与增量学习和持续学习交替使用。

A. The Practical Importance of Incremental Learning

在过去的几年里,增量学习受到的关注明显增加,这是因为工业和社会的应用需求所推动的。以下几个问题,可以由增量知识提供一个解决方案。

Memory Restrictions

对存储容量有受物理限制的系统不能采用联合训练策略,因为它们根本无法存储所有看到的数据。这样的系统只能为它们执行的任务存储有限的例子,因此,学习必须是渐进式的。这种情况在机器人技术中特别常见,机器人在不同的时间或地点面临不同的任务,但仍应能执行所有先前学到的任务。

Data Security/Privacy Restrictions

对于从不应该永久存储数据的系统,增量学习可以提供一个解决方案。政府立法可以限制客户在中央位置的数据存储(例如,在移动设备上的软件)。隐私考虑在健康应用中也很常见,法律禁止长期存储病人的数据,因此增量学习很关键。

Sustainable ICT

训练深度学习算法的成本可能是高昂的。例子包括GPT-2 需要在32个TPUv3芯片上进行1周的训练。为每一个新的数据更新而重新训练这些系统的碳足迹是相当大的,而且在未来几年可能还会增加。增量学习提供的算法在计算上更有效率,只需要在更新系统时处理新的数据。

B. General Class-Incremental Learning Setup

类增量学习方法从非稳态分布的数据流中学习。这些方法应该可以扩展到大量的任务,而不会有过度的计算和内存增长。它们的目的是利用以前的类的知识来提高对新类的学习(前向传播),以及利用新数据来提高以前任务的性能(后向传播)。我们的研究集中在类增量学习的场景上,其中算法必须学习一连串的任务(关于无任务场景的讨论见第七章)。对于这里的任务,我们指的是一组与其他(以前或将来)任务中的类所不相干的类。在每个训练环节中,学习者只能访问一个任务的数据。我们可以考虑用一个小的内存来存储以前任务中的一些示例。任务由若干类组成,学习器被允许在训练环节中多次处理当前任务的训练数据。我们不考虑一些论文中使用的在线学习设置,在这种设置中每个数据样本只被看到一次。

更正式地说,一个增量学习问题 T T T n n n个任务序列组成: T = [ ( C 1 , D 1 ) , ( C 2 , D 2 ) , … , ( C n , D n ) ] \mathcal{T}=\left[\left(C^{1}, D^{1}\right),\left(C^{2}, D^{2}\right), \ldots,\left(C^{n}, D^{n}\right)\right] T=[(C1,D1),(C2,D2),,(Cn,Dn)] 其中每个任务 t t t由一个类集 C t = { c 1 t , c 2 t … , c n t t } C^{t}=\left\{c_{1}^{t}, c_{2}^{t} \ldots, c_{n^{t}}^{t}\right\} Ct={c1t,c2t,cntt}与训练数据 D t D^t Dt表示。我们用 N t N^t Nt表示所有任务中类的总数,即 N t = ∑ i = 1 t ∣ C i ∣ N^{t}=\sum_{i=1}^{t}\left|C^{i}\right| Nt=i=1tCi。考虑类增量的分类问题,则有 D t = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m t , y m t ) } D^{t}=\left\{\left(\mathbf{x}_{1}, \mathbf{y}_{1}\right),\left(\mathbf{x}_{2}, \mathbf{y}_{2}\right), \ldots,\left(\mathbf{x}_{m^{t}}, \mathbf{y}_{m^{t}}\right)\right\} Dt={(x1,y1),(x2,y2),,(xmt,ymt)},其中 x \mathbf{x} x为训练样本的输入特征, y ∈ { 0 , 1 } N t \mathbf{y} \in\{0,1\}^{N^{t}} y{0,1}Nt x i \mathbf{x}_i xi所对应的ground truth标签向量。在对任务 t t t进行训练的过程中,学习器只能够访问 D t D^t Dt,并且不同任务的类是没有重复的( C i ∩ C j = ∅ C^{i} \cap C^{j}=\varnothing CiCj= if i ≠ j i \neq j i=j)。

考虑增量学习器为一个深度网络,其参数为 θ \theta θ,用 o ( x ) = h ( x ; θ ) \mathbf{o}(\mathbf{x})=h(\mathbf{x} ; \theta) o(x)=h(x;θ)表述网络输入 x \mathbf{x} x时的logits输出。进一步地,将网络分为一个特征提取器 f f f,其参数为 ϕ \phi ϕ;以及一个线性分类器 g g g,其参数为 V V V。则有 o ( x ) = g ( f ( x ; ϕ ) ; V ) \mathbf{o}(\mathbf{x})=g(f(\mathbf{x} ; \phi) ; V) o(x)=g(f(x;ϕ);V)。我们用 y ^ = σ ( h ( x ; θ ) ) \hat{\mathbf{y}}=\sigma(h(\mathbf{x} ; \theta)) y^=σ(h(x;θ))表示网络的预测结果,其中 σ \sigma σ表示softmax函数。在任务 t t t训练后,我们在所有类 ⋃ i = 1 t C i \bigcup_{i=1}^{t} C^{i} i=1tCi上对网络的性能进行评估。注意这里与任务增量学习不同,任务增量学习在测试阶段的任务id t t t是已知的,并且只评估 C t C^t Ct的性能。

大多数类增量学习分类器是用交叉熵损失来训练的。当只对当前任务 t t t的数据进行训练时,我们考虑两种交叉熵变体。一种是到当前任务为止的所有类别的交叉熵: L c ( x , y ; θ t ) ∣ = ∑ k = 1 N t y k log ⁡ exp ⁡ ( o k ) ∑ i = 1 N t exp ⁡ ( o i ) \mathcal{L}_{c}\left(\mathbf{x}, \mathbf{y} ; \theta^{t}\right) \mid=\sum_{k=1}^{N^{t}} y_{k} \log \frac{\exp \left(\mathbf{o}_{k}\right)}{\sum_{i=1}^{N^{t}} \exp \left(\mathbf{o}_{i}\right)} Lc(x,y;θt)=k=1Ntyklogi=1Ntexp(oi)exp(ok) 需要注意的是,在这种情况下,由于softmax归一化是在以前所有任务中看到的所有类别上进行的,训练期间的错误是从所有输出中反向传播的——包括那些不属于当前任务的类别。

相反,我们可以只考虑属于当前任务 t t t的类别的网络输出,并定义以下交叉熵损失: L c ∗ ( x , y ; θ t ) = ∑ k = 1 ∣ C t ∣ y N t − 1 + k log ⁡ exp ⁡ ( o N t − 1 + k ) ∑ i = 1 ∣ C t ∣ exp ⁡ ( o N t − 1 + i ) \mathcal{L}_{c} *\left(\mathbf{x}, \mathbf{y} ; \theta^{t}\right)=\sum_{k=1}^{\left|C^{t}\right|} y_{N^{t-1}+k} \log \frac{\exp \left(\mathbf{o}_{N^{t-1}+k}\right)}{\sum_{i=1}^{\left|C^{t}\right|} \exp \left(\mathbf{o}_{N^{t-1}+i}\right)} Lc(x,y;θt)=k=1CtyNt1+klogi=1Ctexp(oNt1+i)exp(oNt1+k) 这种损失只考虑当前任务中的类的softmax归一化预测。因此,错误只从任务 t t t中与这些类相关的概率中反向传播。

当利用代表以前任务数据的示范时,很自然地应用第一个公式,该公式考虑了对以前和新类的估计概率。然而,在实验中我们将发现,当不使用示范时,第二个公式导致的灾难性遗忘明显减少。有趣的是,用第二个公式进行微调生成的基线比用第一个公式进行微调要强得多。

C. Scope of Our Experimental Evaluation

关于增量学习的文献很多,而且在不断增加,近年来也提出了几个关于类增量学习的定义和解释。为了将本综述的范围缩小到一批有用的可比较的方法,我们认为类增量学习方法应:

  • 1)Task-Agnostic in Evaluation:增量学习者能够从所有先前学习的任务中预测类别,而不需要在推理时求助于提供可能类别子集的额外信息。
  • 2)Offline:各训练阶段中的数据是独立的,在进入下一个任务之前可以进行多次处理当前阶段的数据。
  • 3)Fixed Network Architecture:对所有任务使用固定的架构,不对新任务的架构增加大量的参数。
  • 4)Tabula Rasa:增量学习器从头开始训练,不需要在大型标记数据集上进行预训练。这一特性消除了在预训练过程中看到的类别分布所带来的潜在偏差,以及从这一知识中衍生出来的任何利用。
  • 5)Mature:可以被应用于复杂的图像分类任务上。

性质1将类增量学习与任务增量学习相区分,而性质2~5是为了保证在我们挑选的方法能公平比较实验。最后,我们还考虑一个可选的特性:

  • 6)Exemplar-Free:不需要存储以前任务的图像数据。这是隐私保护的一个重要特征。

在数据隐私和安全对许多用户来说是至关重要的,并且受到越来越多的立法控制的情况下,不需要任何数据存储的方法正受到越来越多的关注。

D. Challenges of Class-Incremental Learning

有效的类增量学习的主要障碍在概念上是简单的,但在实践中却非常难以克服。这些挑战源于任务的连续训练,以及要求学习器在任何时候都必须能够对所有先前学习的任务进行分类。增量学习方法必须在保留以前任务的知识和为当前任务学习新知识之间取得平衡。这个问题被称为 “稳定性-可塑性”(stability-plasticity)困境。仅仅关注学习新任务的直接方法将遭受灾难性的遗忘——以前任务的性能急剧下降。防止灾难性遗忘会导致类增量学习的第二个重要问题,即不妥协性(intransigence):对学习新任务的抵触。导致类增量学习器灾难性遗忘的原因有几个:

  • 1)Weight Drift:在学习新任务时,与旧任务相关的网络权重被更新,以使新任务的损失最小化。因此,以前任务的表现会受到影响–往往是极大的影响。
  • 2)Activation Drift:与权重漂移密切相关,改变权重会导致激活的变化,从而导致网络输出的变化。专注于激活而不是权重,可以减少限制性,因为这允许权重的变化,只要它们导致的层激活变化最小。
  • 3)Inter-task Confusion:在类增量学习中,目标是对所有任务中的所有类别进行区分。然而,由于各类从来没有被联合训练过,网络权重不可能最优地区分所有的类(见图2)。这对网络中的所有层都适用。
  • 4)Task-Recency Bias:分开学习的任务可能会有不相容的分类器输出。通常情况下,最主要的任务偏向于较新的任务类别。在混淆矩阵中可以清楚地观察到这种效果,它说明了将输入错误地分类为属于最近的任务的趋势(见图3)。

前两个遗忘与网络漂移有关,在任务增量学习文献中被广泛考虑。基于正则化的方法要么侧重于防止重要权重的漂移,要么防止激活的漂移。

最后两点是针对类增量学习的,因为它们在推理时无法获得任务ID。大多数研究都集中在减少任务不平衡上,这解决了任务-时间偏差。为了防止任务间的混淆,并学习对所有类别进行区分的最佳表征,通常使用排练(rehearsal)或伪排练(pseudo-rehearsal)。

III. Approaches

在这一节中,我们描述了几种方法来解决上述的类增量学习的挑战。我们把它们分为三大类:基于正则化的方法、基于排练的方法和纠正偏见的方法。

A. Regularization Approaches

一些方法将正则项与分类损失一起使用,以减轻灾难性的遗忘。有的对权重进行正则化,并对网络中的每个参数估计一个重要性指标,而有的则侧重于记忆特征表示的重要性。这些方法中的大多数都是在任务增量学习的背景下开发的,并且已经被其他作品所回顾。由于它们对类增量学习同样重要,我们会简要讨论它们。特别是特征表征的正则化在类增量学习中被广泛使用。最后,我们将描述最近专门为类增量学习开发的几种正则化技术。

Weight regularization

第一类方法的重点是防止被确定为与先前任务相关的权重发生漂移。它们通过在学习每个任务后估计网络中每个参数的先验重要性(假定它们是独立的)来做到这一点。当对新任务进行训练时,每个参数的重要性被用来惩罚它们的变化。也就是说,除了交叉熵分类损失之外,还引入了一个额外的损失: L r e g ( θ t ) = 1 2 ∑ i = 1 ∣ θ t − 1 ∣ Ω i ( θ i t − 1 − θ i t ) 2 \mathcal{L}_{\mathrm{reg}}\left(\theta^{t}\right)=\frac{1}{2} \sum_{i=1}^{\left|\theta^{t-1}\right|} \Omega_{i}\left(\theta_{i}^{t-1}-\theta_{i}^{t}\right)^{2} Lreg(θt)=21i=1θt1Ωi(θit1θit)2 其中 θ i t \theta_{i}^{t} θit为当前被训练网络的权重 i i i θ i t − 1 \theta_{i}^{t-1} θit1为上一个任务 t − 1 t-1 t1下权重 i i i的值, ∣ θ t − 1 ∣ |\theta^{t-1}| θt1为网络的权重数, Ω i \Omega_{i} Ωi为每个网络权重的重要程度。

Kirkpatrick等人提出了弹性权重巩固法(EWC),其中 Ω i \Omega_{i} Ωi被计算为Fisher信息矩阵的对角线近似值。然而,这抓住了每个任务学习后最小的模型的重要性,而忽略了这些参数沿着学习轨迹在权重空间的影响。在[33]中,作者通过旋转参数空间来改进EWC,以提供一个更好的Fisher信息矩阵的近似值。然而,该模型在训练过程中必须用固定的参数进行扩展,这并没有增加网络的容量,而是产生了计算和内存成本。在改善EWC中Fisher信息矩阵的近似性方面,[38]的作者提出了一种Kronecker因式分解技术的扩展,用于Fisher信息矩阵的块对角线近似。他们还证明了这种Kronecker因式分解是如何使适应批归一化成为可能的。

相比之下,[22]提出了路径积分法(PathInt),它沿整个学习轨迹在线累积每个参数的变化。正如作者所指出的,权重的批量更新可能会导致高估重要性,而从预训练开始的模型开始可能会导致低估重要性。为了解决这个问题,Memory Aware Synapses(MAS)也提出通过积累所学函数的灵敏度(梯度的大小)来在线计算 Ω i \Omega_{i} Ωi。在[7]中,提出了Riemanian Walk(RWalk)算法:融合了Fisher信息矩阵近似和在线路径积分来计算每个参数的重要性。此外,RWalk使用范例来进一步改善结果。

Data Regularization

第二类基于正则化的方法旨在防止激活漂移,它基于知识蒸馏,其最初是为了从较大的教师网络中学习更紧凑的学生网络。Li等人提出使用该技术来保持在学习新任务时以前数据的表征不会漂移太多。他们的方法被称为无遗忘学习(LwF),应用了以下损失函数: L d i s ( x ; θ t ) = ∑ k = 1 N t − 1 π k t − 1 ( x ) log ⁡ π k t ( x ) \mathcal{L}_{d i s}\left(\mathbf{x} ; \theta^{t}\right)=\sum_{k=1}^{N^{t-1}} \pi_{k}^{t-1}(\mathbf{x}) \log \pi_{k}^{t}(\mathbf{x}) Ldis(x;θt)=k=1Nt1πkt1(x)logπkt(x) 其中 π k ( x ) \pi_{k}(\mathbf{x}) πk(x)为网络的温度标度对数: π k ( x ) = e o k ( x ) / T ∑ l = 1 N t − 1 e o l ( x ) / T \pi_{k}(\mathbf{x})=\frac{e^{\mathbf{o}_{k}(\mathbf{x}) / T}}{\sum_{l=1}^{N^{t-1}} e^{\mathbf{o}_{l}(\mathbf{x}) / T}} πk(x)=l=1Nt1eol(x)/Teok(x)/T o ( x ) \mathbf{o}(\mathbf{x}) o(x)为网络在softmax前的输出, T T T为温度缩放参数。用 π t − 1 \pi^{t-1} πt1表示网络在训练完任务 t − 1 t-1 t1后的预测。温度缩放在文[40]中被提出,以帮助解决正确类的概率过高的问题。

刚才提到的无遗忘学习(LwF)损失最初是为任务增量学习提出的。然而,它后来成为许多类增量学习方法的一个关键要素。当LwF方法与示范相结合时,蒸馏损失通常也被应用于以前的类的示范。最后,一些工作观察到,当任务之间的领域转移较小时,该损失的效果特别好(通常是类增量学习的情况)。然而,当领域转移较大时,其效果明显下降。

Jung等人提出了一种非常类似的方法,称为少忘性学习(LFL)。LFL通过冻结最后一层并惩罚分类器层之前的激活的差异来保留以前的知识。然而,当领域转移过大时,该方法的这可能会出现更大的问题,所以其他方法引入了一些修改来进行改进。基于编码器的终身学习通过优化一个不完整的自编码器扩展了LwF,该编码器将特征投射到一个维度较少的流形上。每个任务学习一个自编码器,这使得增长是线性的,尽管自动编码器与总模型大小相比很小。

Recent Developments in Regularization

最近的关于类增量学习的工作中提出了一些新的正则化技术。[42]提出使用教师网络的注意力来指导学生网络。LwM将这种技术应用于类增量学习。其主要思想是,在训练新任务时,以前任务训练的网络所使用的注意力不应改变。有助于决定某个类别标签的特征预计将保持不变,这是由注意力蒸馏损失强制执行的: L A D ( x ; θ t ) = ∥ Q t − 1 ( x ) ∥ Q t − 1 ( x ) ∥ 2 − Q t ( x ) ∥ Q t ( x ) ∥ 2 ∥ 1 \mathcal{L}_{A D}\left(\mathbf{x} ; \theta^{t}\right)=\left\|\frac{Q^{t-1}(\mathbf{x})}{\left\|Q^{t-1}(\mathbf{x})\right\|_{2}}-\frac{Q^{t}(\mathbf{x})}{\left\|Q^{t}(\mathbf{x})\right\|_{2}}\right\|_{1} LAD(x;θt)=Qt1(x)2Qt1(x)Qt(x)2Qt(x)1 其中注意力图 Q Q Q计算如下: Q t ( x ) = Grad ⁡ − CAM ⁡ ( x , θ t , c ) Q t − 1 ( x ) = Grad ⁡ − CAM ⁡ ( x , θ t − 1 , c ) \begin{aligned} Q^{t}(\mathbf{x}) &=\operatorname{Grad}-\operatorname{CAM}\left(\mathbf{x}, \theta^{t}, c\right) \\ Q^{t-1}(\mathbf{x}) &=\operatorname{Grad}-\operatorname{CAM}\left(\mathbf{x}, \theta^{t-1}, c\right) \end{aligned} Qt(x)Qt1(x)=GradCAM(x,θt,c)=GradCAM(x,θt1,c) 其是通过Grad-CAM算法生成的。Grad-CAM计算相对于目标类别 c c c的梯度,以产生一个粗略的定位图,表明有助于预测的图像区域。这里我们不能使用目标类标签,因为在训练先前的模型 θ t − 1 \theta^{t-1} θt1时,这个标签并不存在。相反,作者提出使用之前预测的概率最高的类别来计算注意力图: c = argmax ⁡ h ( x ; θ t − 1 ) c=\operatorname{argmax} \mathrm{h}\left(\mathbf{x} ; \theta^{\mathrm{t}-1}\right) c=argmaxh(x;θt1)

另一个建立在LwF基础上的最新方法是深度模型整合(DMC)。它是基于这样的观察:在训练时,以前和新的类之间存在着不对称性:新的类有显式和强大的监督,而对旧的类的监督是较弱的,只是通过知识蒸馏的方式进行交流。为了消除这种不对称性,他们提出对在以前的类上训练的模型 θ t − 1 \theta^{t-1} θt1和新训练的模型 θ t \theta^{t} θt进行双重蒸馏损失(允许这个模型忘记以前的任务): L D D ( u ; θ ) = 1 N t ∑ k = 1 N t ( o k ( u ) − o ∘ k ( u ) ) 2 \mathcal{L}_{D D}(\mathbf{u} ; \theta)=\frac{1}{N^{t}} \sum_{k=1}^{N^{t}}\left(\mathbf{o}_{k}(\mathbf{u})-\stackrel{\circ}{\mathbf{o}}_{k}(\mathbf{u})\right)^{2} LDD(u;θ)=Nt1k=1Nt(ok(u)ok(u))2 其中 o k ∘ \stackrel{\circ}{\mathbf{o}_{k}} ok为标准化的logits: o ∘ k ( u ) = { o k t − 1 ( u ) − 1 N t − 1 ∑ l = 1 N t − 1 o l t − 1 ( u )  if  1 ⩽ k ⩽ N t − 1 o k t ( u ) − 1 N t ∑ l = 1 N t o l t ( u )  if  N t − 1 < k ⩽ N t \stackrel{\circ}{o}_{k}(\mathbf{u})= \begin{cases}\mathbf{o}_{k}^{t-1}(\mathbf{u})-\frac{1}{N^{t-1}} \sum_{l=1}^{N^{t-1}} \mathbf{o}_{l}^{t-1}(\mathbf{u}) & \text { if } 1 \leqslant k \leqslant N^{t-1} \\ \mathbf{o}_{k}^{t}(\mathbf{u})-\frac{1}{N^{t}} \sum_{l=1}^{N^{t}} \mathbf{o}_{l}^{t}(\mathbf{u}) & \text { if } N^{t-1}<k \leqslant N^{t}\end{cases} ok(u)={okt1(u)Nt11l=1Nt1olt1(u)okt(u)Nt1l=1Ntolt(u) if 1kNt1 if Nt1<kNt 其中 o t − 1 ( u ) \mathbf{o}^{t-1}(\mathbf{u}) ot1(u)指的是在以前的任务中训练的网络Logits,而 o t ( u ) \mathbf{o}^{t}(\mathbf{u}) ot(u)指的是在新类上训练的Logits。由于该算法无法获得以前的任务数据,他们建议使用辅助数据 u u u,它可以是来自类似域的任何未标记的数据。

类似地,全局蒸馏(Global Distillation,GD)也提出使用外部数据来提炼以前任务中的知识。他们首先在当前任务上训练一个教师,并使用外部数据和示范来校准其置信度。然后,他们从教师、以前的模型以及他们的组合(加上当前任务和范例的交叉熵损失)中提炼出一个新模型。教师和先前的任务同时用于当前的任务数据和外部数据集数据,而组合只用于外部数据。最后,他们在进行微调的同时,通过根据数据量对损失进行加权,避免了任务-时间的偏差。外部数据集的采样方法是基于模型的预测。

在[45]中,当前的任务数据也不是直接训练的,而是先用来训练一个专家教师。该方法还保留的一小部分以前的任务数据提炼出一个旧模型,以保持在旧任务上的性能,与LwF类似,但使用存储的范例而不是新数据。基于对iCaRL的分析,[46]声称使用最近范例平均分类器是有偏见的,并提出使用动态阈值移动算法,通过保持最新的缩放向量来修复用蒸馏损失训练的分类器的偏见。

最后,Hou等人在他们的方法中提出的少忘性约束是LwF的一个变种。他们没有对网络预测进行正则化,而是提出对前一个网络和当前网络的L2归一化logits之间的余弦相似性进行正则化: L l f ( x ; θ ) = 1 − ⟨ o t − 1 ( x ) , o t ( x ) ⟩ ∥ o t − 1 ( x ) ∥ 2 ∥ o t ( x ) ∥ 2 \mathcal{L}_{l f}(\mathbf{x} ; \theta)=1-\frac{\left\langle\mathbf{o}^{t-1}(\mathbf{x}), \mathbf{o}^{t}(\mathbf{x})\right\rangle}{\left\|\mathbf{o}^{t-1}(\mathbf{x})\right\|_{2}\left\|\mathbf{o}^{t}(\mathbf{x})\right\|_{2}} Llf(x;θ)=1ot1(x)2ot(x)2ot1(x),ot(x) 其中 < ⋅ , ⋅ > <·,·> <,>是向量之间的内积。这种正则化对任务不平衡不那么敏感,因为比较是在归一化的向量之间。作者表明,这种损失减少了对新类的偏见。

B. Rehearsal Approaches

排练方法保留少量的示例(示例排练),或生成合成图像或特征(假性排练)。通过重放以前任务的存储或生成的数据,排练方法旨在防止遗忘以前的任务。大多数的排练方法都结合了使用示范来解决任务间的混淆和处理灾难性遗忘的其他原因的方法。在iCaRL中首次提出了使用示范排练进行类增量学习的方法。此后,这一技术被应用于大多数的类增量学习方法中。在这一节中,我们重点讨论在应用示范时需要做出的选择。

Memory Types

在模型已经适应了新的任务之后,必须在训练结束时扩展示范内存。如果内存在所有任务中都有一个固定的最大容量(固定内存),则必须首先删除一些示范,以便为新的示范腾出空间。这就保证了内存的容量保持不变。学习的任务和类别越多,每个类别用于排练的示范就越少。在学习了一定数量的任务后,可以扩大内存以更好地容纳新的分布。然而,以前删除的样本会丢失,因此,决定何时扩展是一个重要问题。如果允许内存增长,那么只需要添加来自当前任务的新样本。这就使类在所有任务的排练过程中都有一个稳定的表征,代价是内存的线性增长,这在某些应用中可能并不合适。在这两种情况下,每个类别的示例数量都是相同的,以确保所有类别的平等代表性。

Sampling Strategies

选择示范添加到内存的最简单的方法是从可用数据中随机抽样,这已被证明是非常有效的,没有太多的计算成本。

iCaRL建议根据相应的特征空间表征来选择示范。所有样本的表征都被提取出来,并计算出每个类别的平均值。该方法迭代地选择每个类别的示范。在每个步骤中,选择一个样本,以便在加入其类别的样本时,产生的样本平均值最接近真实的类别平均值。添加样本的顺序是很重要的,在需要删除一些样本时也要考虑到。尽管这种迭代选择程序通常优于随机选择,但它增加了计算成本。

在RWalk中,提出了另外两种采样策略。第一种是计算softmax输出的熵,并选择具有更高熵的样本。这就强制选择在所有类别中具有更多分布的分数的样本。同样,第二种方法是根据样本与决策边界的接近程度来选择样本,假设特征空间和决策边界没有太大变化。对于一个给定的样本 ( x i , y i ) (x_i, y_i) (xi,yi),与决策边界的伪距离由 f ( x i ; ϕ ) T V y i f\left(\mathbf{x}_{i} ; \phi\right)^{T} V_{\mathbf{y}_{i}} f(xi;ϕ)TVyi计算得到,意味着距离越小,越接近决策边界。

对于这些抽样策略(除了随机),选择样本的顺序是按照重要性的递减来记录的。如果使用的是固定的内存,并且必须释放一些内存来为新的样本腾出空间,那么重要性较低的样本就会被首先删除。

Task Balancing

当在新任务的训练过程中应用排练时,新的类与以前的类相比,其权重由损失的两部分之间的权衡以及每个训练步骤中每个类的样本数量来定义。大多数方法从新数据和排练样本的联合池中抽取训练batch。这意味着batch显然是过度代表新样本的,并且依赖于交叉熵损失和其他防止遗忘的损失之间的权衡。相比之下,[28]提出了一个更平衡的训练,即新的batch和以前的类别之间平均分配。这在补偿在训练期间的任务不平衡方面似乎有相当有益的效果。

Combining Rehearsal and Data Regularization

一些方法使用 "无遗忘学习"中的蒸馏损失来处理与示例相结合的激活漂移问题。然而,Beloudah和Popescu做了一个重要的观察,即这个蒸馏项在使用示范时实际上损害了性能。我们将在我们的结果中证实这一点,然而,我们将表明,在某些情况下,权重正则化和示范排练的结合会有好处。

最近关于任务增量学习的研究表明,数据正则化可以提供一种自然的方式,通过选择用于近似基础任务特定函数(网络输出)的高斯过程的诱导点来选择排练的数据。这个方向在[51]中得到了进一步的探索,然而这些方法对类增量学习的有用性仍有待确定。

C. Bias-Correction Approaches

偏差校正方法旨在解决"任务-时间偏差"的问题,这是指增量学习的网络偏向于最近学习的任务中的类别的趋势。这主要是由于在训练结束时,网络已经看到了最后一个任务中的许多例子,但没有(或在排练的情况下很少)来自早期任务的例子。正如Hou等人所观察到的,这种情况的一个直接后果是,分类器范数对新的类别比对以前的类别要大,分类器偏向于较新的类别。这种效果显示在图4中,较低的偏差和分类器范数的减少使得网络不太可能选择以前的任何类别。在本节中,我们将讨论解决这个问题的几种方法。

早先提到的iCaRL方法结合了示范和无遗忘学习,在训练期间使用分类器层和交叉熵损失。为了防止任务-时间偏差,他们在推理中不使用分类器。相反,他们在特征表示中计算示范的类平均值,然后应用最近的示范平均值进行分类。由于这个过程与最后一层的权重和偏差无关,该方法被证明不容易出现任务-时间偏差。

Castro等人在他们的端到端增量学习(EEIL)方法中提出了一种简单而有效的方法来防止任务-时间偏差。他们提出在每个训练轮次结束时引入一个额外的阶段,称为平衡训练。在这个阶段,来自所有类别的同等数量的样本被用于有限的迭代。为了避免遗忘新的类别,他们在分类层上引入了一个只针对当前任务中的类别的蒸馏损失。平衡训练的代价是对已经存储的样本进行过拟合,因为这些样本并不完全代表分布情况。

Wu等人提出了另一种简单而有效的防止任务时间-偏差的方法,他们把自己的方法称为偏差校正(BiC)。他们在网络中增加了一个专门用于纠正任务偏差的附加层。一个训练段被分为两个阶段。在第一阶段,他们用交叉熵损失和蒸馏损失来训练新任务。然后,在第二阶段,他们使用分割出的一小部分训练数据作为验证集。他们建议在logics之上学习一个线性转换, o k \mathbf{o}_{k} ok,以补偿任务-时间偏差。变换后的logics由以下公式给出: q k = α s o k + β s , c k ∈ C s \mathbf{q}_{k}=\alpha_{s} \mathbf{o}_{k}+\beta_{s}, \quad c_{k} \in C^{s} qk=αsok+βs,ckCs 其中, α s \alpha_{s} αs β s \beta_{s} βs是补偿任务 s s s中的偏差的参数。对于每个任务,只有两个参数是为该任务中的所有类别共享的(初始化为 α 1 = 1 \alpha_{1} = 1 α1=1 β 1 = 0 \beta_{1} = 0 β1=0)。在第二阶段,网络中的所有参数被冻结,除了当前任务的参数 α t \alpha_{t} αt β t \beta_{t} βt。这些参数用标准的softmax对转换后的logits q k \mathbf{q}_{k} qk进行优化,使用的是set-aside验证集。最后,他们只对 β \beta β参数应用权重衰减,而不是对 α \alpha α参数。

如前所述,Hou等人也观察到了任务-时间偏差。在他们的方法LUCIR中,他们建议用余弦归一化层取代标准的softmax层 σ \sigma σ L c o s ( x ; θ t ) = ∑ k = 1 N t y k log ⁡ exp ⁡ ( η ⟨ f ( x ) ∥ f ( x ) ∥ , V k ∥ V k ∥ ⟩ ) ∑ i = 1 N t exp ⁡ ( η ⟨ f ( x ) ∥ f ( x ) ∥ , V i ∥ V i ∥ ⟩ ) \mathcal{L}_{c o s}\left(\mathbf{x} ; \theta^{t}\right)=\sum_{k=1}^{N^{t}} y_{k} \log \frac{\exp \left(\eta\left\langle\frac{f(\mathbf{x})}{\|f(\mathbf{x})\|}, \frac{V_{k}}{\left\|V_{k}\right\|}\right\rangle\right)}{\sum_{i=1}^{N^{t}} \exp \left(\eta\left\langle\frac{f(\mathbf{x})}{\|f(\mathbf{x})\|}, \frac{V_{i}}{\left\|V_{i}\right\|}\right\rangle\right)} Lcos(x;θt)=k=1Ntyklogi=1Ntexp(ηf(x)f(x),ViVi)exp(ηf(x)f(x),VkVk) 其中, f ( x ) f(\mathbf{x}) f(x)是特征提取器的输出, < ⋅ , ⋅ > <·,·> <,>是内积, V k V_k Vk是与 k k k类相关的分类器权重(也称为类嵌入), η \eta η是一个可学习参数,控制概率分布的峰值。

Hou等人也解决了任务间混淆的问题。为了防止新的类与以前任务中的类占据类似的位置,他们应用了边际排名损失。这个损失将当前的嵌入从 K K K个最相似的类的嵌入中推开: L m r ( x ) = ∑ k = 1 K max ⁡ ( m − ⟨ f ( x ) ∥ f ( x ) ∥ , V y ∥ V y ∥ ⟩ + ⟨ f ( x ) ∥ f ( x ) ∥ , V k ∥ V k ∥ ⟩ , 0 ) \mathcal{L}_{m r}(\mathbf{x})=\sum_{k=1}^{K} \max \left(m-\left\langle\frac{f(\mathbf{x})}{\|f(\mathbf{x})\|}, \frac{V_{y}}{\left\|V_{y}\right\|}\right\rangle+\left\langle\frac{f(\mathbf{x})}{\|f(\mathbf{x})\|}, \frac{V_{k}}{\left\|V_{k}\right\|}\right\rangle, 0\right) Lmr(x)=k=1Kmax(mf(x)f(x),VyVy+f(x)f(x),VkVk,0) 其中, V ^ y \hat{V}_{y} V^y指的是 x x x的类嵌入GT, V ^ k \hat{V}_{k} V^k是最接近的类的嵌入, m m m是边界。

最后,Belouadah和Popescu提出了另一种解决任务-时间偏差的方法,他们的方法被称为IL2M。他们的方法与BiC相似,即他们提出纠正网络预测。然而,在BiC通过增加一个额外的层来学习纠正预测的情况下,IL2M根据以前的任务中保存的预测类的确定性统计来纠正。令 m = arg ⁡ max ⁡ y ^ ( x ) m=\arg \max \hat{\mathbf{y}}(\mathbf{x}) m=argmaxy^(x),他们计算以前的类 k k k的纠正预测为: y ^ k r ( x ) = { y ^ k ( x ) × y ˉ k p y ˉ k t × y ˉ t y ˉ p  if  m ∈ C t y ^ k ( x )  otherwise.  \hat{y}_{k}^{r}(\mathbf{x})= \begin{cases}\hat{y}_{k}(\mathbf{x}) \times \frac{\bar{y}_{k}^{p}}{\bar{y}_{k}^{t}} \times \frac{\bar{y}^{t}}{\bar{y}^{p}} & \text { if } m \in C^{t} \\ \hat{y}_{k}(\mathbf{x}) & \text { otherwise. }\end{cases} y^kr(x)={y^k(x)×yˉktyˉkp×yˉpyˉty^k(x) if mCt otherwise.  这里 y ˉ k p \bar{y}_{k}^{p} yˉkp(上标 p p p指的是过去)是在训练了第一次学习 c k c_k ck类的任务( c k ∈ C p c_{k} \in C^{p} ckCp)后,对 c k c_k ck类的所有图像的预测平均值。 y ˉ k p \bar{y}_{k}^{p} yˉkp y ˉ p \bar{y}^{p} yˉp都是在其相应的训练环节后直接存储的。 y ˉ k t \bar{y}_{k}^{t} yˉkt是在训练新任务后对所有 c k c_k ck类图像的预测平均值 y ^ k \hat{y}_k y^k(这是基于示范计算的)。同样地, y ˉ t \bar{y}^{t} yˉt是新任务中所有类别的预测的平均值。可以看出,只有当预测的类别是一个新的类别( m ∈ C t m \in C^t mCt)时,才会应用纠正。如果预测的类别是一个旧的类别,作者认为不需要纠正,因为预测不会受到任务不平衡的影响。

D. Relation between Class-Incremental Methods

在前面的章节中,我们讨论了通过增量学习方法来减轻灾难性遗忘的主要方法。我们在图5中总结了它们的关系,从基础的微调方法开始。在图中,我们显示了我们在第六章中比较的所有方法。它区分了使用示范保留知识的方法(蓝色,橙色)和无示范的方法(绿色)。

最值得注意的是,无遗忘学习(LwF)对整个类增量学习领域的巨大影响是很明显的。然而,最近的研究结果表明,当与示范相结合时,微调可以胜过LwF,可以在一定程度上减少其持续的影响。权重正则化方法在任务增量学习设置中经常被应用,但在类增量学习中却明显少用。它们也可以用示范进行简单的扩展,我们的实验评估中包括了这方面的结果。最后,图5还显示了iCaRL对最近的方法发展的影响。

IV. Related Work

在这一节中,我们大致回顾了相关的工作,主要集中在前一节中没有讨论的工作。

Existing Surveys

灾难性遗忘的问题已经被发现了很多年。早在80年代,McCloskey和Cohen就表明,用反向传播训练的算法遭受了灾难性的遗忘。Radcliff在用反向传播训练的更大范围的任务上证实了这一发现。French对减轻灾难性遗忘的早期方法做了很好的回顾。这篇综述还讨论了大脑是如何防止灾难性遗忘的,并为神经网络设计提出了可能的解决方案。随着2011年左右深度学习的重新兴起,灾难性遗忘的问题迅速获得了新的关注。这导致了增量学习、持续学习和终身学习方面的工作激增。

这股新的研究热潮也导致了最近对这个问题的调查。Parisi等人提供了一个关于终身学习的广泛综述。这篇综述特别有价值,因为它深入讨论了生物系统如何解决终身学习的问题。他们彻底讨论了生物学上的解决方案,如结构可塑性、记忆回放、课程和转移学习。另一篇综述关注机器人学的持续学习,并特别致力于统一机器人学和非机器人学应用的持续学习的评估方法,目的是提高持续学习的跨领域进展。然而,这些综述并没有对该领域的现有方法进行实验性能评估。

最近的一些调查确实包括对方法的评估。Pfulb和Gepperth提出了一个任务增量学习方法的训练和评估范式,仅限于两个任务。De Lange等人对任务增量学习进行了广泛的调查和实验评估,包括在任务增量学习的背景下对模型容量、权重衰减和放弃正则化的分析。此外,他们提出了一个框架,用于不断确定学习者的稳定性-可塑性权衡–我们也将其应用于我们的评估。现有的调查集中在任务增量学习上,就我们所知,还没有对类增量学习方法进行分类和广泛评估的综述。

Mask-based Methods

这类参数隔离方法通过对每个参数或每个层的表现形式应用mask来减少或完全消除灾难性的遗忘,通过对每个参数或每个层的表征应用mask。然而,通过学习网络结构中每个任务的有用路径,不可能同时评估所有学习的任务。这就迫使人们用不同的mask进行多次前向传播,这使得这种方法对任务有关的评估很有效,但对任务无关的设置却不实用。Piggyback在训练骨干网的同时学习网络权重的mask。PackNet学习权重,然后修剪它们以生成mask。HAT在层激活上应用注意力mask,以惩罚那些对特定任务重要的修改。DAN结合现有的过滤器来学习新任务的过滤器。最后,PathNet通过使用进化策略的权重学习选择性的路由。

Dynamic Architectures

另一种参数隔离方法,称为架构增长,动态地增加网络的容量,以减少灾难性的遗忘。这些方法依赖于促进一个更鲁棒的模型,能够保持以前的任务知识,同时扩展该模型以学习新任务。这使得其中一些方法在不知道任务ID的情况下不切实际,或者给网络增加了太多的参数,这使得它们对于大量的任务是不可行的。EG为每个新任务重复模型,以完全消除遗忘。PNN扩展了每一层,并在每个任务的重复之间增加了横向连接。旧的权重是固定的,允许在学习新任务时访问该信息。然而,复杂性随着任务数量的增加而增加。为了解决这个问题,P&C建议只复制网络一次,以保持参数的数量固定,并使用EWC来减轻遗忘。在[63]中,相似的类被分组,分层扩展,代价是昂贵的训练程序和僵化的结构。ACL将一个动态的架构与示范相融合,明确地将共享的和特定任务的特征与对抗性损失相分离。这允许学习对遗忘更为稳健的共享特征。

最后,随机路径选择(RPS)通过结合蒸馏和基于排练的重放,以定制的架构提供更好的性能。与前面提到的一些方法相反,RPS在推理时不需要任务ID。然而,为了学习每个任务的不同路径,所提出的架构要比其他类增量学习方法大得多。由于这种方法需要使用他们特殊的RPSNet架构,而且容量不能与本调查中比较的其他方法相比,我们在附录B中提供了结果,以分析不同的路径数量和所需的内存。

Online Incremental Learning

在增量学习领域,在线方法是基于流式框架的,学习者被允许对每个例子只观察一次,而不是在训练阶段中对一组例子进行迭代。

Lopez-Paz为这一设置建立了定义和评估方法,并描述了GEM,它使用每个任务的示范记忆来约束梯度,使以前任务的近似损失不会增加。A-GEM在效率上改进了GEM,它基于以前的类示例的平均梯度进行约束。然而,[66]的作者表明,简单地在记忆的示范上进行训练,类似于强化学习中的成熟技术,胜过以前的结果。GSS在GEM和A-GEM程序的基础上进行基于梯度的示例选择,允许在不知道任务边界的情况下进行训练。MIR通过选择在每个训练步骤后会有较大损失增加的示范,对示范记忆进行训练。在[70]中,内存被用来存储来自变分自编码器的离散潜在嵌入,允许生成以前的任务数据用于训练。MER将经验重放与元学习方法Reptile的修改相结合,以选择最小化遗忘的重放样本。

Variational Continual Learning

变分持续学习是基于贝叶斯推理框架的。VCL提议合并神经网络的在线和蒙特卡洛变异推理,产生变分持续学习。它具有通用性,适用于判别性和生成性深度模型。VGL介绍了变分生成重放,这是深度生成重放(DGR)的变分推理泛化,是对VCL的补充。UCL提出了基于标准贝叶斯在线学习框架的不确定性规则化持续学习。它对高斯均值场近似情况下的变分下限的Kullback-Leibler(KL)发散项给出了新的解释。FBCL提出使用自然梯度和斯坦因梯度来更好地估计参数的后验分布,并使用近似的后验来构造核心集。IUVCL提出了一种新的最佳实践方法,用于平均场变异贝叶斯神经网络。CLAW通过在整个网络上应用注意机制扩展了VCL,该机制允许架构适应过程的自动化,在每个任务后指定参数是否固定。UCB为每个权重定义了不确定性,以控制贝叶斯神经网络参数的变化,确定哪些是应该保持固定或改变的权重。他们通过使用修剪策略和每个任务的二进制mask进一步扩展他们的方法,以保留以前任务的表现。这些方法通常只考虑对任务增量学习的评估。BGD以封闭形式更新后验,不需要任务-ID。

Pseudo-Rehearsal Methods

为了避免存储示例和示例排练中固有的隐私问题,一些方法学习从以前的任务中生成示例。DGR使用一个无条件的GAN生成这些合成样本。需要一个辅助的分类器来给每个生成的样本分配GT。MeRGAN中提出了一个改进版本,其中使用了标签条件的GAN和重放对齐。DGM结合了条件GAN和使用神经屏蔽的突触可塑性的优点。引入了一个动态网络扩展机制,以确保足够的模型容量。Lifelong GAN将没有灾难性遗忘的图像生成从标签条件的GAN扩展到图像条件的GAN。作为示范排练的替代方法,一些方法进行特征重放,这需要一个固定的骨干网络来提供良好的表征。

Incremental Learning beyond Image Classification

Shmelkov等人建议逐步学习目标检测器。他们使用Fast-RCNN作为网络,并提议对边界盒回归和分类输出进行蒸馏损失。此外,他们选择提炼背景分数最低的区域建议,从而过滤掉大多数背景建议。Hao等人用知识蒸馏法扩展了Faster-RCNN。同样,Michieli等人提出在输出对数和中间特征上都进行蒸馏,以实现增量语义分割。最近,Cermelli等人通过重新审视基于蒸馏的方法和传统的交叉熵损失为背景建模。具体来说,以前的类被看作是当前任务的背景,而当前的类被看作是蒸馏的背景。增量语义分割也已被应用于遥感和医疗数据。

灾难性遗忘主要在前馈神经网络中被研究。直到最近,人们才研究了灾难性遗忘对递归LSTM网络的影响。在这项工作中,他们观察到灾难性遗忘在递归网络中甚至比前馈网络更明显。这是因为递归网络会放大权值的微小变化。为了解决灾难性遗忘的问题,[91]中提出了RNN的扩展层技术。在[93]中,Net2Net技术与梯度外显记忆相结合。此外,他们提出了一个用于训练和评估学习顺序问题的模型的任务基准。最后,在[94]中研究了防止对字幕任务的遗忘。

介绍EWC的论文也考虑了训练深度强化学习(DRL)代理在其生命周期内玩多个Atari游戏。强化学习是深度学习的一个应用领域,其中任务规范通常隐含在待优化的奖励函数的定义中,因此是实验室实践往往不能完全反映真实世界的另一个例子,因为代理的目标必须随着周围环境的变化而发展。增量任务的获得在强化学习界有着悠久的传统,最近的经验和重放持续学习(CLEAR)方法将可塑性的政策性学习与来自重放经验的非政策性学习相结合,以鼓励对过去获得的任务的稳定性。

V. Experiment Setup

在本章中,我们解释了实验设置以及我们如何评估这些方法。我们还介绍了基线和用于收集第六章中的结果的实验场景。关于这些方法的实现的更多细节在附录A中描述。

A. Code Framework

为了在不同的方法之间进行公平的比较,我们实现了一个通用的、可扩展的框架。数据集被分割成相同的块,数据在每个任务开始时以相同的顺序排队。所有与随机性相关的库调用都是同步的,并设置为相同的种子,这样所有方法的初始条件都是相同的。在训练期间,以前任务的数据(不包括范例记忆)是不可用的,因此需要在一个任务的训练环节完成之前选择任何基于稳定性-可塑性的权衡(见E节)。

当前版本的代码包括几个基线和以下方法的实现:EWC, MAS, PathInt, RWalk, LwM, DMC, GD, LwF, iCaRL, EEIL, BiC, LUCIR和IL2M。该框架包括用范例的方法和大多数无范例的方法。该框架有助于将这些方法用于各种网络结构,并允许运行我们在本文中进行的各种实验方案。因此,我们的框架有助于扩大现有方法的可用性和可比性,这将促进未来的研究和类增量学习方法的比较。

B. Datasets

我们在九个不同的数据集上研究了类增量学习方法对图像分类的影响,这些数据集的统计数据在附录A中进行了总结。首先,我们在CIFAR-100数据集上比较了第三章所述的三大类方法。接下来,我们使用几个细粒度的分类数据集。Oxford Flowers、MIT Indoor Scenes、CUB-200-2011 Birds、Stanford Cars、FGVC Aircraft和Stanford Actions。这些都提供了更高的分辨率,并允许研究作为不同任务时对更大的领域转移的影响。为了研究对较小领域转移的影响,我们使用VGGFace2数据集。由于原始数据集在我们的设置中没有标准的分割,我们保留了有最多样本的1000个类,并按照[25]的设置分割数据。这意味着这个数据集并不完全平衡,但至少所有使用的类都有足够大的样本池。最后,ImageNet数据集被用来作为一个更现实的大规模场景。它由1,000个不同的对象类别组成,每个类别的样本数量不同。由于这个数据集需要时间和大量的资源,我们也使用了缩小的ImageNet-Subset,它包含了ImageNet中的前100个类。

为了应用耐心学习率计划和超参数选择框架,对于这些数据集,我们从训练中额外分配了10%的类平衡分割到验证集。在花和飞机的案例中,我们融合了正式的训练和验证分割,然后随机提取一个类平衡的10%的验证分割。

C. Metrics

在增量学习中, a t , k ∈ [ 0 , 1 ] a_{t,k} \in [0, 1] at,k[0,1]表示学习任务 t ( k ≤ t ) t(k \leq t) t(kt)后任务 k k k的准确性,它提供了关于增量过程的精确信息。为了比较整个学习过程,在任务 t t t时的平均精度被定义为 A t = 1 t ∑ i = 1 t a t , i A_{t}=\frac{1}{t} \sum_{i=1}^{t} a_{t, i} At=t1i=1tat,i,这一度量可以使用一个单一的值来比较不同方法的性能。当任务有不同数量的类时,使用类频率加权版本。

也有人提出了关注增量学习的几个方面的额外指标,如遗忘和不妥协。遗忘估计模型对以前任务的遗忘程度。另一个衡量标准,不妥协性量化了一个模型学习新任务的能力。两者都可以被认为是有助于理解稳定性-可塑性困境的互补性措施。这些措施最初是为任务增量学习提出的。然而,人们发现它们在类增量学习中的使用并不同样有用。当增加新的任务时,以前的任务的性能会下降,因为学习者必须执行更复杂的任务,在所有看到的类中对数据进行分类。这种影响将不正确地促进遗忘测量的进行。因此,在这项调查中,我们使用平均准确度作为主要指标。

所有报告的CIFAR-100结果是10次运行的平均值,而领域转移和不同架构的结果是5次运行的平均值。每次运行使用不同的随机种子,但这些种子在不同的方法中是固定的,因此比较是在相同的种子集产生的相同的分片上进行的。

D. Baselines

只用交叉熵损失的训练是大多数增量学习工作中常见的默认Finetuning(FT)基线。这在不使用以前任务的任何数据或知识的情况下逐步学习每个任务,并经常被用来说明灾难性遗忘的严重性。然而,当转移到一个评估所有以前和新的类的增量学习场景时,可以考虑其他微调变体。我们可以不更新与以前的类的输出相对应的权重(FT+),这就避免了由于没有这些类的样本而导致的缓慢遗忘。从表1中可以看出,这种简单的修改对基线性能有影响。由于以前的类不会被看到,冻结与它们相关的权重可以避免只基于新数据的偏颇修改。此外,在所提出的方案中,方法通常利用一个范例性的存储器,这有助于提高整体性能,并避免通过重放以前看到的类而造成灾难性的遗忘。因此,作为一个额外的基线,我们也考虑用与基于范例的方法相同的范例存储器来扩展FT(FT-E)。这样做的结果很明显比其他FT基线更有利,并使基线与使用相同内存的方法更具可比性。

在冻结(FZ)的情况下,基线也很简单:我们在学习完第一个任务后冻结所有的层,除了最后一层(对应于分类层或分类头)。与FT类似,我们也可以做一个简单的修改,即不更新直接负责前几类输出的权重(FZ+)。这就把冻结的范围扩大到了我们知道不会从以前的类样本中获得梯度的那组特定权重。从表一中可以看出,这导致了一个更强大的基线。然而,如果我们增加范例(FZ-E),性能就会下降。我们还观察到,当从一个更大或更多样化的第一个任务开始时,冻结可以实现更好的性能,因为在冻结之前学到的表征是更鲁棒的。

最后,我们还将所有看到的数据的联合训练作为一个上界(Joint)。为了使这一基线在所有学习的任务中具有可比性,我们进行增量联合训练,在每个任务中使用所有看到的数据,从为前一个任务学习的模型开始。这个基线为我们提供了一个所有学习任务的上限参考。

E. Hyperparameter Selection

为了对增量方法进行公平的比较,需要解决非增量学习评价的两个主要问题。第一个问题是,在学习了任务序列之后,为这些任务选择最佳的超参数并不是一个现实的场景,因为来自未来任务的信息被使用。在增量学习环境下,更好的比较是在学习任务的过程中,利用每个任务的信息寻找最佳超参数。第二,它使比较非常具体的场景,特别是具体的任务序列的结束。它对其余任务的结果提供了一个不太有力的评估,这意味着其他任务序列的长度没有被考虑在内。我们认为,对增量方法的更广泛的评估应该包括所有任务的结果,就像每个任务都是超参数选择的最后一项任务一样。

为了提供这种更鲁棒的评估,我们使用了[9]中提出的连续超参数框架。这个框架假设在每个任务中,只有该任务的数据是可用的,就像在真实场景中那样。对于每个任务,最大塑性搜索阶段与微调一起使用,稳定衰减阶段与相应的方法一起使用。这样就可以先建立一个参考性能,然后再找到最佳的稳定性-可塑性权衡。与稳定性-遗忘性二元性没有直接对应关系的超参数被设置为每个方法的推荐值。这些参数的清单以及数值可以在附录A中找到。

F. Network Architectures

正如[106]所建议的,ResNet-32和ResNet-18通常分别用于CIFAR-100和具有较大分辨率的数据集(输入尺寸为224×224×3)。因此,我们在大多数实验中使用这些从头开始训练的架构,但我们也在第六章F节和附录B-E中包括了对不同架构的分析。

G. Experimental Scenarios

为了使下面的结果部分更容易阅读,我们在这里定义几个实验场景。我们用 ( A / B ) (A/B) (A/B)来表示一个在第一个任务上有A类的B个任务的数据集。例如,CIFAR-100(10/10)实验是指将数据集分成10个任务,第一个任务有10个类。这相当于在任务和类之间进行平均分配,使总数量达到100个总类。另一个设置是CIFAR-100(50/11),这意味着第一个任务有50个类,其余50个类被分成10个任务,每个任务有5个类。其中,这是为评估不同方法及其在较简单场景下的特点而提出的两个主要设置,然后再进入更大、更现实的场景。在我们的评估中,我们不考虑一个任务只由一个类组成的情况。这是因为有几种方法不能直接应用于这种情况,主要是因为它们只在最后一个任务上训练交叉熵损失(例如BiC、DMC)。添加多类的任务是类增量学习文献中考虑的最常见的情景。

VI. Experiments Results

在这一节中,我们从增量学习的许多方面对大量的增量学习方法进行了评估,这些方法是在各种各样的数据集上进行的。

A. On Regularization Methods

大多数正则化方法都是为任务增量学习设置而提出的,其中任务ID在推理时是已知的。由于正则化被应用于权重或表示,它们可以很容易地扩展到类增量学习设置,而不需要做太多或任何修改。这使得问题更具挑战性,几个较新的正则化方法已经显示了类增量学习的结果。与第V-D节中的基线类似,当不使用范例时,方法可以冻结与以前的类相关的最后一层的权重,以提高性能,这是基于在训练期间只使用新类的数据的假设。这有助于解决来自所学类的权重消失的问题和任务时间偏差,特别是在使用权重衰减时。

在表二中,我们对基于正则化的方法进行了比较,包括任务增量学习和类增量学习。三种应用数据正则化的方法(LwF、DMC、LwM)和三种权重正则化方法(EWC、PathInt、MAS)在CIFAR-100(10/10)上进行了比较。十个任务是按顺序学习的,每种方法和设置都显示了第二、第五和最后一个任务的平均准确性,以说明不同的序列长度。我们首先比较了没有使用范例的正则化方法。结果清楚地表明,由于缺乏任务ID,性能明显下降,特别是在5和10个任务之后。LwF获得了比基于权重的正则化方法更好的结果,这可能解释了为什么蒸馏法一直是大多数排练方法的主流方法。

我们还用范例来扩展正则化方法,看看它对它们的性能有什么影响。请注意,除了RWalk,这些方法最初是在没有范例的情况下提出的。在表二中,我们包括了固定内存为2000个范例的结果,以及每类20个范例的增长内存。当使用固定的样本内存时,所有的方法在每次任务后都会有改进。然而,对于不断增长的内存来说,并非在所有情况下都是如此。与固定内存相比,学习第一个任务时可用的样本数量减少,对结果有一定影响。在这种情况下,LwF优于EWC、PathInt和MAS,甚至在固定内存的情况下比RWalk有更好的表现。请注意,没有范例的RWalk与其他基于权重的正则化方法相比,并没有表现出太大的改进,但是当使用固定内存时,这种情况就会改变。本实验最有趣的结果之一是,LwM在所有情况下与范例相结合时获得了第二好的结果,尽管该方法最初并没有被提出来与范例相结合。此外,FT-E在这种情况下表现最好,排在LwF之前,这一点在[25]中也注意到了。需要注意的是,在接下来的一些实验中,我们发现权重正则化和范例实际上可以达到良好的效果。

最后,DMC使用了一个基于辅助数据集的大内存(来自ImageNet-32的300个类),我们在使用上述额外内存的同时提供任务增量学习和类增量学习的结果,并且不存储所学类的范例。该方法以牺牲一些性能为代价提供了保护隐私的特性。然而,我们发现在这些实验中,通过从额外的数据集中提炼获得的收益是相当小的。

鉴于这些结果,在下面的实验中,我们将主要与表现最好的正则化方法,即LwF、LwM和EWC进行比较。

B. On Bias-Correction

从图3中可以看出,存在着对近期任务的明显偏见。在这里,我们评估了类增量学习方法在解决任务-时间偏差方面的成功。为了更好地进行可视化,我们使用CIFAR-100(20/5)与ResNet-32从头开始训练,并固定记忆2000个范例。在文中,我们还将在括号中给出我们考虑的所有方法在最后一项任务后的平均准确率。

我们在图3和图6中展示了不同偏差纠正方法的任务和类别混淆矩阵。FT-E基线尽管由于使用了排练策略而提高了性能(40.9),但仍然有明显的任务–时间偏差。iCaRL显然得益于使用NME分类器,消除了大部分任务–时间偏差,尽管代价是性能比其他方法略差(43.5)。EEIL在训练新任务的过程中忽略了任务-时间偏差,然而在每个训练环节结束时,它只根据示例进行平衡训练。这种方法获得了很好的性能(47.6),因为平衡训练校准了所有来自以前类别的输出,从而消除了很大一部分任务-时间偏差。BiC在避免偏差方面做得非常好,同时保持了良好的性能(45.7)。很明显,较新的任务的任务间分类误差较小。然而,似乎用于学习 α \alpha α β \beta β参数的小样本库导致了相反的效果,而且BiC似乎对以前的任务进行了过度补偿。LUCIR显示了一个更渐进的任务-时间偏差,同时保持了良好的性能(47.3)。LUCIR被证明在有较大的第一个任务和一些较小的任务时效果更好,这可能与实验场景的变化有关。在这里使用的更具挑战性的设置中,他们的偏差校正难以获得良好的结果。最后,IL2M在改进iCaRL(45.6)的同时,明显克服了任务频率偏差。类混淆矩阵看起来与iCaRL相似或更好,但任务混淆矩阵似乎指向了更多的任务间错误分类。

这些结果表明,两种性能较好的方法(EEIL、LUCIR)仍然受到任务时间偏差的影响,而对其有较好解决方案的方法(iCaRL、BiC、IL2M)仍然有改进性能的余地。这就为未来的工作留下了空间,以创造新的方法,既能有更好的整体性能,又能同时解决偏倚校正问题。

C. On Exemplar Usage

在这里,我们研究了与范例有关的不同特征的影响。要存储的范例的数量受到可用内存的类型和数量的限制,而范例是在每次训练结束时按照抽样策略选择的。

On Memory Size

我们首先分析了当我们扩大范例内存时,每类的典范数量是如何影响性能的。在图7中,我们比较了几种排练方法,在一个不断增长的内存中,每一类有不同数量的范例。正如预期的那样,在几乎所有的情况下,性能都会随着更多示例的增加而增加。LUCIR和iCaRL的表现总是等于或优于FT+和FZ+。当每类使用少数样本时,最后一层的权重可以被来自新类的大梯度所修改,而来自以前的梯度的可变性非常小甚至没有。我们发现,在FT+中使用的最后一层权重的冻结提供了比只有几个样本时更大的优势(见EEIL、BiC和IL2M的少于五个样本的结果)。

与获得的性能增益相比,在每类20个样本之后,增加更多的样本变得更加昂贵。举例来说,在BiC上将每类的存储量从10个扩展到20个样本,可以获得6.2的平均精度。将内存从20个扩展到40个可以得到4.8分,但代价是内存大小增加一倍。对于其他的方法,这些收益是相似的或者更差。尽管从每类较少的示例开始,iCaRL有一个轻微的斜率,这使得扩大内存的成本不太有利。LUCIR以类似的曲线紧随其后,两者似乎都离联合训练(上限)更远,这可能是由于分类层的定义方式不同(分别是NME和余弦归一化)。最后,BiC、IL2M和EEIL在使用三分之一的数据作为内存(每类最多500个样本,选择160个)时,相当接近联合训练。为了保持一个现实的内存预算,并考虑到增加所述内存的性能收益较低,我们将增长的内存固定为每类使用20个样本。

On Sampling Strategies

正如III-B节所介绍的,对于排练方法,有不同的策略来选择要保留的范例。在表3中,我们比较了FT-E基线、两种最常见的基于正则化的方法(LwF-E、EWC-E)以及两种最新的偏差校正方法(EEIL、BiC)。我们使用III-B节中介绍的四种不同的抽样策略:随机、群集(特征的平均值)、基于熵和基于平面距离。我们还增加了后两者的变体,即选择离任务边界最远的样本来观察选择最不容易混淆的样本的效果。我们把这些表示为inv-entropy和inv-distance。这些方法和策略在我们提出的两个主要场景下进行了评估。CIFAR-100(10/10)和(50/11)–第二种情况见附录B-C。

结果显示,除了FT-E倾向于随机外,所有方法都明显倾向于群集采样策略。在某些情况下,第二好的策略是随机策略,而且一般来说接近于群集策略。在两种情况下,在5个和10个任务后进行评估时,这两种策略都明显优于其他策略。当只在(10/10)情景下的两个任务后进行评估时,它们之间的差距要小得多,这可能是由于此时有大量的范例(2000个)。值得注意的是,对于较短的任务序列,基于熵和距离的表现与所提出的逆向版本相似。然而,对于较大的任务序列,逆向版本的表现更好。这可能是由于当每个类别的样本数量变少时,离边界更远的样本(和离类别中心更近的样本)变得更加相关。

On Different Starting Scenarios

我们探索了两种在起始任务中具有不同数量的类的情况。第一种情况是在CIFAR-100(10/10)上比较方法,类在所有任务中平均分配。对于第二种情况,我们在CIFAR-100(50/11)上比较相同的方法,这类似于在学习随后的10个小任务之前,将第一个任务作为一个预训练的起点,有更多的类和更丰富的特征表示。该方案以固定内存(总共2000个范例)进行评估,以群集为采样策略(附录B-A中提供了增长方案的结果)。DMC和GD使用一个外部数据集(缩小的ImageNet-32),该数据集比固定内存大得多。除DMC外,所有其他最初没有提出使用范例的方法都被改编为使用范例,并显示出比其原始版本更好的整体性能。

在图8(左)中,GD、BiC、EEIL和IL2M在学习了10个任务后取得了最佳效果。其次是iCaRL、LwM-E,然后是LUCIR。一些方法在任务1上有不同的起点,因为它们没有与其他方法相同的初始条件(例如,LUCIR使用余弦线性层,而BiC在训练期间使用较少的数据,因为它储存了一些用于纠偏参数训练)。很明显,解决任务-时间偏差的方法总体上比其他方法有更好的表现。此外,正如[25]已经指出的那样,FT-E实现了与该系列最低性能相似的竞争性性能。

图8(右)显示,一般来说,当从更多的类开始时,所有的方法都有改善,可能是因为锚定在第一个任务上已经产生了更多的特征。这在FZ-E的情况下尤其明显。结果表明,在进行预训练模型或非常强大的第一个任务的实验时,与这个基线进行比较的重要性。LUCIR和EWC-E在这种情况下似乎也表现得更好。值得注意的是,GD在这种情况下的表现并不理想,因为从更多的类和数据开始,额外的未标记的数据的优势就会略微消失。

D. On Domain Shift Effects

到目前为止,实验都是在一个输入规模较小、来自类似分布的各种类别的数据集上进行的。在这个实验中,我们研究了使用不同任务的效果,这些任务之间有不同程度的领域偏移,其图像也有较高的分辨率。

Smaller Domain Shift

我们首先在不同的类和任务之间进行非常小的领域转移实验,就像VGGFace2的情况一样。我们将1,000个类平均分成25个40个类的任务,在一个固定的内存中存储5,000个样本,从头开始训练ResNet-18。在图9中,我们看到LUCIR、BiC和IL2M在所有方法中表现最好。特别是,LUCIR在25个任务后取得了73.0的平均准确率,与之前在CIFAR-100上的实验相比,这个准确率相对较高,这表明这个方法可能更适用于较小的领域转移。令人惊讶的是,FT-E的表现仅比LUCIR低4.2分,并且超过了除EWC-E以外的所有其他方法,EWC-E在任务之间的小领域转移中也表现良好。EEIL在前13个任务中表现出有竞争力的性能,但在其余任务中开始下降。另一方面,iCaRL在早期任务中的性能下降较多,之后的性能保持得很好,最后的结果与EEIL和LwM-E相似。在基于正则化的方法中,EWC-E优于LwF-E和LwM-E。当从较大的第一个任务开始时,FZ+有更好的表现(由于更鲁棒的特征表示),我们认为这将转化为在任务和类别之间有小的领域转移时的良好表现。然而,最初的冻结表征没有足够的鉴别力来概括到新的类别。

Larger Domain Shift

我们是第一个比较类增量学习方法从各种数据集中逐步学习类的方法。 因此,任务有很大的领域转移和不同数量的类。我们使用六个细粒度的数据集(花、场景、鸟、汽车、飞机和行为),在ResNet-18上从头开始依次学习,每个类有5个示例的成长记忆。各个任务的类的数量不同,但每个任务里面的类都是密切相关的。在图10中,我们看到大多数方法都有类似的性能,与以前的实验很不一样。值得注意的是,与其他方法相比,纠偏方法没有明显的优势。看来,当任务之间的领域转移很大时,任务间的混淆成为灾难性遗忘的主要原因。与其他情况相比,解决任务-时间偏差提供的性能优势较低,而且只改善了相应任务的输出。源于大领域转移的大量权重和激活漂移引起的遗忘似乎占主导地位。没有一种方法明显优于FT-E基线的事实表明,具有大领域转移的场景,即由任务间混淆引起的灾难性遗忘,仍然是一个重要的研究方向,因为大多数提出的方法集中在权重漂移(EWC-E,MAS-E),激活漂移(LwF-E,LwM-E,iCaRL,EEIL,BiC,LUCIR)或任务-时间偏差(iCaRL,BiC,LUCIR,IL2M)。

我们在图10中看到的另一个有趣的效果是学习Action时的行为。其他的数据集都非常清楚地关注颜色和形状特征来区分它们的类别。然而,对于"Action"来说,上下文对于识别人类在图像中描绘的动作是非常重要的。场景数据集的一些特征可以帮助识别室内或室外的动作,但总的来说,这个数据集与其他数据集的关系较小。而且我们看到,在学习这项任务时,联合训练已经降低了一点平均准确率,大多数方法也是如此。只有EWC-E和MASE在学习该任务时保持或提高了准确性,这就提出了一个问题:基于权重的正则化方法在这些情况下是否有优势?

E. On “Interspersed” Domains

我们提出了另一个在类增量学习中没有探讨的方案:重新审视所学的分布来学习新的类。我们建议学习四个细粒度的数据集,分成四个任务,每个任务有十个类,总共有16个任务。一个组由四个任务组成,每个数据集的一个任务按以下顺序排列。花,鸟,动作,飞机。实验由四组重复组成,其中每组包含不同的类(共160个)。这使我们能够分析当类似的任务在学习不同的任务后重新出现时,类-IL方法的表现如何。我们把这种情况称为"穿插"领域,因为每个领域的类都分布在任务中。

在整个序列中对第一组的遗忘结果见图11。LUCIR在序列开始时和第二组学习后,在第一项任务上遭受了相当大的损失,从未恢复过该任务的任何性能。然而,LUCIR对序列中的其余任务显示出极少的遗忘。这似乎与LUCIR倾向于有一个更大的、具有更多特征表征的第一个任务有关,这也是在早期实验中观察到的。对于其余的方法,第一个任务有很大的变化,总体上呈下降趋势。BiC在学习完其他每个任务后都有一个最初的下降,但能够防止进一步的遗忘,尽管在第一个飞机任务上有一些变化。LwF-E和EEIL有一个更循环的遗忘和恢复的模式。当正在学习的任务与当前的任务属于同一数据集时,遗忘更加明显,而当学习不太相似的任务时,似乎会稍微恢复。最后,IL2M的遗忘显示出很大的变化,这可能与缺乏保持新表征更接近以前表征的蒸馏损失有关。

F. On Network Architectures

我们在图12中比较了四种最具竞争力的方法在一系列不同的网络结构上的表现。具体来说,我们使用AlexNet、ResNet-18、VGG-11、GoogleNet和MobileNet。一个有趣的观察是,对于不同的网络,这些方法的性能排名会完全改变。例如,在不使用跳过连接的架构中(AlexNet、VGG-11),iCaRL的表现最好。另一方面,BiC在没有跳过连接的情况下表现较差,但在有跳过连接的架构(ResNet-18、MobileNet和GoogleNet)中表现最佳。与其他方法相比,IL2M的表现更加稳定,既没有最好也没有最差。没有跳过连接的网络似乎可以减少iCaRL和IL2M的遗忘。

在所有带有BiC的网络中,ResNet-18获得了最好的结果。请注意,在大多数文献中,ResNet-18被用作该场景和类似场景的默认网络。然而,如上所示,似乎各种方法都能从架构中获益。另一个有趣的观察是,与其他网络相比,参数/操作数量最少、可以在容量有限的设备上运行的MobileNet的结果非常有竞争力。这些结果表明,现有的IL方法可以应用于不同的架构,其结果与文献中提出的方案相当。

G. On Large-Scale Scenarios

最后,我们在ImageNet(40/25)上使用ResNet-18对不同的方法进行了比较,每类有20个示例的增长内存。图13显示,BiC和iCaRL在25个任务后分别取得了32.4%和30.2%的平均准确率,表现最好。令人惊讶的是,EWC-E和FT-E在这种环境下的表现超过了一些方法,如IL2M和LUCIR。请注意,在其他设置中,IL2M和LUCIR往往比EWC-E和FT-E表现更好。与之前的表现相比,LwF-E和LwM-E获得的结果最差。我们注意到,与其他方法相比,BiC、iCaRL、IL2M和LUCIR在前四个任务中避免了较大的初始性能下降,并且除了LUCIR之外,继续学习的性能没有重大下降。在其余的方法中,EWC-E、FT-E和EEIL似乎在最初的下降后趋于稳定,并且随着新任务的加入,显示出较少的遗忘。RWalk、LwFE和LwM-E在任务四之后继续有较大的性能下降,只有RWalk略有恢复。在这种有更多类和更多变数的情况下,能够轻松处理早期任务的方法在之后的表现会更好。在序列的后半部分,大多数方法都有相同的稳定行为,因为网络已经从最初的任务中学到了一个稳健的表示。

VII. Emerging Trends in Class-IL

在此,我们讨论一些我们认为将在未来几年内发挥重要作用的类增量学习的最新进展。

Exemplar Learning

最近,出现了一个令人振奋的新方向,即对范例进行参数化并对其进行优化以防止遗忘。这使得可用的内存空间得到更有效的利用。Liu等人提出了记忆学训练,这是一种训练参数化范例的方法。在对当前任务数据进行评估时,对范例进行了优化以防止遗忘。Chaudry等人将这一理论推广到流媒体环境中,在这种环境中,学习范例不需要对每个任务的数据进行多次循环。通过计算更有效的范例来优化可用的存储,预计将在未来几年吸引更多的研究。

Feature Rehearsal

伪预演是存储范例的一个很好的选择。它学习一个单独的网络,生成以前任务的图像。然而,目前最先进的图像生成方法很难真实地生成复杂的图像数据,因此这种方法被应用于简单的数据集,使得在复杂的数据集上得到的结果并不令人满意。为了解决这个问题,一些作品提出了进行特征重放而不是图像重放,相反,在网络的某些隐藏层训练一个生成器来生成特征。通过这种方式,重放也可以应用于复杂的数据集。另一个密切相关的研究方向是基于这样的观察:存储特征范例比存储图像要紧凑得多。从图像重放转向不同变体的特征重放,预计将获得吸引力。

Self- and Unsupervised Incremental Learning

在任何学习系统中,能够从无监督的数据流中逐步学习表征是一个理想的功能。迄今为止,这一方向应用于类增量学习的关注度相对较低。Rao等人提出了一种方法,执行明确的任务分类,并在学到的表征上拟合高斯混合。他们还探索了从一个任务平滑过渡到另一个任务的情景。无监督增量学习仍处于起步阶段,预计未来几年会有更多关于无监督增量学习的研究。此外,利用自监督表征学习的力量,在增量学习的背景下只进行了很少的探索,预计将获得关注。

Beyond Cross-Entropy Loss

最近的一些工作表明,交叉熵损失可能是造成高水平的灾难性遗忘的原因。通过用度量学习损失代替交叉熵损失或使用基于熵的方法,已经报道了较少的遗忘现象。将这些方法与其他类IL类别相结合,如偏差校正和排练,预计将产生高度竞争的方法。

Meta-Learning

元学习的目的是利用解决相关任务时积累的信息来学习新的任务。Riemer等人表明,这种方法可以学习减少未来梯度干扰的参数,并提高基于未来梯度的转移。Javed和White明确地学习了一种用于持续学习的表征,避免了干扰并促进了未来的学习。这些初步的工作显示了元学习在小数据集上的潜力。然而,我们预计这些技术将在未来几年得到进一步发展,并开始在更复杂的数据集上获得结果,比如我们评估中考虑的数据集。

Task-Free Settings

许多实际应用并不能很好地适用于非重叠任务的实验设置。一个更现实的场景是,没有明确的任务边界,而且类的分布逐渐变化。这种情况预计在不久的将来会受到越来越多的关注。在一些早期的依赖任务的持续学习工作中,包括EWC和P&C,都研究了这种设置。向无任务设置的过渡并不直接,因为许多方法都有在任务边界上进行的固有操作:替换旧模型,更新重要性权重等。最近,一些针对类增量学习的工作开始处理这种设置。

VIII. Conclusions

我们对类增量学习进行了广泛的调查。我们沿着三条主线组织了所提出的方法:正则化、排练和偏差校正。此外,我们提供了大量的实验,在这些实验中,我们在增量学习场景中广泛的比较了13种方法。在此,我们简要地列举了这些实验的主要结论:

  • 当比较无范例方法时,LwF获得了最佳结果(见表2)。在其他正则化方法中,与权重正则化(EWC和MAS)相比,数据正则化(LwM)获得的结果更优。无范例方法目前无法与范例排练方法竞争,考虑到它们的操作环境限制较多,我们主张将它们分开比较。
  • 当将LwF与范例相结合时,我们证实了[25]中的结果,增加的正则化并没有改善结果,用范例进行微调的基线方法表现更好(见表2)。然而,使用LwM进行数据正则化确实比基线表现更好。
  • 使用额外的数据将以前的任务中的知识提炼到新的网络中,可以大大改善结果(见第六章C)。
  • 我们发现,在几种情况下,权重正则化明显优于基线LwF-E(见图8和9),这表明增量学习社区选择用LwF(见图5)而不是权重正则化进行数据正则化,应该重新考虑。
  • 对于较大的任务序列来说,群聚是一种比随机更稳健的范例抽样方法,但对于短序列来说,群聚并不比其他方法更好(见表3)。
  • 明确解决任务-时间偏差的方法在类增量学习方面获得了更好的性能(见图8、9、10、13):我们发现BiC在一些实验(特别是在ImageNet上)中获得了最先进的性能。IL2M在大多数数据集上获得了一致的良好表现。另外,iCaRL和EEIL在几个数据集上获得了良好的性能,但在其他数据集上未能超过基线FT-E的性能。像LUCIR这样的方法需要一个良好的起始表示–例如在有较大的第一任务或较小的领域转移的情况下,LUCIR可能是最先进的。
  • 目前的方法主要是在具有小的领域转移的数据集上提出的结果(通常是来自单一数据集的随机类排序)。当考虑到大的领域转移时,没有一个方法的表现明显优于基线FT-E(见图10)。大的域转移情况已经被考虑到任务增量学习中,但我们的结果表明,它们需要新的技术来获得类增量学习设置中的满意结果。
  • 我们是第一个在广泛的网络结构上比较类增量学习方法的,表明目前的类增量学习方法在各种网络上都有效。结果显示,大多数方法对架构很敏感,而且排名会根据使用的网络而变化。很明显,使用带有跳过连接的网络有利于某些方法,而没有跳过连接则有利于其他方法。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值