【Novel Category Discovery】Residual Tuning: Towards Novel Category Discovery without Labels in TNNLS

一、简介

题目: Residual Tuning: Towards Novel Category Discovery without Labels
期刊: TNNLS 2022
任务: 最初,有一个有标签的数据集(其数据均属已知类),出于隐私保护,使用该数据集训练过模型后,数据会被变得不可获取,之后会有一个无标签的数据集(其数据均属于新类/未知类,与已知类不相交,类别数已知),要求模型保留对已知类的分类能力同时对无标签样本进行聚类,或称新类发现(Novel Category Discovery)。
Note: 它与Class-Incremental Novel Class Discovery讲的是同一个故事。
方法:
(1)在有标签数据上预训练。以ResNet-18为backbone,跟一个线性层提取基特征,再跟一个分类头,以交叉熵为损失进行优化,之后保存模型;
(2)在无标签数据上进行残差微调(此时有标签数据变得不可获取)。新建一个网络,仍以ResNet-18为backbone并跟一个线性层提取基特征(与(1)中大小相同),再额外增加一个线性层提取残差特征。之后设置三个损失项:蒸馏损失 L d i s t i l l \pmb L_{distill} Ldistill+聚类损失 L c l u s t e r \pmb L_{cluster} Lcluster+成对损失 L p a i r w i s e \pmb L_{pairwise} Lpairwise进行微调(基特征用于优化 L d i s t i l l \pmb L_{distill} Ldistill,残差特征用于优化 L p a i r w i s e \pmb L_{pairwise} Lpairwise,基特征与残差特征联合优化 L c l u s t e r \pmb L_{cluster} Lcluster)。

该方法结构图,如上所示。

二、详情

1. 学习有标签数据(预训练)

首先,有一个有标签数据集 D l D^l Dl可供预训练,它们均属于已知类,类别数为 C l C^l Cl

网络结构是以ResNet-18为backbone,跟一个线性层提取基特征(basic feature,记作 b ( x i l ) b(x_i^l) b(xil)),再跟一个分类头(大小=已知类类别数量),以如下交叉熵为损失进行优化:

预训练之后需保存模型,该模型有两个作用:
(1)模型参数会用于初始化新模型的一部分参数;
(2)模型会在计算蒸馏损失时被使用。

2. 学习无标签数据(残差微调)

此时,有标签数据变得不可获取,提供一个无标签数据 D u D^u Du(全部属于未知类/新类,类别数 C u C^u Cu已知且与已知类不相交),目标变成在无标签数据上进行残差微调保留模型识别已知类的能力同时对新类进行聚类。

新建一个网络,网络结构仍以ResNet-18为backbone并跟一个线性层提取基特征(与(1)中大小相同,记作 b ( x i u ) b(x_i^u) b(xiu)),由之前保存的模型参数进行初始化。再额外增加一个分支,以线性层提取残差特征(大小与 b ( x i u ) b(x_i^u) b(xiu)相同,记作 r ( x i u ) r(x_i^u) r(xiu)),组合两个特征记作 c ( x i u ) = b ( x i u ) + r ( x i u ) c(x_i^u)=b(x_i^u)+r(x_i^u) c(xiu)=b(xiu)+r(xiu)

之后,作者设置了三个损失项:蒸馏损失 L d i s t i l l \pmb L_{distill} Ldistill、聚类损失 L c l u s t e r \pmb L_{cluster} Lcluster、成对损失 L p a i r w i s e \pmb L_{pairwise} Lpairwise用于在无标签数据上微调新网络。

A. 深度聚类特征提取与优化

该方法是结合了DECDTC(后者是前者的改进版本),旨在提取更利于聚类的特征并实施聚类。与DEC不同的是,作者综合DTC的建议,对特征进行了PCA降维。

该部分是针对组合特征 c ( x i u ) c(x_i^u) c(xiu)进行优化的,在得到组合特征 c ( x i u ) c(x_i^u) c(xiu)之后对其进行PCA降维,得到一个约减后的组合特征 c ~ ( x i u ) \tilde c(x_i^u) c~(xiu)(维度为 C u C^u Cu)。接着,在组合特征 c ~ ( x i u ) \tilde c(x_i^u) c~(xiu)上实施k-means聚类,找到 C u C^u Cu个特征中心 { μ k } k = 1 C u \{\pmb\mu_k\}_{k=1}^{C^u} {μk}k=1Cu(特征中心的维度也是 C u C^u Cu)。

之后,可根据组合特征 c ~ ( x i u ) \tilde c(x_i^u) c~(xiu)和特征中心 { μ k } k = 1 C u \{\pmb\mu_k\}_{k=1}^{C^u} {μk}k=1Cu的相似度计算一个软分配(one-hot形式为硬分配,以 [ 1 , 0 , 0 ] [1,0,0] [1,0,0]为例,则 [ 0.6 , 0.3 , 0.1 ] [0.6,0.3,0.1] [0.6,0.3,0.1]为软分配,实际上此处的软分配类似于softmax层的输出),计算方式如下:

这是一个student’s t-distribution,其中, α = 1 \alpha=1 α=1 q k ( x i u ) q_k(x_i^u) qk(xiu)表示 c ~ ( x i u ) \tilde c(x_i^u) c~(xiu)属于第 k k k个簇的概率。由上式可知,该概率是根据距离计算的,简单来说,特征距离某个簇的中心越近,则属于该簇的可能性就越大。

那么,预测概率 q k ( x i u ) q_k(x_i^u) qk(xiu)有了,就还需要一个目标概率,从而使预测概率逐渐逼近目标概率。作者采用的是如下辅助目标分布:

其中, f k = ∑ i q k ( x i u ) f_k=\sum_iq_k(x_i^u) fk=iqk(xiu),即所有无标签样本在簇 k k k上的预测概率的总和。由上式可知,该目标分布是根据预测概率制定的,简单来说,预测概率占总预测概率的比重越大,则目标概率就越大,反之则越小。目标概率与预测概率的关系如下图:

试想只有在样本特征距离某个簇中心很近时,预测概率才会较大,使用此目标概率就可使这种可信度高的接近簇中心的样本所提特征更加靠近簇中心。反之,只有在样本特征距离某个簇中心很远时,预测概率才会较小,目标概率就更小,使用此目标概率就可使这种可信度低的远离簇中心的样本所提特征更加远离簇中心。

为使预测概率 q k ( x i u ) q_k(x_i^u) qk(xiu)接近目标概率 t k ( x i u ) t_k(x_i^u) tk(xiu),作者将如下KL散度作为损失进行优化:

KL散度是用来衡量两个分布之间的差距的,所以优化该损失能达到使预测概率 q k ( x i u ) q_k(x_i^u) qk(xiu)更加接近目标概率 t k ( x i u ) t_k(x_i^u) tk(xiu)的目的。更深一步的考虑,为达到该目的,实际优化的是特征(使靠近簇中心的更靠近,使远离簇中心的更远离),因此使用该方法能够得到更适合聚类的特征进而实现聚类目标。

B. 保留基特征以避免遗忘

之前学过的知识都储存在之前保存的预训练模型里,作者使用蒸馏损失来将这部分知识转移到新模型中,以使新模型仍具有识别旧类的能力。

首先,在新模型的基特征层上增加一个与旧模型结构和参数都相同的分类头。然后,引入如下蒸馏损失:

其中, p ^ ( y ∣ x i u ) \hat p(y|x_i^u) p^(yxiu)是无标签数据 x i u x_i^u xiu输入存储的旧模型在类别 y y y上的预测概率,相应地, p ( y ∣ x i u ) p(y|x_i^u) p(yxiu)是无标签数据 x i u x_i^u xiu输入新模型刚加的分类头在类别 y y y上输出的预测概率。旧模型被保存后就被冻结,微调阶段其参数也不会更新。

实际上,该损失与交叉熵的形式相同,不过,它以旧模型的输出作为目标概率,以新模型的输出作为预测概率进行优化。简单来说,就是希望新模型在基特征这条线上的预测结果能与旧模型接近,这就说明两者所学知识也是相似的,即之前用旧模型所学的知识也就迁移到了新模型中。

C. 相似特征对比学习

对比学习是一种常用的无监督学习方法,通常使用二元交叉熵形式的损失函数,其关键在于相似样本对的找寻和伪标签的设置,以实现相似样本特征彼此接近,非相似样本特征彼此远离的目的。

两个无标签样本的相似性由如下余弦相似度计算:

s i , j = p ( x i u ) ⊙ p ( x j u ) = p T ( x i u ) ⋅ p ( x j u ) s_{i,j}=\pmb{p}(x_i^u)\odot\pmb{p}(x_j^u)=\pmb{p}^T(x_i^u)\cdot\pmb{p}(x_j^u) si,j=p(xiu)p(xju)=pT(xiu)p(xju)

其中, p ( x i u ) \pmb{p}(x_i^u) p(xiu) p ( x j u ) \pmb{p}(x_j^u) p(xju)为基特征后的分类头的概率输出。于是,同一批次的预测两两之间的相似度就能形成一个相似度矩阵。然后,每个样本都可以找出与自己最相似的 k k k个样本。如果 x j u x_j^u xju x i u x_i^u xiu的前 k k k个最相似的样本中的一个,那么 A i , j = 1 A_{i,j}=1 Ai,j=1,否则, A i , j = 0 A_{i,j}=0 Ai,j=0。所以,作者使用余弦相似度度量相似性,以 k k k近邻的方式寻找相似样本对,并分配给相似样本对伪标签 A i , j A_{i,j} Ai,j

此外,我们希望的是如果两个样本相似,则其基特征相似,同样残差特征也应该相似。于是,作者又在新模型的残差特征层上增加了一个大小为 C u C^u Cu的分类头。

与基特征上分类头的概率输出的相似性类似,在残差特征上分类头的概率预测间的相似度 s i , j u s^u_{i,j} si,ju也能组成一个相似度矩阵,所以,样本 x j u x_j^u xju x i u x_i^u xiu就有了两个相似度 s i , j s_{i,j} si,j s i , j u s^u_{i,j} si,ju。为使相似样本基特征和残差特征分别相似的目的,作者采用如下成对损失:

可以看到,作者使用的是由基特征衡量出的相似度矩阵所确定的伪标签 A i , j A_{i,j} Ai,j以及由残差特征衡量出的相似度 s i , j u s^u_{i,j} si,ju。因此,当 A i , j = 1 A_{i,j}=1 Ai,j=1时,表明两个样本的基特征相似,此时要使 s i , j u s^u_{i,j} si,ju增大,即残差特征更相似才能使损失降低;反之,当 A i , j = 0 A_{i,j}=0 Ai,j=0时,表明两个样本的基特征不相似,此时要使 s i , j u s^u_{i,j} si,ju减小,即残差特征更不相似才能使损失降低。简单来说,该损失能使两个相似的样本的特征都更加相似,反之,则使两个不相似的样本的特征都更不相似。

于是,作者形成了如下的总损失函数:

其中, β \beta β为权重。 L c l u s t e r \pmb L_{cluster} Lcluster由基特征和残差特征共同优化,用于提取更优质的聚类特征; L d i s t i l l \pmb L_{distill} Ldistill由基特征优化,用于迁移旧模型中的知识到新模型中; L p a i r w i s e \pmb L_{pairwise} Lpairwise由残差特征优化,用于将相似样本的特征聚到一起。

综上,经过预训练与残差微调,该模型即可具备识别旧类并聚类新类的能力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fulin_Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值