读书笔记-增量学习-Large Scale Incremental Learning
一篇2019年关于增量学习Incremental Learning的论文。
论文的应用场景是大规模(Class)数据集的增量学习。文中提及现有的增量学习方法均存在两个致命问题:
- the data imbalance between the old and new classes(新、旧类的数据不平衡)
- the increasing number of visually similar classes(数据集中相似的类数量增加)
针对这两个问题,作者发现整个模型的最后一个全连接层对新的数据类别有严重的偏向性,这种偏向性可以由一个线性模型纠正。
使用了作者提出的偏向纠正的方法,整个模型的性能随着数据集规模增大,下降率明显降低,如下图所示。
该偏向纠正方法的流程图如下图所示:
- 整个模型被分为Stage 1和Stage 2两部分,Stage 1是Input、卷积层和全连接层,Stage 2 是作者提出的偏向纠正层。
- 把新、旧数据整合后,切分为新、旧训练集(Training)和新、旧验证集(Validate)。其中新、旧验证集的大小一致。
- 训练集用于Stage 1的卷积层和全连接层的训练,验证集用于Stage 2的偏向纠正。
其中,新模型由这两个Loss Function习得:
- 新、旧类别数据输出采用知识蒸馏Distilling Loss:
- Classification Loss采用交叉熵:
- 最终表示为:
新模型的Stage 2的纠正层输出表达如下:
1到n表示旧样本,不需要纠正。对于n+1到n+m的新样本,引入两个变量 α、β对其进行线性纠正。纠正后通过交叉熵Loss完成训练,公式如下:
为了验证是模型中的全连接层存在偏差,作者采取以下实验:
把100类数据分5次递增,每次递增20类,发现两种模型(使用baseline方法train分类器 和 用所有训练数据train分类器)的准确率随着增量学习下降明显。且结果明显偏向于最后加入的20类新数据。下图(a)中绿色和蓝色线。
先训练一次特征层和全连接层,然后冻结特征层,再用新、旧数据训练一次全连接层得到结果(下图(a)中黄色线)。
该实验验证了两个观点:
- 模型中的全连接层的确对分类偏差有严重影响
- 作者提出的方法在增量学习中有效缓解性能下降问题
另一实验把该新提出的模型应用于一个Large Scale Dataset中,比对另外3种模型,结果如下:
随着分类数量增加,4种模型学习后准确率均降低,但作者提出的模型在该大型数据集中表现出更强性能,10000种类别时仍能保持准确率高达87%以上。
在不同数据集上的表现亦十分出色,当数据集越大,提出的模型优势越大。在结果如下: