iCaRL Incremental Classifier and Representation Learning 翻译

摘要

在通往人工智能的道路上,一个主要的开放问题是逐步学习系统的开发,该系统可以随着时间的推移从数据流中学习越来越多的概念。 在这项工作中,我们引入了一种新的培训策略,iCaRL,它允许以这样一种类增量的方式学习:只有少量类的培训数据必须同时出现,并且可以逐步添加新的类

iCaRL同时学习强分类器和数据表示。 这与早期的工作不同,早期的工作从根本上局限于固定的数据表示,因此与深度学习架构不兼容。 我们通过对CIFAR-100和ImageNet ILSVRC 2012数据的实验表明,iCaRL可以在一段时间内渐进地学习许多类,而其他策略很快就会失败

1. Introduction

自然视觉系统本质上是渐进的:新的视觉信息被不断地吸收,而现有的知识被保存下来。 例如,一个参观动物园的孩子会学到很多新动物,而不会忘记家里的宠物。 相比之下,大多数人工对象识别系统只能在批量设置中进行训练,所有的对象类都是预先知道的,并且可以同时以任意的顺序访问所有类的训练数据。

随着计算机视觉领域向人工智能的方向发展,显然需要更灵活的策略来处理真实世界对象分类情况的大规模和动态特性。至少,虚拟对象分类系统应该能够增量地学习新的类,当为它们训练的数据变得可用时。我们将这种场景称为类增量学习。

在形式上,我们要求算法具有以下三个属性,以满足类增量的条件:

  1. 它应该可以从一个数据流中训练,其中不同类的例子在不同的时间出现
  2. 它应该随时为到目前为止观察到的类提供一个具有竞争力的多类分类器
  3. 相对于目前看到的类的数量,它的计算需求和内存占用应该保持有限,或者至少增长得非常慢。

前两个标准体现了类增量学习的本质。 第三个准则防止了一些简单的算法,比如存储所有的训练示例,以及每当有新的数据可用时就对一个普通的多类分类器进行再训练。

有趣的是,尽管图像分类在过去的几十年中取得了巨大的进步,但目前还没有一个令人满意的类增量学习算法。大多数现有的多类技术都违反了i)或ii),因为它们只能处理固定数量的类,并且/或需要同时提供所有的培训数据。很天真地,我们可以尝试通过从类增量数据流中训练分类器来克服这个问题,例如使用随机梯度下降优化。然而,这将导致分类精度迅速下降,在文献中称为灾难性遗忘或灾难性干扰[22]。现有的少数实现上述属性的技术主要局限于使用固定数据表示的情况。 它们不能扩展到同时学习分类器和特性表示的深层体系结构,因此在分类精度方面不再具有竞争力。 更多相关工作将在第3节中讨论。

在本文中,我们介绍了iCaRL(增量分类器和表示学习),一种实用的同时学习分类器的策略和类增量设置中的特征表示。 在仔细分析现有方法的缺点的基础上,我们引入了三个主要组件,它们组合在一起使iCaRL能够满足上面提出的所有标准。这三个组成部分是

  1. 根据最接近样本均值规则进行分类
  2. 基于聚集的范例选择的优先级
  3. 使用知识蒸馏和prototype rehearsal的表示学习

我们将在第2节中解释这些步骤的细节,然后将它们放到第3节中先前工作的上下文中。在第4节中,我们报告了对CIFAR和ImageNet数据集的实验,这些实验表明iCaRL能够在很长一段时间内逐步学习,而其他方法很快就会失败。最后,在第5节中,我们将讨论剩余的限制和未来的工作。

2. Method

在本节中,我们将描述iCaRL的主要组件,并解释它们的组合如何允许真正的类增量学习。第2.1节解释了底层体系结构,并给出了培训和分类步骤的高级概述。第2.2至2.4节提供了算法细节并解释了设计选择

2.1. Class-Incremental Classifier Learning

iCaRL以类增量的形式(即样本集)从数据流中同时学习分类器和特征表示X1X2X^1\,X^2,在这里所有的集合XyXy={x1y,,xnyy}X^{y}=\left\{x_{1}^{y}, \ldots, x_{n_{y}}^{y}\right\}的所有例子都是属于类y。

Classification

对于分类,iCaRL依赖于集合p1,…,P t,表示它从数据流中动态选择的示例图像。 到目前为止,每个观察到的类都有一个这样的范例集,iCaRL确保范例图像的总数永远不会超过一个固定的参数K。 算法1描述了样本均值分类器,该分类器用于将图像分类为到目前为止观察到的一组类,详细说明请参见第2.2节
iCaRL Incremental Classifier and Representation Learning 翻译

Training

对于培训,iCaRL使用增量学习策略一次处理成批的类。每当新类的数据可用时,iCaRL都会调用一个更新例程(算法2,请参阅第2.3和2.4节)。该例程根据新观察到的额外信息(当前的训练数据)调整iCaRL的内部知识(网络参数和范例)。这也是iCaRL学习新类存在的方式。

iCaRL Incremental Classifier and Representation Learning 翻译

Architecture

在幕后,iCaRL利用了卷积神经网络(CNN)[19] 1。我们将网络解释为一个可训练的特征提取器φ:XRd\varphi : \mathcal{X} \rightarrow \mathbb{R}^{d}然后是一个单一的分类层,其中的sigmoid输出节点与到目前为止观察到的[3]类相同。 所有的特征向量都是l2归一化的,对特征向量的任何操作的结果,例如平均值,也都是重新归一化的,我们没有显式地写出来以避免混乱的符号

我们通过Θ表示网络的参数,分为固定数量的参数特征提取部分和数量可变的权重向量。 我们用w1,…,w t∈R d表示后者,在这里以及接下来的部分中,我们使用约定,t表示到目前为止观察到的类的数量,对于任何类,得到的网络输出都是y{1,,t}y \in\{1, \ldots, t\}

注意,即使可以将这些输出解释为概率,iCaRL也只将网络用于表示学习,而不是实际的分类步骤。

资源使用情况

由于其增量特性,iCaRL不需要关于将发生哪些类和有多少类的先验信息,而且理论上它可以无限长时间地运行。 在运行期间的任何时候,它的内存需求将是特征提取参数的大小、K个示例图像的存储以及与已观察到的类一样多的权重向量。 这些知识允许我们根据应用程序场景分配资源。如果已知类数的上限,就可以根据需要为尽可能多的权重向量预先分配空间,并使用所有剩余的可用内存存储示例。 如果没有上限,那么随着时间的推移,权重向量的数量实际上会增加,并相应地减少范例集的大小。 显然,每个要学习的类至少需要一个示例图像和权重向量,因此最终只能学习有限数量的类,除非允许在算法的运行期间添加更多的资源。 注意,iCaRL可以在不进行再培训的情况下动态处理资源的增加:它不会丢弃任何范例,除非由于内存限制而*这样做。

2.2. Nearest-Mean-of-Exemplars Classification

iCaRL使用最接近样本均值的分类策略。为了预测新图片x的标签y*,它会为到目前为止观察到的每个类计算一个原型向量,μ1,,μt\mu_{1}, \dots, \mu_{t},在这里μy=1PypPyφ(p)\mu_{y}=\frac{1}{\left|P_{y}\right|} \sum_{p \in P_{y}} \varphi(p)是每一个类y的exemplars的平均特征向量。它还计算了需要分类的图像的特征向量,并用最相似的原型分配类标签

y=argminy=1,,tφ(x)μyy^{*}=\underset{y=1, \ldots, t}{\operatorname{argmin}}\left\|\varphi(x)-\mu_{y}\right\|

Background

最接近样本均值分类规则克服了增量学习设置的两个主要问题,通过与多类分类的其他可能性进行比较可以看出这一点。

神经网络通常的分类规则是y=argmaxy=1,,tgy(x)y^{*}=\operatorname{argmax}_{y=1, \ldots, t} g_{y}(x)其中g y (x)是定义在(1)中的网络输出,或者使用softmax输出层。因为argmaxygy(x)=argmaxywyφ(x)\operatorname{argmax}_{y} g_{y}(x)=\operatorname{argmax}_{y} w_{y}^{\top} \varphi(x)网络的预测规则是等价于一个线性分类器的使用与非线性特性映射ϕ和权重向量w 1,……w t。 在class-incremental设置,它是有问题的,权重向量w_y从特征提取常规ϕ是解耦的,只要ϕ发生变化,所有w 1,……w t必须更新,否则,网络输出控制不住地将会改变,这是可以观察到的灾难性的遗忘。 相反,最接近样本均值规则(2)没有解耦权向量。 每当特征表示发生变化时,类prototypes 就会自动变化,这使得分类器对特征表示的变化具有鲁棒性。

基于最接近类均值分类器[24]的思想,提出了一种基于固定特征表示的增量学习方法,并以此为原型选择平均向量。 在类增量设置中,我们不能使用真正的类均值,因为所有的训练数据都必须存储起来,以便在表示更改后重新计算这个量。 相反,我们使用灵活数量的样本的平均值,这些样本以某种方式被选择,以提供一个很好的类均值近似值

注意,因为我们处理的是归一化特征向量,公式2可以被写成y=argmaxyμyφ(x)y^*=\operatorname{argmax}_{y}\mu_{y}^{\top} \varphi(x)

因此,我们也可以将分类步骤解释为使用权重向量进行分类,但是该权重向量不能与数据表示解耦,而是与数据表示保持一致的变化。

2.3. Representation Learning

每当iCaRL获取数据时,Xs,…,Xt, 对于新类, s,…t 更新它的特征提取程序以及范例集.算法3列出了逐步改进特征表示的步骤。 首先,iCaRL构造了一个增强训练集,由当前可用的训练示例和存储的示例组成。 接下来,对每个示例计算当前网络,并存储所有以前类的结果网络输出(不存储新类,因为网络还没有针对这些类进行过培训)。 最后,通过最小化损失函数来更新网络参数,对于每个新图像,该函数鼓励网络为新类输出正确的类指示器(分类损失),对于旧类,输出前一步中存储的分数(蒸馏损失)。
iCaRL Incremental Classifier and Representation Learning 翻译

Background.

表示学习步骤类似于普通的网络finetuning:从以前学习的网络权重开始,它将训练集中的损失函数最小化。 因此,可以使用标准的端到端学习方法,如带小批量的反向传播,也可以使用最近的改进,如dropout[39]、自适应步长选择[14]或批标准化[13],以及潜在的未来改进。

对一般的fine-tuning有两个修改,目的是防止或至少减轻灾难性遗忘。 首先,扩充训练集。 它不仅包含新的培训示例,还包含存储的示例。 这样可以确保至少有一些关于所有以前类的数据分布的信息进入培训过程。 请注意,对于这一步,重要的是将示例存储为图像,而不是存储在随着时间推移会过时的特性表示中。 其次,增加了损失函数。 除了标准分类损失(鼓励改进特征表示,从而能够很好地对新观察到的类进行分类)之外,它还包含蒸馏损失,这确保了在新的学习步骤中不会丢失以前学到的鉴别信息

2.4. Exemplar Management

当iCaRL遇到新的类时,它会调整它的范例集。,当到目前为止已经观察到t类,并且K是可以存储的范例的总数时,iCaRL将为每个类使用m = K/t范例(直到四舍五入)。这样就确保了K个范例的可用内存预算总是被充分使用,但是从来没有超出。

两个步骤负责exemplar的管理: 一个用于为新类选择范例,另一个用于减小以前类的范例集的大小。 算法4描述了范例选择步骤。例如p1,…p m 迭代地选择并存储,直到满足目标编号m。 在迭代的每个步骤中,当前训练集的另一个例子被添加到范例集中,也就是使所有范例的平均特征向量最好地逼近所有训练例子的平均特征向量的那个例子。 因此,范例“集合”实际上是一个优先级列表。 其元素的顺序很重要,列表中较早的示例更为重要。删除示例的过程在算法5中指定。它特别简单:为了将范例的数量从任意m’减少到m,可以丢弃范例p_m+1,…,p_m_0,只保留示例p_1,…,p_m

iCaRL Incremental Classifier and Representation Learning 翻译
iCaRL Incremental Classifier and Representation Learning 翻译

Background.

范例管理例程的设计有两个目标:初始范例集应该很好地逼近类的均值向量,并且应该能够在算法运行期间的任何时候删除范例而不违反这个属性。后一个属性很有挑战性,因为当调用删除过程时,算法不再使用实际的类均值向量。 因此,我们采用了一种独立于数据的删除策略,从最后开始按固定的顺序删除元素,并且我们让范例集构造例程负责确保即使在稍后调用删除过程之后也能满足所需的近似属性。 优先级构造是这个条件的逻辑结果:它确保从第一个样本子集开始的任意样本子集上的平均特征向量是平均向量的良好近似。 在从众创建分布中的表示样本集时,使用了相同的优先级结构。结果还表明,与随机子抽样相比,迭代选择需要较少的样本才能获得较高的近似质量。 相比之下,其他潜在的范例选择方法,如[7,26],是与其他目标一起设计的,并不能保证为任意数量的原型提供良好的近似质量

使用的是按照距离均值的距离,从后往前来删除

总的来说,iCaRL用于范例选择和减少的步骤完全适合增量学习设置:每个类只需要一次选择步骤,当它第一次被观察到并且它的训练数据可用时。 在稍后的时间,只调用缩减步骤,这并不需要访问任何早期的培训数据。

3. Related work

iCaRL建立在早期多次尝试解决类增量学习的基础上。 在本节中,我们描述了最重要的,组织他们一方面与固定数据表示学习技术,另一方面技术也学数据表示,从经典的联结主义时代以及最近的深度学习的方法

两种方法,一种是固定数据表示,一种是数据表示会改变

用固定的数据表示学习。

当数据表示是固定的,类增量学习的主要挑战是设计一个分类器体系结构,它可以在训练过程中随时容纳新类,而不需要访问到目前为止看到的所有训练数据。 这种类型的最简单的过程可以是(k-)最近邻分类器,但是这需要在学习过程中存储所有的训练数据,因此不符合我们定义的类增量过程。

Mensink等人[23]观察到最近类均值(NCM)分类器具有这一特性。 NCM将每个类表示为一个原型向量,该原型向量是到目前为止观察到的该类的所有示例的平均特征向量。 这个向量可以从数据流增量计算,因此不需要存储所有的训练示例。 通过为一个新示例分配类标签来对其进行分类,该类标签的原型与示例的特征向量最相似,而度量标准也可以从数据中学习。 尽管(或因为)它的简单性,NCM已经被证明工作得很好,并且在增量学习设置中比标准参数分类器更健壮[23,24,32]。

NCM的主要缺点是它不能很容易地扩展到非线性数据表示与分类器一起学习的情况,因为这阻止了类均值向量以增量的方式进行计算。 对于iCaRL,我们采用了基于NCM的原型分类思想。 然而,我们使用的原型并不是所有示例的平均特征向量,而是特定选择的子集,这允许我们保持较小的内存占用,并通过不断的计算工作执行所有必要的更新。

不能容易的拓展到非线性数据是啥意思哦。

替代方法满足class-incremental学习标准的第一条到第三条),我们第一节中介绍,只有部分:显示精度的损失可以避免当添加新类现有的线性多分类器,只要可以重新训练分类器从至少少量的数据对所有类。 Chen等[4,5]和Divvala等人的[6]引入了一些系统,这些系统可以自主地从web资源中检索图像并识别它们之间的关系,但它们不会渐进地学习对象分类器。 Royer和Lampert[34]使分类器适应时变的数据流,但是他们的方法不能处理新出现的类,而Pentina等人的[29]表明,按顺序学习多个任务是有益的,但是为了选择所有任务的数据的顺序,必须同时可用。

这里是重新的训练了分类器了,那么就表示,不需要知道当前的任务是属于哪一个任务就可以了。

Li和Wechsler [20], Scheirer等人的[38],以及Bendale和Boult[2]针对的是开放集识别的相关但又截然不同的问题,其中测试示例可能来自于目前所见的训练示例之外的其他类。 Polikar等人[28,30]提出了一种基于集合的方法,它可以处理越来越多的类,但需要所有类重复发生的训练数据。 正如Lampert等人提出的[18],Zero-shot学习可以对以前没有见过的类的例子进行分类,但是它不包含这些类的训练步骤

Representation learning.

最近(深度)神经网络的成功在很大程度上可以归因于它们不仅能够学习分类器,而且能够学习合适的数据表示[3,21,25,37],至少在标准批处理设置中是这样。第一次尝试以增量方式学习数据表示已经可以在经典的神经网络文献中找到,例如[1,8,9,33]。

特别是在20世纪80年代末,McCloskey等人[22]描述了灾难性遗忘的问题,即用新数据训练神经网络会导致它覆盖(从而忘记)它从以前的数据中所学到的东西。然而,这些经典著作主要是在连接主义记忆网络的背景下,而不是分类器,使用的网络以今天的标准来看是小而浅的。一般来说,现有的算法和架构更改都无法防止灾难性遗忘,例如MoeHelgesen等人对经典的[27]进行了调查,Goodfellow等人对现代架构的[10]进行了研究,但在特定的环境中,如Kirkpatrick等人对[15]的研究除外。

然而,早期连接主义工作的一个主要成就是,他们确定了两种主要的策略来解决灾难性遗忘:

1)在保持学习能力的同时,通过冻结部分网络权重来增长网络,

2)通过预演,即不仅用最近的数据,而且用更早的数据不断地刺激网络。

最近关于神经网络增量学习的研究主要是遵循定格增长策略,但是随着时间的推移,需要向网络分配越来越多的资源,因此违反了我们对类增量学习定义的原则iii)。 例如,Xiao等人学习了一个树形结构模型,该模型随着观察到的类的增多而递增。在多任务强化学习的背景下,Rusu等人提出通过水平扩展所有层来增长网络

iCaRL,我们采用彩排的原则:更新模型参数学习的代表,我们不仅使用目前可用的训练数据类,但也从早期的原型类,可不管怎样,因为它们所需的原型——建立分类规则。 此外,iCaRL还使用蒸馏来防止网络中的信息随着时间的推移而过度恶化。 虽然Hinton等人[12]最初提出蒸馏在不同的神经网络之间传输信息,但在iCaRL中,我们将其用于不同时间点之间的单一网络中。Li和Hoiem[21]最近提出了相同的原则,他们以“不忘学习”(Learning without forget, LwF)的名义,增量地训练一个网络来学习多个任务,例如多个对象识别数据集。 类增量多类情况的主要区别在于预测步骤:

多类学习者必须选择一个能够正确预测所观察到的任何类的分类器。

多任务(多数据集)精简器可以使用多个分类器,每个分类器只根据来自其自身数据集的数据进行评估。

这里可以很明显的看出来问题所在了,lwf的是多任务问题,而作者的是多分类问题,多分类问题需要重新训练分类器,但是多任务问题是建立了多个分类器,在测试精度的时候需要具体的知道,当前的任务是属于哪一个任务。才能在对应的分类器上取得结果,否则就会出现问题。但是问题在于,目标检测的分类器的话,同一张图片,可是可以出现不同任务的图片。

4. Experiments

在本节中,我们提出了一种评估增量学习方法的协议,并将iCaRL的分类精度与其他方法进行了比较(第4.1节)。我们还报告了进一步的实验,通过分离单个组件的影响,阐明了iCaRL的工作机制(第4.2节)。

Benchmark protocol

到目前为止,还没有公认的评价类增量学习方法的基准协议。 因此,我们提出了以下评估过程:对于给定的多类分类数据集,类按照固定的随机顺序排列。 然后,在可用的训练数据上以类增量的方式对每个方法进行训练。 在每批类之后,只考虑那些已经经过训练的类,对数据集的测试部分数据评估得到的分类器。 注意,即使测试数据被多次使用,也不会发生过拟合,因为测试结果不会显示给算法。 评价结果为每批分类后的分类精度曲线。 如果一个数字是可取的,我们报告这些精度的平均值,称为平均增量精度。

对于图像分类任务,我们引入了上述协议的两个实例

1)iCIFAR-100基准测试:我们使用CIFAR-100[16]数据,每次训练2、5、10、20或50个批次的所有100个类。评价指标是测试集上的标准多类精度。由于数据集是可管理的大小,我们运行这个基准10次,使用不同的类顺序,报告结果的平均值和标准差。

2)iILSVRC基准:我们在两种情况下使用ImageNet ILSVRC2012[35]数据集:只使用100个类的子集,这些类以10个批处理(iILSVRC-small),或者使用所有1000个类,以100个批处理(iILSVRC-full)。评估度量是数据集val部分的前5名精度。

iCaRL implementation

对于iCIFAR-100,我们依赖于theano包并训练一个32层的ResNet[11],允许iCaRL存储最多K = 2000个示例。每个训练步骤由70个阶段组成。学习率从2.0开始,在49和63个纪元之后除以5(所有纪元的7/10和9/10)。对于iILSVRC,样本的最大数量是K = 20000,我们使用tensorflow framework 3来训练18层ResNet[11],每个类批处理处理60个epoch。学习率从2.0开始,在20、30、40和50个时代之后除以5(所有时代的1/3、1/2、2/3和5/6)。对于所有的方法,我们都使用标准的反向传播来训练网络,最小批量为128,权值衰减参数为0.00001。 注意,学习率可能看起来很大,但是对于我们的目的,它们工作得很好,可能是因为我们在网络层中使用了二进制交叉熵。 对于多类softmax层,可能需要更小的速率。我们的源代码和进一步的数据可在
这里找到

我们的主要实验集研究了不同方法在类递增条件下的分类精度。 除了iCaRL,我们还实现并测试了三种可选的类增量方法。 Finetuning学习的是一个普通的多类网络,没有采取任何措施来防止灾难性遗忘。 它也可以理解为,通过对以前学习的多类分类网络进行调整,为新的传入类学习一个多类分类器。

固定表示还可以学习多类分类网络,但以一种防止灾难性遗忘的方式。它在处理第一批类之后冻结特征表示,在处理相应类之后冻结分类层的权重。对于后续批次的类,只训练新类的权向量。

最后,我们还比较了一个网络分类器,它试图通过使用学习过程中的蒸馏损失来防止灾难性遗忘,就像iCaRL一样,但是它不使用范例集

这本质上是一种不忘学习的方法,但适用于多类分类we,所以用LwF.MC表示。图2显示了结果。 可以看出,iCaRL的性能明显优于其他方法,而且设置的增量越大(即可以同时处理的类越少)。 在其他方法中,基于提取的网络训练(LwF.MC)总是次等的,除了iILSVRC- full,在iILSVRC- full中,最好在第一批100个类之后修复表示。 Finetuning总是得到最差的结果,这证实了灾难性遗忘确实是类渐进学习中的一个主要问题。

iCaRL Incremental Classifier and Representation Learning 翻译

图2:iCIFAR-100和iILSVRC上的类增量训练实验结果:报告了在一定时间点内观察到的所有类的多类精度。 在这个设置中,iCaRL明显优于其他方法。 修正第一批训练后的数据表示比基于蒸馏的LwF.MC性能差, 除了iILSVRC-full。在不防止灾难性遗忘的情况下对网络进行微调(Finetuning),效果最差。 与之相比,同一网络在所有可用数据的训练下,多类精度达到68.6%。

iCaRL Incremental Classifier and Representation Learning 翻译

图3提供了对不同方法行为的进一步了解。 Is显示了iCIFAR-100上的100类分类器在一次训练10个类之后的混淆矩阵(更大的版本可以在附录中找到)。 我们可以看到非常有特色的模式:iCaRL的混淆矩阵在所有类中看起来都是齐次的,无论是对角元素(即正确的预测)还是非对角元素(即错误的获取)。 这表明iCaRL对它在学习过程中早期或晚期遇到的类没有固有的偏见。 特别是,它不会遭受灾难性的遗忘

与此相反,其他类的混淆矩阵显示出非齐次模式:基于蒸馏的训练(LwF.MC)有更多的非零项指向右边的区域,即最近学习的类。 更极端的是finetuning的效果,其中所有预测的类标签都来自于网络使用的最后一批类。 finetuned网络完全忘记了早期类的存在。 固定的表示形式显示了相反的模式:它更喜欢输出它所训练的第一批类的类(用于获得数据表示)。 iILSVRC的混淆矩阵显示了相同的模式,它们可以在附录中找到。

4.2. Differential Analysis

为了进一步了解iCaRL的工作机制,我们在iCIFAR-100上进行了额外的实验,其中我们分离了方法的各个方面。

首先,我们分析了iCaRL相对于基于简单细化的训练的改进之处,具体表现在三个方面:使用样本均值分类规则,在表示学习过程中使用样本,以及使用蒸馏损失。 因此,我们创建了三个混合设置:第一个(hybrid d1)以与iCaRL相同的方式学习表示,但是直接使用网络的输出进行分类,而不是样本均值分类器。 第二个(hybrid d2)使用这些样本进行分类,但没有使用训练过程中的蒸馏损失。 第三种方法(hybrid d3)既不使用蒸馏损失,也不使用样本进行分类,而是在表示学习过程中使用样本。 为了便于比较,我们还包括了LwF。还是MC,它使用蒸馏,但没有任何例子

表1a将结果总结为增量训练所有步骤的分类精度的平均值。 可以看出,混合设置主要实现iCaRL和LwF.MC之间的结果, 这表明iCaRL的所有新组件都对它的良好性能做出了很大的贡献。 特别是,iCaRL与hybrid d1的比较表明,样本均值分类器对于更小的批处理大小(即执行更多的表示更新时)特别有利。 通过比较iCaRL和hybrid d2,我们可以看到,对于非常小的批量,蒸馏甚至会损害分类精度,而不仅仅是使用原型。 对于更大的批量和更少的更新,使用蒸馏损失显然是有利的。 最后,比较混合d3和LwF_MC的结果,可以清楚地看出范例在预防灾难性遗忘方面的有效性

iCaRL Incremental Classifier and Representation Learning 翻译

在第二组实验中,我们研究了使用样本均值作为分类原型而不是使用最接近类均值(NCM)规则会损失多少准确性。 对于后者,我们使用未修改的iCaRL来学习表示,但是我们使用NCM对图像进行分类,在每次表示更新之后,使用当前的特征提取器重新计算类均值。 注意,这个方法需要存储所有的训练数据,因此它不符合类增量方法的条件。 表1b中的结果只显示了iCaRL和NCM之间的微小差异,这证实了iCaRL能够可靠地识别有代表性的范例。

iCaRL Incremental Classifier and Representation Learning 翻译

图4展示了不同内存预算的效果,将iCaRL与表1a的hybrid d1分类器和表1b的NCM分类器进行了比较。 两者都使用与iCaRL相同的数据表示,但在分类规则上有所不同。 所有方法都受益于更大的内存预算,这表明iCaRL的表示学习步骤确实受益于更多的原型。 如果有足够的原型(这里至少有1000个),iCaRL的样本均值分类器的性能类似于NCM分类器,但是根据网络输出进行分类并不具有竞争力。

iCaRL Incremental Classifier and Representation Learning 翻译

5. Conclusion

我们引入了iCaRL,一种同时学习分类器和特征表示的类增量学习策略。 iCaRL的三个主要组成部分是:

1)最接近样本均值分类器,对数据表示的变化具有鲁棒性,同时每个类只需要存储少量样本,

2)基于集合的步骤,用于优先选择范例

3)表示学习步骤,将范例与蒸馏结合使用,以避免灾难性的遗忘。 在CIFAR-100和ImageNet ILSVRC 2012数据上的实验表明,iCaRL能够在很长一段时间内渐进地学习,而其他方法很快就会失败。

iCaRL强大的分类结果的主要原因是它使用了范例图像。 虽然除了网络参数之外,能够依赖于存储的范例是有好处的,但是我们发现在类增量设置中这种效果有多么明显是一个重要的观察。 因此,我们假设其他架构也应该能够从使用网络参数和范例的组合中获益,特别是考虑到成千上万的图像可以用与当前深度网络大小相当的内存需求存储

尽管有很好的结果,但是类增量分类还远远没有解决。 特别是,iCaRL的性能仍然低于系统在批处理设置中进行培训时的性能,即同时提供所有类的所有培训示例。 在未来的工作中,我们计划更详细地分析造成这种情况的原因,以缩小剩余的性能差距。 我们还计划研究分类器不能以原始形式存储任何训练数据的相关场景,例如出于隐私原因。 一个可能的方向是用自动编码器隐式地编码早期任务的特征特征,就像Rannen Triki等人最近提出的[31]。