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

IL2M: Class Incremental Learning With Dual Memory

1.总览

本文还是用于解决类增量学习的,学习过程是普通的微调(区别于用蒸馏损失的方法),区别在于加入了两个记忆:

  • 一个记忆样本(exemplar),用于训练过程微调,容量固定(类越多,每类样本量越小);
  • 一个记忆新类微调后的统计量(statistics),用于预测时修正原始分类输出,(只是几个浮点数,很小)。

由于记忆的加入,类增量学习问题,实际变成了不均衡数据集学习。作者在这里有几个有趣的发现:

  • 在允许记忆样本时,蒸馏损失实际会降低模型性能;
  • 模型预测时,新类的原始输出会明显较大。原因是样本不均衡。

性能在2019年比SOTA更好。

2.相关工作

这里作者把类增量学习的方法分为三类:

1.调整/增加参数以适应新类:

  • Growing a Brain:增宽增深网络
  • Deep Adaptation Networks:每个新类增加13%左右参数量
  • Progressive neural networks:简单粗暴
  • Committee of expert networks:门机制,选择最合适的专家
  • 神经网络参数族,共享大多数参数,并使用连接到网络的小型模块化适配器将其专用于新任务。
  • PackNet:修剪之前任务的冗余参数。但容纳新任务数量有限,推断时间更长,不能同时用于所有训练过的任务。
  • Piggyback combines PackNet:给权重上掩码。增加参数,无法很好地扩展。

2.参数量固定,存储部分旧数据(这里的问题实际和不均衡学习相似):

  • LwF:早期尝试加入知识蒸馏损失,无需旧任务记忆,然而性能比后续有记忆的工作较低
  • iCaRL:最近邻分类器+蒸馏损失+有限记忆。Revisiting distillation and incremental classifier learning,实验探索表明,大部分性能改进来源于记忆。
  • end-to-end IL:记忆+知识蒸馏损失+balanced fine-tuning。相比iCaRL有7百分点改进。
  • Exemplar-supported generative reproduction for class incremental learning:用GAN生成虚假记忆。相比单独使用真实图像,二者组合的性能改进很小。

3.探索初始固定表示作为特征提取器

  • FearNet:长期记忆、短期记忆网络用以表示旧、新类。一个决策机制决定哪个网络用于测试样例。好于iCaRL,然而记忆增长显著。
  • DeeSIL(这个作者跟本文相同...唯一被引):固定表示学习后不变,为新类学习一个浅分类器。比end-to-end IL提高14点。二者都依赖初始学习

3.一些定义

M:模型,F:特征提取器,C:分类器,p(C_i):分类层原始输出(还没softmax),K:有限训练数据存储

P:旧类被学习时的初始状态,N:当前增加新类后的状态,Z:state数

端到端模型里FC是整合的。分开的如iCaRL把C换成NEM,或换为SVMs。

4.方法

先提了下记忆微调,类越多不平衡越严重;固定表示依赖初始表示质量。

我们的方法:以微调为backbone,同时记忆初始学习的统计量,以在backbone预测阶段修正输出(这里叫classfication score)。

  • 如何修正:

实验表明,模型偏好为新类打高分,同时越增量,该偏好越明显。我们可以增加旧类分数,以修正这种偏好。

论文阅读:IL2M: Class Incremental Learning With Dual Memory_第1张图片

  • 模型表示如下:

论文阅读:IL2M: Class Incremental Learning With Dual Memory_第2张图片

蓝色是存数据的记忆;粉色是存统计量的记忆。每个state是一次增量学习。

统计量\mu^P(C_i)的计算为:在P阶段所有类C_i训练数据的,平均分类scores(即网络原始输出)。由图2有,\mu^P(C_i)>\mu^N(C_i)

\mu(M_P)的计算为:所有新训练数据,在模型P阶段的,平均分类scores。\mu(M_P)\mu(M_N)应该没有固定大小之别)

  • 利用统计量修正方法如下:

修正发生在:一个样本被判为新类时

修正效果是:增加对旧类的分类score。
 

5.实验

主要对蒸馏损失的实验很有意思,这里摘录一些结果:

论文阅读:IL2M: Class Incremental Learning With Dual Memory_第3张图片

作者摘除了iCaRL的蒸馏损失得到FT^{NEM},摘除了EtEIL的蒸馏损失得到FT^{BAL},性能反而更好了。

论文阅读:IL2M: Class Incremental Learning With Dual Memory_第4张图片

另一个实验,比较是否有蒸馏损失的fine-tuning(有:hybrid1   无:FT)。e(p,n)代表旧类错判为新类,c为正确etc...

尽管蒸馏损失假设可以保留旧类准确率,实验却显示其导致了两三倍的错误率。蒸馏损失假设,在一个大型的平衡数据集上初始学习到一个健壮的模型,而这个条件在增量学习中是不满足的。

你可能感兴趣的:(增量学习,神经网络)