[论文阅读] Large Scale Incremental Learning

论文地址:https://openaccess.thecvf.com/content_CVPR_2019/html/Wu_Large_Scale_Incremental_Learning_CVPR_2019_paper.html
代码:https://github.com/wuyuebupt/LargeScaleIncrementalLearning
发表于:CVPR 19

Abstract

现代机器学习在增量学习新类时,会受到灾难性遗忘的影响。由于旧类数据的缺失,其性能急剧下降。增量学习方法已经被提出来,通过使用知识蒸馏和保留旧类中的一些示范来保留从旧类中获得的知识。然而,这些方法很难扩展到大量的类。我们认为这是因为两个因素的结合:(a)新旧类之间的数据不平衡,以及(b)视觉上相似的类的数量增加。在训练数据不平衡的情况下,区分越来越多的视觉相似的类是特别具有挑战性的。我们提出了一个简单而有效的方法来解决这个数据不平衡的问题。我们发现,最后一个全连接层对新的类别有很强的偏见,这种偏见可以通过一个线性模型来纠正。通过两个偏置参数,我们的方法在两个大型数据集上表现得非常好。ImageNet(1000类)和MS-Celeb-1M(10000类),分别比最先进的算法高出11.1%和13.2%。

Method

本文与早期的类增量学习方法类似,同样走的是simple & effective的风格。具体来说,本文解决问题的出发点依然是全连接层的偏置问题,即会倾向于保持新类的性能:
在这里插入图片描述
从上图可以看到,传统方法对旧类的激活是较少的。而引发这一问题的原因其实也很单纯:虽然我们使用了蒸馏损失以及示例集来使得网络去尽可能保证旧任务的性能,但由于新类的样本数量毕竟要明显多于示例集样本数,由此构成了一个典型的类不均衡问题,为此模型依旧会倾向于去保证新任务的性能。

一个分类网络可以简单地视为特征提取器+分类头,而本文就是在分类头(其实就是全连接层)上去做文章。做法也相当的简单,既然FC层有问题,会出现偏移,也没法去重新训练个FC层,那就对FC层预测的结果进行后处理(做一个简单的仿射变换)即可,对结果进行纠正。为此,从新样本和示范集中分出一小部分样本来做验证集。在正常的训练流程走完后,固定除仿射变换层的所有参数,在"验证集上finetune",从而实现对特征进行纠偏的效果(如下图):
在这里插入图片描述
个人感觉本文的方法和EEIL[1]差不多,都是拿出一小部分样本来finetune解决类不均衡问题,一个主要区别在于本文设计了一个额外的层来显式完成这一过程。

Ref

[1] Castro, Francisco M., et al. “End-to-end incremental learning.” Proceedings of the European conference on computer vision (ECCV). 2018.

猜你喜欢

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