[论文阅读] IL2M: Class Incremental Learning With Dual Memory

论文地址:https://openaccess.thecvf.com/content_ICCV_2019/html/Belouadah_IL2M_Class_Incremental_Learning_With_Dual_Memory_ICCV_2019_paper.html
代码:https://github.com/EdenBelouadah/class-incremental-learning/tree/master/il2m/
发表于:ICCV 19

Abstract

本文提出了一种类增量学习(IL)方法,它利用微调和双重内存来减少图像识别中灾难性遗忘的负面影响。首先,我们简化了目前基于微调的方法,该方法使用分类和蒸馏损失的组合来补偿过去数据的有限可用性。我们发现,在允许有记忆的情况下,蒸馏项实际上损害了性能。然后,我们修改了通常的类增量学习内存模块。与现有的工作类似,第一个内存存储过去类的示范图像。这里引入了第二个内存,以存储最初学习时获得的过去的类的统计数据。这里的直觉是,当所有的数据都可用时,类是最好的模型,而且它们的初始统计数据在不同的增量状态下是有用的。在推理过程中会出现对新学的类的预测偏差,因为数据集对它们是不平衡的。挑战在于如何使新的和过去的类的预测更具有可比性。为了做到这一点,通过利用两个内存的内容,对过去的类的分数进行纠正。该方法在内存和推理复杂性方面的额外成本可以忽略不计。对三个大型公共数据集的实验表明,所提出的方法比一系列有竞争力的最先进的方法更有效。

Method

本文是一种典型的依赖于示例(exemplar)样本的类增量学习方法。从标题可以看出,本文的核心创意在于多了一个内存。不过,多的那个内存并不和传统的内存一样是存储示范样本用的,而存的是一些别的信息,用于纠正预测偏差。总体流程如下所示:
在这里插入图片描述
在图中, M M M表示各个增量阶段的模型, X X X为训练样本, C C C为预测结果。 K K K为传统的内存,用于储存旧类的示范。可以看到,由于内存容量是固定的,随着新类的不断加入,旧类的样本数量会不断降低,从而加剧类不均衡现象,导致模型更倾向于去预测新类。而为了纠正这个预测偏差,本文引入了个额外的内存 S S S,以维护各类的状态。

现在来看本文的具体方法。首先,对于类别 i i i的原始预测结果 p ( C i ) p(C_i) p(Ci),进行修正如下: p r ( C i ) = { p ( C i ) × μ P ( C i ) μ N ( C i ) × μ ( M N ) μ ( M P ) ,  if pred  =  new  p ( C i ) ,  otherwise  p^{r}\left(C_{i}\right)= \begin{cases}p\left(C_{i}\right) \times \frac{\mu^{P}\left(C_{i}\right)}{\mu^{N}\left(C_{i}\right)} \times \frac{\mu\left(\mathcal{M}_{N}\right)}{\mu\left(\mathcal{M}_{P}\right)}, & \text { if pred }=\text { new } \\ p\left(C_{i}\right), & \text { otherwise }\end{cases} pr(Ci)={ p(Ci)×μN(Ci)μP(Ci)×μ(MP)μ(MN),p(Ci), if pred = new  otherwise  上面这个公式换成人话就是,如果预测结果是旧类,那就不去管;而如果预测到的是新类,由于模型是倾向于预测成新类的,此时犯错概率更大些,因此做一个修正。修正依据则是储存的旧模型的预测倾向,其中 μ P ( C i ) \mu^{P}(C_{i}) μP(Ci) μ N ( C i ) \mu^{N}(C_{i}) μN(Ci)分别为类别 i i i在所有 P P P个旧类上的平均预测概率与所有 N N N个新类上的平均预测概率。显然 μ P ( C i ) \mu^{P}(C_{i}) μP(Ci)是会比 μ N ( C i ) \mu^{N}(C_{i}) μN(Ci)大一些的,因此通过 p ( C i ) × μ P ( C i ) μ N ( C i ) p\left(C_{i}\right) \times \frac{\mu^{P}\left(C_{i}\right)}{\mu^{N}\left(C_{i}\right)} p(Ci)×μN(Ci)μP(Ci)可以进行第一步的修正; μ ( M N ) \mu(\mathcal{M}_{N}) μ(MN) μ ( M P ) \mu(\mathcal{M}_{P}) μ(MP)为旧模型 M P \mathcal{M}_{P} MP与新模型 M C \mathcal{M}_{C} MC的置信程度(所有类的平均预测概率),从而完成了第二步修正。可以看到,为了完成这一修正过程,需要额外维持旧模型的状态(旧的预测偏好),这就是本文所提到的第二个内存。

猜你喜欢

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