小全读论文《End-to-End Incremental Learning》 ECCV 2018

小全读论文《End-to-End Incremental Learning》ECCV 2018

  • Motivation
  • Approach
    • 模型框架
    • 算法流程
      • 训练集的构建(construction of the training set)
      • 训练过程(training process)
      • 基于均衡采样的微调(balanced fine-tuning)
      • 代表性存储空间的更新(representative memory updating)
  • 总结

Motivation

本文关注的是增量学习问题,本文指出一个基于深度学习的增量方法需要符合下列特征:
1)可训性,模型应该具备对数据流数据的训练能力,也就是说即使不同类别的数据以不同顺序的形式在不同时间段出现,模型依然能对数据进行训练;
2)有效性,在新类别和旧类别都有比较好的性能
3)资源有限性,模型的参数以及不能随着数据的流入而不断增大;
4)模型可以同时对分类器和特征提取器进行更新,实现端到端的训练;

本文指出,即使学者们在增量学习领域做出了不少努力,但是没有一个现存的工作能同时满足上面所有性质,如
1)有些方法把分类器和特征学习任务是解耦,或者受限于一些特定的场景,如学习新的数据集,其类别并不是和旧类别相关
(读者认为文章中该点的描述有点偏差,文章提出说针对分类器和特征学习任务是解耦的例子是iCaRL,但是iCaRL的分类器是依赖于特征学习的,他们的关系并非是独立的)
2)有些方法尝试采取一些额外的分类器,如SVM,本文认为这些分类器是不适合深度学习结构的
3)有些方法会导致网络的参数的快速增加,如一些方法为新类别训练一个新的网络

相对于其他方法,本文的方法的一个核心点在于:实现了分类器和特征提取器的端到端的训练

Approach

与iCaRL类似,本文也提出了一个样本集,用来存储旧类别的数据。我们首先介绍模型的整体框架,然后再进一步介绍算法的整体训练流程。

模型框架

小全读论文《End-to-End Incremental Learning》 ECCV 2018_第1张图片
本文提出的框架也很直接,和之前很多方法也是一致的,当遇到新类别的时候,在网络的顶部增加了分类器层,采取知识蒸馏的loss和分类loss结合的主流方式,利用新类别的数据和样本集的数据对整体模型进行更新。

算法流程

小全读论文《End-to-End Incremental Learning》 ECCV 2018_第2张图片
和iCaRL类别,本文也提出了一个样本集存储旧类别的数据。本文方法包含了四个过程:
1)训练集的构建(construction of the training set)
2)训练过程(training process)
3)基于均衡采样的微调(balanced fine-tuning)
4)代表性存储空间的更新(representative memory updating)

训练集的构建(construction of the training set)

训练集包含了新类别的数据以及样本集的数据,并提取训练集每张图片在旧模型上的响应

训练过程(training process)

文章采取了流行的双loss的形式:知识蒸馏的loss和分类的loss,具体地:

L ( ω ) = L C ( ω ) + ∑ f = 1 F L D f ( ω ) L(\omega) = L_C(\omega) +\sum_{f=1}^F{L_{D_f}(\omega)} L(ω)=LC(ω)+f=1FLDf(ω)
L C ( ω ) = − 1 N ∑ i = 1 N ∑ j = 1 C p i j l o g q i j L_C(\omega) = -\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{C}p_{ij}logq_{ij} LC(ω)=N1i=1Nj=1Cpijlogqij
L D ( ω ) = − 1 N ∑ i = 1 N ∑ j = 1 C p d i s t i j l o g q d i s t i j L_D(\omega) = -\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{C}pdist_{ij}logqdist_{ij} LD(ω)=N1i=1Nj=1Cpdistijlogqdistij
其中,F表示旧类别的数量, p d i s t , q d i s t pdist,qdist pdist,qdist表示上述对旧模型的响应以及新模型的响应进行T次项的修正。
(读者咋一想觉得上述公式貌似有点问题,第一步的求和 ∑ f = 1 F \sum_{f=1}^F f=1F好像是无必要的,因为第三部的公式本身会对C每个类别进行求和了。但是如果把C理解成当前每次新加的类别的数量,这个公式就可以说得通了。总之他想表达的意思就是蒸馏loss+分类loss)

基于均衡采样的微调(balanced fine-tuning)

第二步的训练过程是基于两部分数据,样本集数据和当前类别的数据,但两者处于一种不均衡的状态,即新类别的数量比旧类别的数量要多。因此这一步对样本进行均衡采样,并对网络进行适当微调,减轻这种不均衡状态带来的影响。

因此需要对新类别进行均衡采样,但是这带来一个问题就是:舍弃的新类别样本的信息会被遗忘掉。为此,本文为新类别的输出结果增加了一个知识蒸馏的loss

代表性存储空间的更新(representative memory updating)

代表性存储空间和iCaRL的样本集是一致的,用来存储一些代表性的旧数据样本。因为样本集的空间是有限的,当前新类别的数据训练完之后,需要对样本集进行更新,涉及到对旧类别的样本集的删减和新类别样本集的增加。具体的方式和iCaRL的方式是一致。

总结

本文强调这是一个***端到端***的增量学习框架,但是只是仅限于模型本身的端到端,而不是整体流程的端到端,因为整体流程依然需要很多步骤,包括均衡采样的微调以及代表性存储空间的更新等。
此外,读者认为,iCaRL本身可认为是一个端到端的框架,训练网络的过程本身是端到端的,可能存在争议的是,测试过程中,需要先“提前求类别的平均表征(prototype)”这一步再进行测试。

你可能感兴趣的:(小全读论文《End-to-End Incremental Learning》 ECCV 2018)