【论文笔记_知识蒸馏_2022】Class-Incremental Learning by Knowledge Distillation with Adaptive Feature Consolida

请添加图片描述

Summary

我们提出了一种基于深度神经网络的新型类增量学习方法,该方法在有限的内存中不断学习新任务,以存储先前任务的示例。基于知识蒸馏,我们的算法提供了一种原则性方法来保留旧模型的表示,同时有效地适应新任务。所提出的方法估计了表示变化与模型更新导致的损失增加之间的关系。它使用表示最小化了损失增加的上限,该表示利用了主干模型中每个特征图的估计重要性。基于重要性,该模型限制了重要特征的更新以实现稳健性,同时允许更改不太关键的特征以实现灵活性。尽管前面任务中的数据可用性有限,但这种优化策略有效地缓解了臭名昭著的灾难性遗忘问题。实验结果表明,该算法在标准数据集上比现有方法具有显着的准确性提高。提供了代码。

1.介绍

深度神经网络在各种应用中取得了突出的成果,包括计算机视觉[13, 29, 31, 32, 38]、自然语言处理[45, 47]、语音识别[5, 10]、机器人学[25]、生物信息学[6]等。尽管它们在离线学习问题上的表现令人印象深刻,但以在线方式为一连串的任务训练模型仍然具有挑战性,由于内存的限制或隐私问题,在以前的任务中只有有限的例子可用。

虽然微调是一个很好的策略来学习一个给定的旧模型的新任务,但由于灾难性的遗忘问题,它对流式任务并不有效[30];模型在当前的任务上表现良好,而在以前的任务上往往不能归纳。因此,增量学习,即容许无遗忘的在线学习的框架,已被积极研究。为了缓解灾难性的遗忘问题,已经讨论了几个分支的算法。架构方法采用网络扩展方案[27, 41, 49],而不是使用静态模型。排练方法提出了通过存储典范集来总结过去的任务的策略[4, 37],或者通过估计以前任务中的数据分布来生成样本[43]。另一方面,参数正则化方法[3,22,51]防止重要的权重偏离先前学习的模型。知识提炼方法[21,26]着重于在有效适应新任务的同时,最大限度地减少与以前模型表征的分歧。

请添加图片描述
图1. 拟定方法的说明。目前的模型通过从当前任务的数据和以前任务的示范集中取样的小型批次优化任务损失,同时它的目标是根据相应的重要性,以不同的方式最小化每个特征图与以前模型的差异。

我们提出了一种用于类增量学习的知识蒸馏方法,模型通过知识蒸馏来增量学习新的类,但对旧任务中的类的数据的可访问性有限1。现有的基于知识蒸馏的方法只是将新旧模型的表征之间的距离最小化,而没有考虑哪些特征图对保持以前获得的知识是重要的。虽然[35]解决了这个问题,但它仅限于重要性权重的启发式分配。相反,我们估计了模型更新所带来的表征变化是如何影响损失的,并表明通过对知识提炼的特征图进行适当的加权,可以实现损失增加的最小化。简而言之,所提出的方法保持了重要的特征以保证稳健性,同时使不太关键的特征变得灵活以保证适应性。请注意,我们的优化策略旨在最小化预期损失比以前的任务增加的上界,这最终减少了灾难性的遗忘问题。图1说明了拟议方法的主要思路。我们算法的主要贡献和特点总结如下:
1.我们提出了一种简单而有效的知识提炼算法,用于基于知识提炼与特征图加权的类增量学习。
2.我们从理论上表明,所提出的方法使损失增加的上界最小化,而损失增加的上界是通过识别特征图中的分布转移和损失的变化之间的关系得出的。
3.实验结果表明,所提出的技术在各种情况下都以较大的幅度超过了现有的方法。

本文的其余部分组织如下。第2节讨论了类增量学习的相关工作。第3节描述了我们方法的细节,第4节介绍了实验结果。最后,我们在第5节中总结了本文。

2.相关工作

现有的类增量学习方法分为以下四类之一:架构、排练、参数正则化和知识蒸馏方法。本节回顾了每个类别中以前的方法。
2.1架构方法
大多数架构方法动态地调整网络容量以处理一连串进入的任务。渐进式网络[41]在学习一个新任务时增加一个网络组件。连续神经Dirichlet过程混合物[24]估计了新样本及其标签的联合可能性,据此决定是否需要一个额外的网络组件来处理新样本。存在一些与网络增强有关的算法,这些算法通过稀疏正则化自适应地增加活动通道的数量,以数据驱动的方式保持适当的模型大小[1, 49]。尽管这些方法对于处理长序列的任务是有效的,但它们需要创建和存储额外的网络组件,并为推理进行多次前向计算,从而产生额外的计算成本。

2.2排练和假性排练的方法
排练方法保存少量有效代表整个数据集的例子,并利用存储的数据来学习新的任务;这一类的技术通常侧重于排练的样本选择 增量分类器和表征学习(iCaRL)[37]通过逼近训练数据的平均值,以贪婪的方式选择例子,并有一个cardinality约束条件。另外,[4]为整个数据诱导的模型参数空间的可行区域的最佳近似确定了一个示例集。另一方面,伪预演技术估计以前任务的数据分布,并使用生成的样本与新任务的真实数据一起训练新模型,以缓解类不平衡问题。例如,[34]通过采用类条件图像合成网络[33],合成旧任务的假样本以平衡新旧类之间的例子数量。

2.3参数正则化的方法
参数正则化方法根据其重要性鼓励或惩罚单个参数的更新。更具体地说,Elastic Weight Consolidation(EWC)[22]根据Fisher信息矩阵估计每个参数的刚性或灵活性,并采用其与先前任务的相关性进行模型更新。突触智能(SI)[51]也通过估计单个参数沿优化轨迹的路径积分来提供每个参数的权重。另一方面,[3]通过计算网络输出的幅度梯度,以无监督的方式计算重要性。然而,正如在[16,46]中所讨论的,参数正则化方法根据经验呈现出比其他类别的技术相对较低的准确性,并可能作为保持网络输出的一个糟糕的代理[8]。

2.4. 知识蒸馏的方法
知识提炼最初被提出来,通过匹配它们的对数[7]、输出分布[14]、中间激活[39]或注意图[50],将知识从预训练的模型(即教师)转移到目标网络(即学生),从而实现更好的泛化性能。在类增量学习方案中,为旧任务训练的模型通常被认为是教师网络,而学生网络则对应于从教师预训练的权重给出的初始化点开始,用新任务中的额外数据学习的模型。

作为教师的知识,iCaRL[37]采用了以前任务中每个班级的sigmoid输出,而[9,48,52]则采用了带有温度比例的归一化softmax输出。通过再平衡的统一分类器(UCIR)[15]通过最大化教师和学生嵌入的特征之间的余弦相似度来解决遗忘问题。另一方面,Learning without Memorizing(LwM)[11]将旧任务中最高分班级给出的梯度与中间特征图的差值最小化,这是由[42]激发的。Pooled Outputs Distillation (PODNet) [12]最小化集合的中间特征在高度和宽度方向上的差异,而不是进行元素间的比较;这样一个使用知识蒸馏的宽松目标被证明对类增量学习是有效的。

与之前的工作包括密切相关的方法[35]不同,我们的方法估计了每个特征图对知识蒸馏的重要性,并为特征图的自适应加权提供了理论基础。请注意,所提出的具有自适应特征图加权的知识提炼算法可以最大限度地减少模型更新对先前任务的损失。

3.提出的算法

本节介绍了所提出的基于知识蒸馏的方法,该方法缓解了类似增量学习的灾难性遗忘问题。
3.1. 问题的提出
卷积神经网络[13,18]通常包含多个基本构件,每个构件都由卷积、批量归一化[19]和激活函数组成。一个卷积神经网络学习者在增量阶段t,用Mt(·)表示,涉及一个分类器g(·)和L个构建块{fℓ(·); ℓ = 1, 2, . . . , L},其表达方式为:
请添加图片描述
请注意,分类器将最后一个构件给出的嵌入向量h∈Rd映射到一个向量ˆy∈Rnt,其中nt表示第t个任务之前观察到的类的数量。 第ℓ个构件fℓ(·)也将一个输入Z ℓ-1映射到一组特征图Zℓ = {Zℓ,1 , Zℓ,2 , …, Z ℓ,Cℓ}。如前所述,网络M t(·)是由前一阶段的模型参数M t-1(·)初始化的,除了为处理分类器中的新类而引入的额外参数。为便于记述,我们引入两个结构Fℓ(·)和Gℓ(·),将整个模型分成两个子网络,如下所示:
请添加图片描述
在训练Mt时,它优化以下目标函数,以减轻学习新类别时的灾难性遗忘问题:
请添加图片描述
其中Pt-1 data是过去任务的数据分布,直到t-1增量学习阶段,而L(·, ·)是特定任务的损失,例如,在这项工作中的分类损失。然而,众所周知,在学习新类别时简单地优化目标会导致灾难性的遗忘。尽管两个相邻的持续学习模型Mt-1(·)和Mt(·)之间的差异可能很小,但随着旧任务的错误相对于新模型的增加,遗忘的数量会变得更加显著。

为了分析由Mt-1(·)和Mt(·)在第ℓ层分别得到的Zℓ到Z′ℓ的分布变化的影响,我们通过一阶泰勒近似计算由Z′ℓ给出的损失,如下所示:

其中⟨·, ·⟩F是Frobenius内积,即⟨A, B⟩F = tr(A⊤B) 。注意∇Zℓ,cL(Gℓ(Zℓ), y)∈RHℓ×Wℓ是由M t-1(·)中的反向传播给出的。利用公式(4),我们定义由于第l层的第c个通道的分布偏移而导致的损失增加,△L(Z′ ℓ,c),为:
请添加图片描述
我们不解决公式(3)中的优化问题,而是使第t个增量学习阶段的模型更新所产生的旧数据的预期损失增加最小,其结果为:
请添加图片描述
通过标准的随机梯度下降法对公式(6)进行最小化,需要在Mt-1(·)中进行额外的反向传播过程,除非我们为每个例子存储特征图相对于M t-1(·)的梯度,这将大大增加计算成本或内存开销。接下来我们将讨论如何解决这个问题。

请添加图片描述
图2. 通过改变重要性估计的不同样本量,用ResNet-32对CIFAR100进行50个增量阶段的准确度,在三个不同的类序上。图例表示结果的平均值和标准差。

3.2. 实用的目标函数
根据公式(6),每个通道的分布偏移对损失函数的影响程度不同。为了避免存储大量的特征图或执行额外的反向传播程序,我们推导出公式(6)中目标函数的上界为:
请添加图片描述
其中期望值取自Pt-1data。详细推导请参考补充文件。

然后,我们定义一个更实用的目标函数,即公式(6)的上界,如下所示:
请添加图片描述
其中重要性由下式给出:
请添加图片描述
这是在前一阶段用Mt-1(·)进行的蒙特卡洛积分估计出来的,并用于训练M t。注意,我们需要边际成本来存储Itℓ,c,因为它只是一个对应于每个通道的标量值。Itℓ,c的重要性可以被解释为一个权重因素,因为Itℓ,c的值越大,在特征图中的相同扰动所带来的损失就越大。此外,图2显示,较大的样本量可以估计出更可靠的重要性,从而导致更好的泛化性能。

3.3. 更加稳健的目标函数
尽管公式(10)中的目标函数的优化可以有效地保持以前任务中的例子的代表性,但我们通常只有有限的例子,并面临着减少灾难性遗忘的关键挑战。因此,我们也采用当前任务中的数据和以前任务中的数据,这导致了以下优化问题。
请添加图片描述
其中,它与公式(10)的唯一区别是用于计算期望值的分布。请注意,使用当前任务中的例子来保留以前阶段的表征,也是其他知识蒸馏方法的动机[11, 12, 15, 26]。这一策略也得到了以下命题的支持。
命题1…省略

3.4最终损失函数
M t(·)的最终目标是最小化分类损失和差异损失的组合,即:
请添加图片描述
其中λ disc是一个超参数,自适应权重λt被设置为请添加图片描述,如[12, 15]中提出的。对于分类损失Ltcls,我们采用局部相似性分类器(LSC)[12],通过自适应地聚集从多个类嵌入向量得到的余弦相似性,其结果为:
请添加图片描述
其中θk,j是第k类的第j个归一化类嵌入向量,ˆyk是第k类的得分。然后,分类损失Ltcls被定义为标签g(b),即:
请添加图片描述
其中η是一个可学习的比例参数,δ是一个常数,用于鼓励更大的类间分离,B是最小批量大小,[·]+表示ReLU激活函数。另外,差异损失,Ltdisc,由以下公式给出:
请添加图片描述
其中,引入˜Itℓ,c是为了平衡各层的权重,其公式为:
请添加图片描述

请添加图片描述
算法1介绍了训练M t(·)后重要性估计程序的细节。
3.5. 样本集的管理
为了在训练完M t(·)后保持每个类的示例集,我们采用了与其他类增量学习方法一样的最接近平均的示例选择规则[37]。对于推理,我们采用了两种方法;一种是最接近均值的示例分类规则[37],另一种是基于分类器概率的方法,如[12,15]中所讨论的,我们分别称之为NME和CNN。

3.6. 关于计算成本的讨论
与大多数基于知识提炼的方法一样,我们在训练期间进行2次前向传递和1次后向传递。与以前的方法不同,在每个任务的训练阶段结束时,我们通过使用旧的示例和当前任务中的示例进行一对前向和后向的计算来更新重要性,如算法1所示。因此,我们的方法的额外计算只是为了更新重要性,每个任务只发生一次;与每个任务的训练成本相比,它可以忽略不计。

4.实验

本节将我们的算法与以前在标准数据集上的方法进行比较,并对消融研究的实验结果进行全面分析。

5.结论

我们提出了一种简单有效的知识提取方法,即通过自适应特征集成,调整每个特征图的权重,平衡对新数据的适应性和对旧数据的鲁棒性,从而实现类增量学习场景。我们通过推导每个特征的分布差异和损失变化之间的关系,以有原则的方式制定特征的重要性。我们进一步放宽了原有的目标函数,增加了知识抽取,有效降低了计算成本和内存开销。实验结果表明,所提出的方法大大优于现有方法。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月7日 上午11:42
下一篇 2022年5月7日 上午11:53

相关推荐