读书笔记-增量学习-End-to-End Incremental Learning

一篇2018年的论文:End-to-End Incremental Learning。为了使模型实现增量学习,把新、旧数据一起重新训练会导致时间、存储成本等一系列问题。作者提出的方法仅使用新数据与部分代表性的旧数据。基于Distillation知识蒸馏从旧数据中提取代表性样本、Cross entropy交叉熵学习新数据。题目的End-to-End指的是能同时训练更新Classification分类器和代表性样本。

作者认为,一个拥有增量学习能力的深度神经网络模型应该拥有以下特征:

  1. Ability to being trained from a flow of data, with classes appearing in any order, and at any time。能在任意时刻,对数据流中任意顺序的数据进行学习。

  2. Good performance on classifying old and new classes。优秀的分类性能。

  3. Reasonable number of parameters and memory requirements for the model。模型参数及内存大小合理。

  4. End-to-End learning mechanism to update the classifier and the feature representation jointly。对模型中分类器和代表性样本同步更新。

因此,作者提出了如下增量学习架构,任意深度学习模型都可以套用这个框架(仅需修改损失函数),实现有效的增量学习:

                                 读书笔记-增量学习-End-to-End Incremental Learning

  1. 输入图像首先进行特征提取,把特征传入各个分类器(CL1, CL2, ... , CLN),其中CLN(图中绿色的CLN)是新添加的分类器。
  2. 分类器分别输出logits,logits相当于softmax层中预测各样本种类的概率的值。
  3. 把模型中每个分类器(CL1, CL2, ...不包含CLN) 输出的logits都做一个Distillation蒸馏(图中黄色的Distillation 1, Distillation 2)。
  4. 把模型中每个分类器(CL1, CL2, ... , CLN)输出的logits整合做一个样本分类(图中蓝色的Classfication)。
  5. 把Distillation 1和 Distillation 2 和 Classfication 作Cross-entropy交叉熵,获得分类结果。

对于两个损失函数的定义:

读书笔记-增量学习-End-to-End Incremental Learning                               读书笔记-增量学习-End-to-End Incremental Learning

          Cross-entropy Loss 交叉熵损失函数                                                             Distillation Loss 蒸馏损失函数

整合后,Cross-distilled Loss 交叉-蒸馏损失函数的表达式:

                                                             读书笔记-增量学习-End-to-End Incremental Learning

其中F表示旧分类器(图中灰色的分类器CL1,CL2)的总数。


作者提出的增量学习流程如下:

读书笔记-增量学习-End-to-End Incremental Learning

  1. 【Construction of the training set】该模型在扩展前我们已经有了一定的旧知识,存储在Memory中,此时输入数据有新数据。因为应用了两个损失函数,所以该环节需要给训练集中每个数据贴两个标签。对于Classification,采用one-hot vector表示它在image中表示的种类;对于Distillation,使用旧知识的logits贴标签。
  2. 【Training process】执行特征提取,分类,知识蒸馏,更新参数,分类等过程。其中,特征提取的方法在增量学习过程不会改变。
  3. 【Balanced fine-tuning】对分类结果进行微调。由于新数据肯定比代表性旧数据多,作者提出挑选新数据中具有代表性的数据,具体挑选算法为Herding Selection,一种根据样本与该种类平均样本的距离的排序挑选算法。挑选后的新子集,无论新旧数据,每个种类的样本数量一致。
  4. 【Representative memory updating】微调后的新子集作为旧知识被存储到内存中。其中涉及到存储代表性旧知识的方法,作者提出了两个方案,实验中分别对两种存储方案进行对比。(1) 有限存储容量:当样本种类不断增加,每种样本的数量将减少;(2) 无限存储容量:每个种类的样本数量固定。

实验中比较上述两种存储方法的结果:

                            读书笔记-增量学习-End-to-End Incremental Learning

                                                                                         有限存储容量

                                                    读书笔记-增量学习-End-to-End Incremental Learning

                                                                                         无限存储容量


写在最后,作者为了实现增量学习且避免旧知识灾难性遗忘,引入双损失函数的方法,对旧知识应用蒸馏,对旧、新知识应用交叉熵,以保证在每次训练时都能用到旧知识。

  Old Data New Data
Distillation ☑️  
Cross-entropy ☑️ ☑️

 

作者对样本微调保证了新旧数据数量的平衡,因而有效避免模型不会偏向新的类别。且训练过程不冻结特征提取层和分类层,每次训练都能更新连接权重。对于基于深度学习的神经网络,作者提出的方法兼容性较好,神经网络仅修改损失函数并加入旧知识存储空间,便可效仿该增量学习功能。