论文阅读笔记《Few-Shot Class-Incremental Learning》

核心思想

  本文提出一种用于解决小样本类别增量学习(few-shot class-incremental learning, FSCIL)的算法(TOPIC)。首先解释一下什么是小样本类别增量学习,模型首先在一个大规模的基础数据集D(1)D^{(1)}上进行训练,然后会不断增加新的数据集D(t),t>1D^{(t)}, t>1,且数据集中的类别与基础数据集中的不同,样本数量也较少,在学习新的样本过程中,还不能忘记之前学习过的样本。这一过程面临两个难题:灾难性遗忘和新的数据产生过拟合问题。为了解决这两个核心难题,本文利用神经气体网络(neural gas network,NG),通过网络的拓扑结构来反映样本的特征向量之间的关系,一方面通过稳定NG在上一个阶段学习到的子图来保留之前的知识,另一方面通过增强学习到的特征的区分能力来解决过拟合问题。
  然后我们简要介绍一下NG网络的学习过程,NG网络与图神经网络非常类似,是由一个无向图模型G=<V,E>G=<V,E>构成的,每一个结点vjv_j都带有一个质心向量mjm_j用来描述结点vjv_j在特征空间中的位置,而边的集合EE就储存了相邻节点之间的关系,如果结点viv_i和结点vjv_j之间是拓扑邻接的,则eij=1e_{ij}=1,否则为0。每个边eije_{ij}还带有一个年龄参数aija_{ij},其初始化为0。给定一个输入f\mathbf{f },那么他就会根据距离d(f,mj)d(\mathbf{f },m_j)分配给最近的结点vjv_j
  为了满足FSCIL问题的需要,本文对NG网络做了一些改进。首先每个结点处除了带有质心向量mjRnm_j\in \mathbb{R}^n之外,还带有三个参数,分别为:Λj\Lambda_j是一个n×nn\times n的对角矩阵,用于储存mjm_j每一维度的方差,zjz_j表示结点对应的图像,cjc_j表示结点对应的类别标签。在基础数据集D(1)D^{(1)}上训练时,给定一个输入f\mathbf{f },分别计算其与每个结点之间的距离,并储存在DfD_\mathbf{f }中,然后将距离按照由小到大升序排序得到Rf=rid(f,mri)d(f,mri+1)R_\mathbf{f }={r_i|d(\mathbf{f }, m_{r_i})\leq d(\mathbf{f }, m_{r_{i+1}})},并按照下式对所有节点的质心向量mrim_{r_i}进行更新
在这里插入图片描述
式中η\eta表示学习率,e1/αe^{-1/\alpha}表示衰减函数。由上式可知与ff距离越远的结点,则受到的影响就越小。接下来更新所有与r1r_1(与f\mathbf{f }距离最近的结点)相连的边的参数
在这里插入图片描述
最后更新结点vjv_j的其他参数,zjz_jcjc_j会从D(1)D^{(1)}中选择特征向量与mjm_j最接近的图像和标签,Λj\Lambda_j会根据该特征向量估计得到(因为每次所有结点的mjm_j都会更新,因此其他参数也会随之发生变化)。在增量学习的阶段,也就是在新的数据集D(t),t>1D^{(t)}, t>1上学习时,为每个新的类别都插入新的结点,然后按照上面的介绍更新结点和边的参数。
  最后,我们介绍一下作者时如何解决前面提到的灾难性遗忘和新样本过拟合问题的。针对灾难性遗忘问题,本文通过增强拓扑结构稳定性的方式实现。给定一个NG网络G(t)G^{(t)},从中提取子图Go(t)G_o^{(t)},该子图中的所有节点都来自于旧的数据集,在进行微调训练时,为了稳定Go(t)G_o^{(t)}避免遗忘旧的知识,本文通过约束新的向量观察值m^\hat{m}尽可能地靠近之前的质心向量mm,来减少结点vv在特征空间中的位置的变动。实现的方式,就是增加一个anchor loss(AL)损失项,计算过程如下
在这里插入图片描述
式中用ff表示参数更新的competitive Hebbian learning过程,我认为是不太合适的,根据上下文内容来看,ff应该是指的特征提取过程。
在这里插入图片描述
  如上图(a)中所示的是未经更新的NG网络G(t)G^{(t)},如果按照原有方式进行更新,则如图(b)所示,结点位置变化较大,原有的拓扑结构被破坏;增加了AL惩罚项后,更新结果如图©所示,拓扑结构保持稳定,结点位置变化较小。
  针对新样本过拟合的问题,本文通过增强学习特征的区分能力来解决。对于新的样本(x,y)D(t)(x,y)\in D^{(t)}学习得到的特征向量f=f(x,θ(t))\mathbf{f}=f(x,\theta^{(t)}),我们希望其对应结点vjv_j的标签为yy,且距离d(f,mj)<<d(f,mi),ijd(f,m_j)<<d(f,m_i),i\neq j,也就是新的特征向量与正确的类别结点距离越近越好,与其他类别结点的距离越远越好。为了实现这一目的作者增加了min-max loss(MML)损失项,计算过程如下
在这里插入图片描述
式中ξ\xi表示一个距离阈值,如果两个节点之间的距离超过他,则认为二者之间的距离足够远了,不需要额外的惩罚,否则则会有相应的惩罚。
在这里插入图片描述
  如上图(d)中所示,新样本对应的特征向量f~\tilde{f}原本应该属于结点v~7\tilde{v}_7,但由于其与结点v5v_5更近,因此被误分配给结点v5v_5;如图(e)所示,如果采用了MML损失后,将特征向量f~\tilde{f}向结点v~7\tilde{v}_7靠拢,并且拉开结点v~7\tilde{v}_7与结点v5v_5v4v_4之间的距离;经过更新后,特征向量f~\tilde{f}正确的分配给了结点v7v_7,且v7v_7v4v_4之间的边由于年龄太大而取消了。

实现过程

损失函数

  损失函数共包含三项:分类损失,AL损失和MML损失,计算过程如下
在这里插入图片描述

创新点

  • 本文提出一种小样本类别增量学习(FSCIL)问题,其更加贴合实际应用情况但难度也更高
  • 利用NG网络通过增加AL损失和MML损失项解决了FSCIL中的灾难性遗忘和新样本过拟合的问题

算法评价

  本文首先是提出了一种更接近实际应用需求的且难度更高的小样本类别增量学习(FSCIL)问题,这类问题在实际场景中非常常见,因此解决该问题是非常有价值的。接着作者采用了NG网络来解决该问题,我之前并没有了解过NG网络的情况,现有的资料也比较少,但看起来与图神经网络非常类似,都是用结点表示类别,用距离表示相似程度,用边表示结点之间的邻接关系。最后作者通过引入两种惩罚项的方式解决了灾难性遗忘问题和新样本过拟合问题,相对于普通的增量式学习算法取得了更好的效果。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章