[论文阅读] Learning Without Forgetting

论文地址:https://link.springer.com/chapter/10.1007/978-3-319-46493-0_37
代码:https://github.com/lizhitwo/LearningWithoutForgetting
发表于:ECCV 16

Abstract

当建立一个统一的视觉系统或逐渐为系统增加新能力时,通常的假设是所有任务的训练数据总是可用的。然而,随着任务数量的增加,对这些数据进行存储和再训练变得不可行。一个新的问题出现了,我们给卷积神经网络(CNN)增加了新的能力,但维持其现有能力的训练数据却不可用。我们提出了"无遗忘学习"方法,该方法只使用新的任务数据来训练网络,同时保留原有的能力。与常用的特征提取和微调技术相比,我们的方法表现良好,与假设原始任务数据不可用情形下的多任务学习表现相似。一个更令人惊讶的观察是,"无遗忘学习"可能会取代微调技术,成为提高新任务性能的标准做法。

Method

本文与iCaRL类似,也是深度学习中类增量学习的早期尝试,方法层面则更为简单。其设计思路可以用原文一张图来简单概括:
在这里插入图片描述
可以发现,本文的LwF和传统的联合训练是非常类似的。区别在于,联合训练需要旧任务的标签,而维护旧标签(并同时训练)的成本是很高的。与之相对的,LwF只需要监督旧任务的响应,具体实现则使用的知识蒸馏的思路,构建蒸馏损失来约束旧任务的响应尽可能不发生大的变化,从而降低知识的遗忘速度: L old  ( y o , y ^ o ) = − H ( y o ′ , y ^ o ′ ) = − ∑ i = 1 l y o ′ ( i ) log ⁡ y ^ o ′ ( i ) \mathcal{L}_{\text {old }}\left(\mathbf{y}_{o}, \hat{\mathbf{y}}_{o}\right)=-H\left(\mathbf{y}_{o}^{\prime}, \hat{\mathbf{y}}_{o}^{\prime}\right)=-\sum_{i=1}^{l} y_{o}^{\prime(i)} \log \hat{y}_{o}^{\prime(i)} Lold (yo,y^o)=H(yo,y^o)=i=1lyo(i)logy^o(i) 后续的另一项经典工作iCaRL在LwF蒸馏损失的基础上,改进了分类器(FC->NN),并引入了示例(exemplar)的概念。

猜你喜欢

转载自blog.csdn.net/qq_40714949/article/details/123689730