近两年,基于拓扑图模型的方法开始得到应用。这种方法也是将模型分为特征提取模型和分类器模型,特征提取模型用于对特征进行提取。拓扑图模型多用于特征分类阶段,用于学习不同类别之间的关系。因为增量任务和拓扑结构有一定的类似,即有的任务之间联系紧密,有的任务之间联系不紧密,这种对应的关系可以通过拓扑图模型进行学习,从而应用在分类器上,提升模型性能。
本文将基于拓扑图的增量学习方法进行归纳。
CVPR2020 ,FSCIL Few-shot Class Incremental Learning。将NG网络运用到增量学习之中。
FSCIL论文详解 Few-Shot Class-Incremental Learning, CVPR2020_祥瑞的技术博客-CSDN博客
ECCV2020,TPCIL,本篇,Topology Preserving Class-Incremental learning,同样的框架,即CNN+拓扑结构,部分内容换了一个写法。
基于拓扑的增量学习Topology Preserving Class-Incremental learning论文详解ECCV2020_祥瑞的技术博客-CSDN博客
CVPR2021与本篇非常类似,Few-Shot Incremental Learning with Continually Evolved Classifiers,南洋理工大学提出,也是运用Graph的知识,将GAT(Graph Attention Network)用于增量学习。
目录
3. CEC,Continually Evolved Classifier
1.FSCIL,Neural Gas Network
1.1 贡献点
本篇论文由西交大发表于CVPR2020上,作者定义了,小样本增量学习问题few-shot class-incremental learning (FSCIL)
小样本增量学习面临下面这些问题:
- 灾难性遗忘,也是增量学习普遍存在的问题。学习新类会改变旧类在特征空间中的拓扑关系。
- 异质数据差异。此前多种方法采用知识蒸馏来保存旧特征的拓扑结构,但是对于异质性数据而言,知识蒸馏并不能很好的适应。
- 过拟合,因为新增样本过少,导致网络过拟合。
为了解决以上问题,作者贡献点分三个:
- NG网络,Neural Gas network,此网络不是作者提出的,但是作者把这种拓扑结构的网络用在了增量学习之中
- AL loss(ancher loss),用于解决灾难性遗忘的问题,避免网络经过了增量任务训练之后在base上变化过大
- MML loss (min-max loss),让同类别的样本在拓扑空间中的距离尽可能接近,不同类别样本在拓扑空间距离尽可能远离。
1.2 NG网络
本文分为特征提取模块和分类器模块,NG网络主要运用于分类器阶段上。NG网络最早在1991年提出,被作者应用于此任务之中。用拓扑关系来模拟特征空间上的关系。本文将特征提取后的特征空间上的位置做为NG网络的输入。
NG网络由图模型构成,具有节点和边。节点定义为vj,它会有一个质量中心mj, 用来描述该节点在特征空间中的位置。如果节点j和节点i之间的关系是邻接的,那么对应的边eij就是1,不邻接eij相当于0,每个边带有一个年龄参数aij 初始化为0,当年龄参数aij大于某一个阈值之后,该节点就会断开,对应的eij被置为0。
f-mri前面的系数是衰减系数,即输入f与其他节点的距离越近,则更新量越多,离其他节点距离越远,则更新越少。接下来更新所有节点之间的边与年龄参数。
给定一个输入f,则根据输入到各个节点的距离d(f,mj)分配给最近的节点vj,然后更新其到所有节点的特征质心m上。
每一次更新,节点之间的年龄aij增加1,如果年龄大于某个阈值,就断掉该连接。
通过NG网络,即相当于增量样本到来之后,feature空间上越近,则在NG网络中的拓扑关系越近,随着增量样本越来越多,联接关系随之更新。
1.3 AL loss与MML loss
AL loss(ancher loss),用于解决灾难性遗忘的问题,让更新后的特征空间上的样本之间的距离尽可能接近,避免网络经过了增量任务训练之后在原始任务上变化过大。
MML loss (min-max loss),让同类别的样本在拓扑空间中的距离尽可能接近,不同样本的距离尽可能远离。
AL用于解决灾难性遗忘的问题,使得旧模型与新模型尽可能的接近。
AL loss使得模型旧结构与新结构的距离越近越好,减少节点v在特征空间之中的变动。
例如图a,不加AL loss训练之后特征空间的关系为图b,节点之间位置关系变化距离。加入AL loss之后变化为图c,节点与节点之间距离更近。
MML用于使得模型更具有区分性,即使得相同类别的样本尽可能接近,不同类别样本尽可能远离。
假定新样本x到来,它是y类的,经过特征提取后位置是f(x;Θ(t)),网络希望它与同类样本的距离越近越好,与非同类样本的距离越远越好。就按照上面的MML loss的形式,拉近同类样本之间的距离,拉远不同类样本之间的距离。
加入MML loss之后的效果如上图,如果不加入MML loss,则f会被误分配给节点v5,但是实际上它与节点v7是同类,因此MML loss会拉近f与v7的距离,同时让非同类的距离v5和v7的距离更远。
最终的loss是交叉熵+AL +MML
1.4 实验
通过论文实验可以看出,本文的方法能够达到SOTA,NG网络的效果比常见的NCM分类器效果更好。但是值得注意的一点是,本文的NG网络,每提取一个样本的特征之后,都会通过扩充节点的方式对图拓扑结构进行增扩,导致图模型越来越大,所以存储占用一定比其他的方法更高。
2. topology preserving CIL
2.1 方法思路
此篇论文和上篇论文一样,也是西交大同一个作者发表的,发表在ECCV2020上,与上篇论文的思路非常类似。依然通过特征提取模块之后的拓扑图模型进行特征学习。这里的特征图模型由上文的NG网络换成了Elastic Hebbian Graph (EHG)。运用 Elastic Hebbian Graph (EHG)来进行特征域的建模;运用competitive Hebbian learning (CHL)进行EHG的训练;运用Topology-preserving loss(TPL)促进EHG的学习。
关于拓扑图的公式推证较为复杂,因此这里只选取较为重要的公式进行解析。
直观来看,TPL对于学习的促进:
经过40个epoch的训练,本文的TPCIL比LUCIR样本的feature获得了更高的收敛程度。
本文总体框架较为简单,相当于一个CNN加一个图模型G,G就是本文贡献点的Graph模型EHG(Elastic Hebbian Graph). Loss运用交叉熵和TPL相结合,TPL(Topology-Preserving)即用于训练G的loss,
交叉熵CE用于根据增量任务t的样本X训练CNN参数和图模型G,TPL用于训练图模型G和CNN。
对于EHG和CHL的作用粗略如下图所示:
- a表示N个点的初始化的EHG,
- b通过CHL,图形成了节点与节点之间的连接关系
- c对CNN进行finetune,改变了特征空间上的点的位置
- d但是由于TPL的存在,EHG依然保持着之前的拓扑关系
- e学习新类,则EHG会增加新的拓扑节点与链接关系
本文为了建模方便,将feture space的特征转化到cosine空间。上划线表示正则化操作,转化为单位向量。EHG的公式如下:
此公式跟FSCIL的公式(Few-Shot Class-Incremental Learning,CVPR2020的公式一模一样。)意义就是新样本到来之后,用新样本更新所有的节点,越近的节点更新越多,越远的节点更新越少。
文中所提的TPL(Topology-preserving Loss)经过推导后如下:
其中
sij可以理解为样本i和样本j经过模型特征提取后在特征空间的余弦距离。sij表示初始的余弦距离,sij表示增量任务t到来之后的余弦距离。TPL可以粗略的理解为,旧的i和j之间的关系和新的i和j之间的关系尽可能接近。从而保持拓扑结构的稳定。
2.2 总结与对比
本文TPCIL与上文的FSCIL思路非常类似,均是采用拓扑图模型模拟增量样本特征之间的关系。每个节点作为一个样本提取出的特征的话,相当于变相的通过拓扑图模型把所有的样本的特征进行了存储,拓扑图模型只是对特征的变化进行一个预测与评估。可以看作基于特征回放的方法和基于模型结构的方法的结合。
3. CEC,Continually Evolved Classifier
3.1 贡献点
本文由新加坡南洋理工大学发表于CVPR2021,本文利用Graph即图模型图注意力网络GAT(Graph attention network, ICLR 2018)与分类器相结合,相当于利用注意力机制和拓扑结构与增量模型向结合。本文思路与上两篇不一样,上两篇思路是针对样本特征进行拓扑建模,本文思路是直接对类别之间的关系进行建模。
各任务类别关系——分类器的关系——通过GAT进行建模
本文依然解决Few-shot class incremental learning(FSCIL)问题,从两个方面来进行解决:
- 特征提取模块与分类器解耦,每次增量任务只更新分类器。特征提取模块是pretrain好的backbone, 分类器是non-parameter的class mean classifier(个人猜测类似于NCM)
- 为了使得分类器适用于所有类别,本文提出Continually Evolved Classifier (CEC),将graph模型应用于分类器。
多个数据集上SOTA
下图可以看出,随着新任务的到来和类别的增多,分类器之中的拓扑关系在不断的完善,这就是题目CEC(Continually Evolved Classifier)的含义。
3.2 模型框架
对FSCIL问题,base数据大量,inc数据较少,因此用base数据训练backbone即可。用calssfier来试应增量任务的变化。
即使对旧任务,学到了很好的分类边界,但是因为新任务的到来,旧模型的决策边界可能不好用了。因此本文引入新的Continually Evolved Classifier (CEC)来进行适应。将Graph Attention Network(GAT,ICML2018)图注意力模型。引入到此模型之中。
先用base数据D0train训练获得backbone R的权重,
然后利用base数据作为伪增量,训练Graph模型获得权重{W0},
随着增量任务的到来,Graph模型的节点和权重随之增加,权重增加为{W0,W1},再增加到{W0,W1,…,Wi}
3.3 CEC
前NI个任务,模型分类器学到的权重为:
对于CNN模型而言:上标从1到NI分别表示增量任务,下标从0到NI分别表示类别。wic表示第i个增量任务中区分类别c的权重。这里采用CNN的模型权重W是为了后面与Graph模型进行区分。模型总权重W权重由w即每个增量任务中每个类别的权重构成,意味着每个增量任务从1到NI,每个类别都会有一个权重。
作者把GAT运用于其中。
GAT的节点是基于注意力机制进行集合,利用拓扑关系,节点间的连接关系具有不变的特性,利于保持旧知识
GAT模型可以增加节点,且不改变其他的节点,新任务可以利用旧任务训练好的GAT
关于GAT的知识,因为涉及到Graph的知识,因此较为繁琐,作者也适当进行了规避,这里不多做介绍,这里只介绍GAT如何对权重进行处理:
U表示线性变换矩阵,wk示对所有的k分类的任务,都可以通过线性变换和一个注意力系数的线性相加,更新获得第j个任务权重wj'.
GAT的作用就是获得线性变换矩阵U和注意力系数ajk。通过此公式我们可以看出,分类器的权重其实经过了更新,这个更新过程是新权重除了新训练所得的权重之外,分类器旧权重也进行了线性变换和注意力机制的更新。
3.4 算法流程:
输入:
根据基础任务数据D0train训练所得的backbone模型R,以及一个随机初始化的GAT模型Gθ
增量任务到来之后,只需要对新增任务训练分类器W, 然后训练GAT模型,用GAT模型的输出平衡分类器各个类别之间的关系。
见算法流程中步骤5-8,本文将旋转这个数据增强的手段当作了贡献点之一,起名叫做Pseudo Incremental Learning.(PIL)
作者通过旋转的样本增扩(PIL),然后将样本分为了support set和query set,(类似于训练集和验证集,借鉴了meta-training的思想),support set用于训练分类器,训练好的分类器用query set训练GAT网络。
关于PIL这个流程的作用,效果巨大,通过后续实验可见图6,可能与GAT的某些特性有关:
加入了PIL之后,网络准确率提升巨大。
3.5 实验
通过t-SNE可视化,新类的学习过程,特征空间上的点分的更开。
与同类方法相比,性能达到SOTA