Few Shot Incremental Learning with Continually Evolved Classifiers
CVPR2021,由新加坡南洋理工大学发表
本文利用Graph即图模型,将拓扑结构与增量模型向结合,从而取得不错的效果。
论文地址:
[2103.16788] DER: Dynamically Expandable Representation for Class Incremental Learning (arxiv.org)
目录
1.贡献点
2. 方法
2.1 模型框架
2.1 CEC(continually evolved classifier)
2.3 Pseudo Incremental Learning
3.实验
3.1 可视化
3.2 方法对比
4.总结
本文依然解决Few-shot class incremental learning(FSCIL)问题,从两个方面来进行解决:
对FSCIL问题,base数据大量,inc数据较少,因此用base数据训练backbone即可。用calssfier来试应增量任务的变化。
即使对旧任务,学到了很好的分类边界,但是因为新任务的到来,旧模型的决策边界可能不好用了。因此本文引入新的Continually Evolved Classifier (CEC)来进行适应。将Graph Attention Network(GAT,ICML2018)图注意力模型。引入到此模型之中。从而实现了与增量任务的结合。
先用base数据D0训练获得backbone R的权重,然后利用base数据作为伪增量,训练Graph模型获得权重{W0},
随着增量任务的到来,Graph模型的节点和权重随之增加,权重增加为{W0,W1},再增加到{W0, W1, ...Wi}
前I个任务,模型学到的权重为:
对于CNN模型而言:小写w上标c下标i。上标c表示类别为c,下标i表示第i个增量任务。w上标c下标i表示第i个增量任务中区分类别c的权重。这里采用CNN的模型权重是为了后面与Graph模型进行区分。
大写W权重由小写w权重构成,意味着每个增量任务从0到I中,每个类别都会有一个权重。
作者把GAT运用于其中。
关于GAT的知识,因为涉及到Graph的知识,因此较为繁琐,作者也适当进行了规避,这里不多做介绍,这里只介绍GAT如何对权重进行处理:
U表示线性变换矩阵,小w上标k表示对所有的k分类的任务,都可以通过线性变换,和一个注意力系数的线性相加,更新获得第j个任务权重j’.
GAT的作用就是获得线性变换矩阵U和注意力系数ajk。通过此公式我们可以看出,classifier的权重其实经过了更新,这个更新过程是新权重除了新训练所得的权重之外,classifier旧权重也进行了线性变换和注意力机制的更新。
算法流程:
输入:
根据基础任务数据D0训练所得的backbone模型R,以及一个随机初始化的GAT模型G
增量任务到来之后,只需要对新增任务训练classifier, 然后训练GAT模型,用GAT模型的输出平衡classifier各个类别之间的关系。
见算法流程中步骤5-8,本文将旋转这个数据增强的手段当作了贡献点之一,起名叫做Pseudo Incremental Learning.(PIL)
作者通过旋转的样本增扩(PIL),然后将样本分为了support set和query set,(类似于训练集和验证集,但是在Graph神经网络之中,这两个集合的作用不太一样),support set用于训练分类器,训练好的分类器用query set训练GAT网络。
关于PIL这个流程的作用,效果巨大,通过后续实验可见图6,可能与GAT的某些特性有关:
加入了PIL之后,网络准确率提升巨大。
通过t-SNE可视化,新类的学习过程,特征空间上的点分的更开。
A+B, A是小样本增量学习FSCIL,B是图注意力网络GAT,本文将两个结合起来凑贡献点。
中间加入了一些trick提升准确率,以使得模型达到SOTA,例如旋转的样本增扩,起名为Pseudo Incremental Learning