【心理学与AI】iCaRL: Incremental Classifier and Representation Learning

增量分类器和表示学习

Sylvestre-Alvise Rebuffi,Alexander Kolesnikov, Georg Sperl, Christoph H. Lampert,2001.


类增量学习:

概念:一个可视化的对象分类系统应该能够逐步地学习新的类,当它们的训练数据变得可用时,我们将这种场景称为类增量学习。

条件:在形式上,我们要求算法具有以下三个属性:

i)它应该是可训练的,一个数据流中不同类的例子在不同的时间发生,

ii)它应该随时为到目前为止观察到的类提供一个有竞争力的多类分类器,

iii)它的计算需求和内存占用应该保持有限,或者至少非常缓慢地增长,相对于目前看到的类的数量而言。

前两个标准表达了类增量学习的本质。第三个标准防止了一些无关紧要的算法。

图1:类增量学习:算法从连续的数据流中不断地学习新的类。在任何时候,学习者都可以对目前观察到的所有类别进行多类分类。

作者就增量学习系统的开发问题,提出了一种新的策略:iCaRL(增量分类器和表示学习)。

它是一种实用的同时学习分类器的策略和在类增量设置中的特征表示,允许以一种class-incremental(分类增量)的方式进行学习:只有少量类的培训数据必须同时出现,并且可以逐步添加新类。

iCaRL的3个组成部分:

i)根据最接近样本均值(nearest-mean-of-exemplars)规则进行分类,

ii)基于放牧(herding)的优先样本选择(prioritized exemplar selection),

iii)运用知识提炼和原型排练(knowledge distillation and prototype rehearsal)进行学习。


iCaRL的主要组件:

\bullet Class-Incremental分类器学习 

iCaRL从类增量形式的数据流中同时学习分类器和特征表示,即样本集X^1 ,X^2...,其中X^y=  \left\{ x_{1}^y,...,x_{n_{y} }^y \right\} ,y\in N

分类:iCaRL依赖集合P1,...,Pt。从数据流中动态选择的示例性图像。确保图像的总数不超过一个固定参数K。算法1描述了用于将图像分类到目前观察到的类集合的样本分类器的平均值。

训练:iCaRL使用增量学习策略一次处理成批的课程。每当新类的数据可用时,iCaRL就调用更新例程(算法2)。

体系结构:在底层,iCaRL利用了卷积神经网络(convolutional neural network, CNN)。我们将该网络解释为一个可训练的特征提取器

接着是一个单一的分类层,其sigmoid输出节点与目前观察到的类相同。

资源使用:理论上iCaRL可以运行无限长的时间。在其运行期间的任何时候,其存储器需求将是特征提取参数的大小、K个示例性图像的存储以及观察到的类的尽可能多的权重向量。

\bullet 最接近平均值示例分类

iCaRL采用近似平均样本分类策略。为了预测新图像x的标签y*,它计算到目前为止观察到的每个类的原型向量\mu _{1} ,...,\mu _{t} ,其中μ_{y}=\frac{1}{|P_{y}| }  \Sigma _{p\in P_{y} }\varphi (p) 是y类所有样本的平均特征向量。它还计算应分类的图像的特征向量,并为类标签分配最相似的原型:

背景:最接近平均值示例分类规则克服了增量学习设置的两个主要问题。最近邻范例均值规则(上式)并没有解耦权向量,不会出现灾难性遗忘。每当特征表示发生变化时,类原型就会自动变化,这使得分类器对特征表示的变化具有很强的鲁棒性。

\bullet 表示学习

每当iCaRL获得数据时,X^s,...,X^t ,表示新课程,s,…,t,它更新了它的特征提取例程和范例集。

算法3列出了逐步改进特征表示的步骤。

首先,iCaRL构造了一个扩充的训练集,由当前可用的训练示例和存储的范例组成。

接下来,针对每个示例计算当前网络,并存储所有以前类的结果网络输出(不是针对新类,因为网络还没有针对这些类进行过培训)。

最后,通过最小化损失函数来更新网络参数,对于每个新图像,该函数鼓励网络为新类输出正确的类指示器(分类损失),对于旧类输出正确的类指示器(分类损失),以重现上一步中存储的分数(蒸馏损失)。

背景:表示学习步骤类似于普通的网络优化:从先前学习的网络权重开始,它最小化了训练集上的损失函数。有两个简单微调的修改,旨在防止或至少减轻灾难性遗忘——扩充训练集、扩充损失函数。

\bullet 范例管理

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

有两个例程负责范例管理:一个是为新类选择范例,另一个是减少以前类的范例集的大小。

算法4描述了范例选择步骤。

选择原型P1,……,Pm并迭代存储,直到满足目标编号m。在迭代的每一步中,都会向范例集中添加一个当前训练集的范例,也就是使所有范例中的平均特征向量最接近所有训练范例中的平均特征向量的范例。

算法5描述了删除示例过程。

为了将范例的数量从任意的m'减少到m,一个人可以丢弃范例Pm+1,…,Pm',只保留范例P1,...,Pm。

背景:范例管理例程的设计有两个目的:最初的范例集应该很好地接近类的均值向量,并且应该能够在算法运行期间的任何时间删除范例而不违反这个属性。

采用data-independent删除策略,以确保满足后一个属性。


实验

作者提出了一个评估增量学习方法的协议,并将iCaRL的分类精度与其他方法进行了比较。随后报告了进一步的实验,通过分离单个成分的影响,揭示了iCaRL的工作机制。

\bullet 基准协议

评估步骤:对于给定的多类分类数据集,类按固定的随机顺序排列。然后,根据可用的训练数据,以类递增的方式对每个方法进行训练。在每批类之后,只考虑那些已经训练过的类,对数据集的测试部分数据评估得到的分类器。如果一个数字是可取的,报告这些精度的平均值,称为平均增量精度。

实验中的两个实例

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

2) ilLSVRC基准:在两种情况下使用ImageNet ILSVRC 2012数据集:仅使用一个100个类的子集,以10个批处理(ilLSVRC-small)或使用全部1000个类,以100个批处理(ilLSVRC-full)。评估度量是数据集val部分的前5位精度。

\bullet 结果

主要实验研究了不同方法在类增量条件下的精度。除iCaRL外还实现并测试了三种可选的类增量方法。

LwF.MC:试图通过使用学习过程中的蒸馏损失来防止灾难性遗忘,就像iCaRL所做的那样,但它没有使用示例集。对于分类,它使用网络输出值本身。这本质上是一种无遗忘学习方法,但应用于多类分类中。

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

finetuning:精细调整学习一个普通的多类网络,而不采取任何措施来防止灾难性遗忘。它也可以被解释为通过微调先前学习的多类分类网络来为新的传入类学习多类分类器。

图2显示了实验结果。

图2:iCIFAR-100和ilLSVRC上的类递增训练的实验结果:报告的是在一定时间点内观察到的所有类的多类精度。在这种情况下,iCaRL的性能明显优于其他方法。在第一批训练后修复数据(fixed repr)表示比基于提取的LwF.MC表现更差。除了ilLSVRC-full。在不防止灾难性遗忘的情况下对网络进行细化(Finetuning),会得到最差的结果。相比之下,同一网络在所有可用数据的训练下,多类准确率达到68.6%。

结果显示,iCaRL的性能明显优于其他方法,而且设置的增量越大性能越好(即可以同时处理的类越少)。

在其他方法中,基于蒸馏的网络训练(LwF.MC)总是次之,除了ilLSVRC-full之外,其中最好在第一批100个类之后修复表示。

Finetuning总是得到最差的结果,这证实了灾难性遗忘确实是课堂增量学习的一个主要问题。

图3进一步分析了不同方法的行为。

图3:iCIFAR-100上不同方法的混淆矩阵(条目被log(1+z)转换以获得更好的可见性)。iCaRL的预测几乎均匀地分布在所有的类中,而LwF.MC的预测几乎均匀地分布在所有的类中,倾向于更频繁地预测最近批次的类。固定表示的分类器对第一批的类有偏倚,而finetuning训练的网络只预测最后一批的类标签。

结果显示,iCaRL的混淆矩阵在所有类中看起来都是同构的,表明iCaRL对它在学习过程中遇到的早期或晚期的类没有固有的偏见。特别是,它不会遭受灾难性的遗忘。

而其他类的混淆矩阵显示出不均匀的模式。

\bullet 微分分析

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

首先,分析了为什么iCaRL在基于普通细化的训练基础上有所改进。

它在三个方面有所不同:通过使用样本均值分类规则,通过在表示学习中使用样本,以及通过使用蒸馏损失。

创建了三个混合设置:

第一个(hybrid 1)以与iCaRL相同的方式学习表示。但是直接使用网络的输出进行分类,而不是样本均值分类器。

第二个(hybrid 2)使用样本进行分类,但没有使用训练过程中的蒸馏损失。

第三种方法(hybrid 3)既不使用蒸馏损失,也不使用样本进行分类,而是在表示学习过程中使用样本。

作为比较,还包括Lw.FMC。再一次,它使用了蒸馏,但是没有任何范例。

表1a将结果总结为增量训练所有步骤的分类准确率的平均值。

结果显示,混合设置大多在iCaRL和LwF.MC之间取得了效果。这表明,事实上iCaRL的所有新组件都对其良好性能作出了重大贡献。

\bullet 第二组实验

第二组实验中,研究了使用样本均值作为分类原型,而不是使用最接近类均值(NCM)规则,在多大程度上损失了准确性。

后者使用未修改的iCaRL来学习表示,但是使用NCM对图像进行分类。在NCM中,使用当前的特征提取器在每次表示更新后重新计算类均值。

表1b的结果显示iCaRL和NCM之间只有微小的差异。确定iCaRL可靠地识别代表性范例。

图4展示了不同内存预算的影响,将iCaRL与表la的hybrid dl分类器和表1b的NCM分类器进行了比较。

结果表明iCaRL的表示学习步骤确实受益于更多的原型。有了足够多的原型(这里至少有1000个),iCaRL的样本均值分类器的性能与NCM分类器相似,而根据网络输出进行筛选是没有竞争力的。


结论

本文介绍了一种同时学习分类器和特征表示的类增量学习策略iCaRL。

iCaRL的三个主要组成部分是:

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

2)一个基于herdingstep的优先样本选择,

3)一个表示学习步骤,使用范例与蒸馏相结合,以避免灾难性遗忘。

在CIFAR-100和ImageNet ILSVRC 2012上的实验表明,iCaRL能够在其他方法很快失败的情况下,在很长一段时间内增量学习。

iCaRL强大的分类效果的主要原因是它使用了示例图像。

尽管取得了可喜的结果,但类别递增分类还远远没有解决。特别是,iCaRL的性能仍然低于系统在批处理设置中(即同时提供所有类的所有训练示例)所实现的性能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容