Generalized Category Discovery(论文翻译)

在这里插入图片描述
图1.我们提出一个新的设置:“广义类别发现”及其解决方法。我们的设置可以简洁地描述为:给定一个子集具有类标签的数据集,对数据集中所有未标记的图像进行分类。未标记的图像可以来自标记的或新的类别。我们的方法利用对比训练的视觉变换器直接通过聚类来分配标签。

摘要

在本文中,我们考虑了一个非常通用的图像识别场景,其中给定了一个带标签和无标签的图像集,任务是对所有无标签集中的图像进行分类。在这里,无标签图像可能来自带标签的类别,也可能来自新类别。现有的识别方法无法处理这种情况,因为它们做出了一些限制性的假设,比如无标签实例只来自已知的或未知的类别,并且未知类别的数量是先验已知的。我们处理更加不受约束的设置,将其称为“广义类别发现”,并挑战了所有这些假设。我们首先通过采用最新类别发现的最先进算法,并针对这个任务进行了调整,建立了强大的基准线。接下来,我们提出在这个开放世界的环境中使用具有对比度表示学习的视觉变换器。然后,我们引入了一种简单而有效的半监督K均值方法,将无标签数据自动聚类为已见和未见类别,大大优于基准线。最后,我们还提出了一种估计无标签数据中类别数量的新方法。我们在公共数据集上对我们的方法进行了全面评估,包括通用物体分类数据集和精细化数据集,利用了最近提出的语义变化基准套件。代码可在以下网址找到:https://www.robots.ox.ac.uk/∼vgg/research/gcd

1.导言

考虑一个坐在汽车里观察世界的婴儿。物体实例将经过汽车,对于其中的一些实例,婴儿可能已经被告知它们的类别(“那是一只狗”,“那是一辆车”),并能够识别它们。还会有一些婴儿以前没有见过的实例(猫和自行车),通过观察这些实例,我们可能期望婴儿的视觉识别系统将它们聚类成新的类别。

这是我们在这项工作中考虑的问题:给定一个图像数据集,其中只有一部分图像被标记了它们的类别,我们需要为剩下的图像分配一个类别标签,可能会使用在标记集中没有观察到的新类别。我们将这个问题称为广义类别发现(Generalized Category Discovery,GCD),并且认为这是许多机器视觉应用的一个现实使用案例:无论是在超市中识别产品,医学图像中的病理,还是自动驾驶中的车辆。在这些和其他现实的视觉场景中,往往无法确定新的图像来自已标记的类别还是新的类别。

相比之下,让我们来考虑现有图像识别设置的局限性。在图像分类中,这是其中一个被广泛研究的问题,所有的训练图像都有类别标签。此外,测试时的所有图像都来自于与训练集相同的类别。半监督学习(Semi-supervised Learning,SSL)[7]引入了从未标记数据中学习的问题,但仍假设所有未标记的图像来自于与标记图像相同的类别集合。最近,开放集识别(Open-Set Recognition,OSR)[38]和新类别发现(Novel-Category Discovery,NCD)[19]的任务针对的是开放世界的设置,测试时的图像可能属于新的类别。然而,OSR的目标仅仅是检测测试时的图像是否属于已标记集合中的类别之一,但不需要对这些检测到的图像进行进一步的分类。与此同时,NCD是与本工作所处理的问题最接近的设置,方法从已标记和未标记的图像中进行学习,旨在发现未标记集合中的新类别。然而,NCD仍然假设所有未标记的图像来自于新的类别,这通常是不现实的。

在本文中,我们采用多种方法来解决广义类别发现问题。首先,我们通过选择NCD中的代表性方法并将其应用到这个任务中,建立了强有力的基线模型。为此,我们调整它们的训练和推断机制以适应我们更一般的设置,并使用更强大的骨干网络架构进行重新训练。我们表明,在这个广义的设置中,现有的NCD方法容易对已标记的类别过拟合。
接下来,观察到NCD方法过拟合其分类头部到已标记类别的潜在问题,我们提出了一种简单而有效的聚类识别方法。我们的关键洞察是利用视觉变换器的强大的“最近邻”分类属性以及对比学习。我们提出了使用对比训练和半监督K均值聚类算法来识别没有参数化分类器的图像。我们表明,这些提出的方法在通用对象识别数据集以及更具挑战性的细粒度基准测试上明显优于已建立的基线方法。对于后一种评估,我们利用最近提出的语义漂移基准套件[45],该套件旨在识别语义新颖性。

最后,我们提出了一个在图像识别中具有挑战性且未经充分研究的问题的解决方案:估计未标记数据中的类别数目。几乎所有方法,包括纯无监督方法,都假设了对类别数目的了解,这在现实世界中是一个非常不现实的假设。我们提出了一种算法,利用已标记的数据集来解决这个问题。
我们的贡献可以总结如下:
(i) 将广义类别发现(GCD)形式化为图像识别中的一个新而现实的设置;
(ii) 通过将标准的新类别发现技术应用于该任务,建立了强大的基准线;
(iii) 提出了一种简单而有效的GCD方法,利用对比表示学习和聚类直接提供类别标签,并显著优于基准线;
(iv) 提出了一种估计未标记数据中类别数目的新方法,这是一个很少研究的问题;
(v) 在标准图像识别数据集以及最近的语义漂移基准套件[45]上进行了严格的评估。

2.相关工作

我们的工作与半监督学习、开放集识别和新类别发现的先前工作相关,下面我们简要回顾一下这些工作。
半监督学习:已经提出了许多方法来解决半监督学习(SSL)的问题[7, 33, 37, 40, 49]。SSL假设有标记和未标记的实例来自同一组类别。其目标是在训练过程中利用标记和未标记数据来学习一个鲁棒的分类模型。在现有的方法中,基于一致性的方法似乎很受欢迎且有效,例如LadderNet [36]、PI模型 [29]和Mean-teacher [43]。最近,随着自监督学习的成功,还提出了通过添加自监督目标来改进SSL的方法[37, 49]。
开放集识别:开放集识别(OSR)的问题在文献[38]中得到了形式化,其目标是对来自与标记数据相同语义类别的未标记实例进行分类,同时检测来自未知类别的测试实例。OpenMax [3]是第一个使用极值理论来解决这个问题的深度学习方法。通常使用生成对抗网络(GANs)来生成对抗样本以训练开放集分类器,例如[14, 25, 32]。已经提出了几种方法来训练模型,使得具有较大重构误差的图像被视为开放集样本[34, 41, 48]。还有一些方法通过与原型之间的距离来学习标记类别的原型,并通过与原型的距离来识别未知类别的图像[8, 9, 39]。最近,[8, 9]提出了学习描述与标记类别相对的"其他性"的互补点。[50]同时训练了基于流的密度估计器和基于分类的编码器来进行OSR。最后,Vaze等人[45]研究了封闭集和开放集性能之间的相关性,表明通过提高标准交叉熵基线的封闭集准确性可以获得最先进的OSR结果。
新类发现
新类发现(NCD)的问题在DTC [19]中得到了形式化。可以应用于该问题的早期方法包括KCL [21]和MCL [22],它们分别维护用于通用任务转移学习的带标记数据和未标记数据的两个模型。AutoNovel(又名Rankstats)[17, 18]通过三个阶段的方法解决NCD问题。首先,模型通过自监督在所有数据上进行低层表示学习的训练。然后,它进一步通过带标记数据的完全监督训练来捕捉更高层次的语义信息。最后,进行联合学习阶段,利用排序统计信息将知识从标记数据传递到未标记数据。Zhao和Han [51]提出了一个模型,其中包含两个分支,一个用于全局特征学习,另一个用于局部特征学习,以便使用这两个分支进行双重排序统计和相互学习,以实现更好的表示学习和新类别发现。OpenMix [53]混合了标记和未标记数据,以避免模型在NCD中过拟合。NCL [52]使用对比学习提取和聚合未标记数据的成对伪标签,并通过在特征空间中混合标记和未标记数据生成困难负例来进行NCD。贾等人[23]提出了一种用于单模态和多模态数据的端到端NCD方法,该方法使用对比学习和取胜取样哈希。UNO [13]引入了统一的交叉熵损失,允许模型联合训练标记和未标记数据,通过交换标记和未标记分类头中的伪标签来实现。
最后,我们强调Girish等人的工作[15],他们解决了与GCD类似的任务,但是针对的是GAN归属问题,而不是图像识别。此外,Cao等人的同时工作[4]解决了一个类似的图像识别问题,称为开放世界半监督学习。与我们的设置不同,它们没有利用大规模预训练,并且没有在语义漂移基准测试中展示性能,这更好地隔离了检测语义新颖性的问题。

3.广义类发现

我们首先正式定义了广义类别发现(Generalized Category Discovery,GCD)的任务。简而言之,我们考虑的问题是对数据集中的图像进行分类,其中一部分图像具有已知的类别标签。任务是为所有其余的图像分配类别标签,使用的类别可能在已标记的图像中有出现,也可能没有出现(参见图1,左侧)。

正式地,我们如下定义广义类别发现(Generalized Category Discovery,GCD)。我们考虑一个数据集 D,包含两个部分:DL = {(xi, yi)}N
i=1 ∈ X × YL 和 DU = {(xi, yi)}M
i=1 ∈ X × YU,其中 YL ⊂ YU。在训练过程中,模型无法访问 DU 中的标签,并且在测试时需要预测它们。此外,我们假设有一个验证集 DV = {(xi, yi)}N‘
i=1 ∈ X × YL,它与训练集不相交,并且包含与已标记集中的类别相同的图像。这个形式化定义使我们能够清楚地看到与新类别发现设置的区别。新类别发现(Novel Category Discovery,NCD)假设 YL ∩ YU = ∅,并且现有方法在训练过程中依赖于这个先验知识。

在本节中,我们将介绍我们提出的解决GCD问题的方法。首先,我们描述了我们的方法。利用自监督表示学习的最新进展,我们提出了一种简单而有效的方法,基于对比学习,使用半监督k-means算法进行分类。接下来,我们开发了一种估计未标记数据中类别数量的方法,这是一个在文献中研究较少的具有挑战性的任务。最后,我们通过修改最先进的NCD方法RankStats [18]和UNO [13]来适应我们的设置,构建了两个强基线用于GCD。

总的来说,我们的方法利用自监督学习、对比学习和半监督聚类来应对GCD的挑战,并为具有未知或新类别的图像分类提供有效的解决方案。

3.1 我们的方法

我们在开放世界环境中进行图像识别的方法的关键洞察是消除对参数化分类头的需求。相反,我们直接在深度网络的特征空间中进行聚类(见图1,右侧)。分类头(通常是在学习到的嵌入之上的线性分类器)最好使用交叉熵损失进行训练,但已经证明对于噪声标签敏感[12]。此外,在训练未标记类别的线性分类器时,一种典型的方法是为未标记实例生成(带有噪声的)伪标签。这表明参数化分类头容易在未标记类别上性能下降。最后,我们注意到,由于必要性,分类头必须从头开始训练,这进一步使它们容易在标记类别上过拟合。
因此,我们的方法的关键思想是在深度网络的特征空间中直接进行聚类,而不依赖于参数化的分类头。这样可以避免参数化分类头对噪声和未标记类别的敏感性,并减少在标记类别上过拟合的风险。

与此同时,自监督对比学习已被广泛应用于NCD中的预训练,以实现稳健的表示[23,52]。此外,当与视觉变换器结合使用时,它生成的模型是很好的最近邻分类器[6]。受此启发,我们发现通过对ViT模型进行对比训练,可以直接在模型的特征空间中进行聚类,从而消除了可能导致过拟合的线性头的需求。具体而言,我们使用噪声对比损失[16]在所有图像上训练表示,而不使用任何标签。这一点很重要,因为它避免了将特征过度拟合到(部分)标记类别的子集。我们还为标记实例添加了进一步的监督对比组件[24],以利用标记数据(见图1,右侧中间行)。
因此,我们通过自监督对比学习训练ViT模型,生成了具有鲁棒表示的模型,并直接在特征空间中进行聚类。这样可以避免线性头导致的过拟合问题,并充分利用标记数据和未标记数据的特点。

3.1.1 表示学习

我们在所有方法中使用了一个预训练的视觉转换器(ViT-B-16)[11],该转换器是使用DINO(Decoupled Intra- and Inter-Instance)[6]方法在(未标记的)ImageNet [10]数据集上进行自监督训练得到的。首先,这样做的动机是因为DINO模型是一个强大的最近邻分类器,这表明在其特征空间中进行非参数聚类可能会取得良好的效果。其次,自监督学习的视觉转换器已经展示了在没有人工注释的情况下学习关注对象重要部分的优势。我们发现这个特性对于这个任务是有用的,因为哪些对象部分对于分类是重要的可能会很好地从标记的类别转移到未标记的类别中(参见第4.5节)。
最后,我们希望反映一个真实和实际的设置。在NCD的文献中,通常会从头开始训练一个ResNet-18 [20]作为目标任务的骨干网络。然而,在真实世界的设置中,模型通常使用大规模预训练的权重来优化性能(通常是ImageNet有监督预训练)。为了避免与我们的实验设置冲突(假设有限的标记集合),我们使用了自监督训练的ImageNet权重。为了增强表示,使其更适应我们拥有的标记和未标记数据,我们还通过在标记数据上进行监督对比学习和在所有数据上进行无监督对比学习的方式,共同对目标数据进行表示微调。
形式上,设xi和x i是小批量B中同一图像的两个视图(随机增强)。无监督对比损失被写为:
在这里插入图片描述
其中zi = φ(f(xi))和1[n =i]是一个指示函数,当且仅当n = i,τ是一个温度值。f是特征主干,并且Φ是多层感知器(MLP)投影头。
监督对比损失被写为:
在这里插入图片描述
其中N(i)表示在小批量B中具有与xi相同的标签的其它图像的索引。最后,我们将批次的总损失构造为:
在这里插入图片描述
其中BL对应于B的标记子集,并且λ是权重系数。仅在对比框架中使用标签,而不是在交叉熵损失中使用标签,这意味着未标记和标记的数据被类似地处理。监督对比组件仅用于将网络推向语义上有意义的表示,从而最小化标记类上的过拟合。

3.1.2半监督k-means的标签分配

给定数据的学习表示,我们现在可以为每个未标记的数据点分配类或聚类标签,无论是来自标记的类还是看不见的新类。我们建议使用非参数方法,而不是像在NCD中常见的那样参数化地执行此操作(以及对标记数据的过拟合风险)。也就是说,我们建议将经典的k-均值算法修改为约束算法,通过强制将DL中的实例分配到基于其地面真实标签的正确集群。注意,这里我们假设知道聚类的数量k。我们解决的问题,估计这个参数在第二。3.2.首字母|YL|基于地面实况类标签获得DL的质心,并且基于地面实况类标签获得附加的质心。|YU \YL|(新类的数量)初始质心是从DU获得的,其中k均值++ [1]约束在DL的质心上。在每个质心更新和集群分配周期期间,来自DL中的相同类的实例总是被强制具有相同的集群分配,而DU中的每个实例可以基于到不同质心的距离被分配到任何集群。在半监督k-means收敛之后,DU中的每个实例可以被分配聚类标签。我们在附录B中提供了一个清晰的图表。

3.2估计未标记数据中的类数

在这里,我们解决了在未标记的数据中找到类的数量的问题。在NCD和无监督聚类设置中,通常假设数据集中类别数量的先验知识,但这在现实世界中是不现实的,因为标签本身是未知的。为了估计DU中的类别数量,我们利用DL中可用的信息。具体来说,我们在整个数据集D上执行k均值聚类,然后仅在标记子集上评估聚类准确性(参见第二节)。4.1对于度量的定义)
通过运行匈牙利算法[28]来评估聚类准确性,以找到聚类索引集和地面真实标签之间的最佳分配。如果簇的数量高于类的总数,则额外的簇被分配给空集合,并且分配给那些簇的所有实例被认为是预测错误的。相反,如果聚类的数量低于类的数量,则额外的类被分配给空集合,并且具有那些地面真值标签的所有实例都被认为是被错误地预测的。因此,我们假设,如果在k太高或太低的情况下执行聚类(跨D),则这将反映在DL上的次优聚类准确度中。换句话说,我们假设当k = 1时,标记集合上的聚类准确度将最大化。|YL ∪ YU|。这种直觉导致我们使用聚类准确度作为“黑盒”评分函数,ACC = f(k; D),我们用布伦特算法优化以找到最优k。与[18]中的方法不同,该方法穷尽地迭代所有可能的k值,我们发现黑盒优化允许我们的方法扩展到具有许多类别的数据集。最后,我们强调,标记集与不同的粒度将导致不同的估计的类的数量。然而,我们建议,标签集定义的分类系统,一个真实世界的数据集的粒度是不是一个固有的属性的图像,而是一个框架所施加的标签。例如,在斯坦福大学汽车中,数据集同样可以在“制造商”、“模型”或“变体”级别进行标记,其中分类系统由分配的标签定义。

3.3 两个强基线

我们采用两种方法,从最近的图像识别子领域,新的类别发现(NCD),我们的广义类别发现(GCD)的任务。RankStats [18]被广泛用作新类别发现的竞争基线,而UNO [13]据我们所知是NCD的最先进方法。
基线:RankStats+ RankStats在共享特征表示之上训练两个分类器:第一头部被馈送来自标记集合的实例,并且利用交叉熵损失来训练,而第二头部仅看到来自未标记类的实例(再次,在NCD设置中,标记类和未标记类是不相交的)。为了使RankStats适应GCD,我们使用数据集中类总数的单个分类头来训练它。然后我们训练第一个|YL|在一些实施例中,所述方法包括:训练具有交叉熵损失的头部的元素,并且训练具有具有伪标签的二进制交叉熵损失的整个头部。
基线:UNO+与RankStats类似,UNO使用分类头进行训练,用于标记和未标记的数据。然后以SwAV类的方式训练模型[5]。首先,生成一个批次的多个视图(随机增强)并将其馈送到同一模型。对于批次中的标记图像,使用地面真实标签用交叉熵损失来训练标记头部。对于未标记的图像,针对给定视图收集预测(来自未标记头部的对数),并将其用作伪标签,利用该伪标签优化来自其他视图的损失。为了适应这种机制,我们简单地将标记的和未标记的头部连接起来,从而允许为未标记的样本生成的伪标签属于数据集中的任何类。

4.实验

4.1.实验设置

我们在提出的设置中在六个数据集上展示了结果。对于每个数据集,我们从训练集中选择一组在训练过程中具有标签的类别。我们从这些类别中进一步随机选择50%的图像作为标记集合DL。来自这些类别的剩余实例以及所有其他类别的实例构成了未标记集合DU。我们还根据每个数据集的测试或验证集划分构建了用于标记类别的验证集。
在这里插入图片描述
表1.我们实验中使用的数据集。我们展示了标记集和未标记集中类的数量(|YL|、|YU|),以及图像数量(|DL|、|DU|).

我们首先在三个通用物体识别数据集上展示结果:CIFAR10、CIFAR100和ImageNet-100。ImageNet-100指的是随机子采样的包含100个类别的ImageNet数据集。这些数据集能够验证方法在标准图像识别文献中的表现。

我们进一步在最近提出的语义漂移基准测试(Semantic Shift Benchmark,SSB,包括CUB和Stanford Cars)以及Herbarium19上进行评估。SSB提供了细粒度的评估数据集,具有清晰的"语义变化轴",并且提供了DU的类别,这些类别在语义上与DL有明确的区分。因此,用户可以确信识别系统是基于真实的语义信号来识别新类别,而不仅仅是对数据中的低级分布变化做出反应,这可能适用于通用物体识别数据集。Herbarium19的长尾性质为评估增加了额外的挑战。

这些细粒度数据集进一步反映了图像识别系统在许多实际应用中的使用情况,这些系统部署在具有许多相似对象的受限环境中(例如超市中的产品、交通监控或野外动物跟踪)。实际上,Herbarium19数据集本身就代表了GCD的一个实际应用案例:虽然我们大约知道有40万种植物,估计还有大约8万种尚未被发现,但如果手动进行,从植物采集到植物物种描述目前需要大约35年的时间[42]。我们在表1中总结了我们评估中使用的数据集拆分,并在附录A中提供了更多细节。
**评估指标:**对于每个数据集,我们在D上训练模型(在没有访问DU中的真实标签的情况下)。在测试阶段,我们使用以下公式来衡量实际标签yi与模型的预测ˆyi之间的聚类准确性:
在这里插入图片描述
在公式中,M表示DU的大小,P(YU)表示未标记集合中类标签的所有排列。我们的主要指标是对“全部”实例的准确性ACC,表示在整个未标记集合DU上的图像识别准确性。我们还报告“旧类别”子集(属于YL中类别的DU中的实例)和“新类别”子集(属于YU \ YL中类别的DU中的实例)的值。

在公式中,我们使用匈牙利最优分配算法[28]计算出对排列集合的最大值。重要的是,我们仅对所有类别YU执行一次匈牙利分配,并在之后仅对“旧类别”和“新类别”子集进行分类准确性的测量。匈牙利分配的执行时间以及子集的分类准确性之间的交互作用可能不直观,在附录E中进行了详细说明。
实施细节所有方法都使用DINO预训练的ViT-B-16骨干网络,并使用输出的[CLS]标记作为特征表示。所有方法训练200个epochs,使用在验证集上的准确率选择最佳模型。我们对所有方法的最后一个transformer block进行微调。对于我们的方法,我们使用初始学习率为0.1微调vision transformer的最后一个block,并使用余弦退火调度来衰减学习率。我们使用批大小为128,并在损失函数(见公式(3))中使用λ = 0.35。此外,遵循自监督学习的标准做法,在应用对比损失之前,我们通过非线性投影头对模型的输出进行投影。我们使用与[6]中相同的投影头,并在测试时丢弃它。对于NCD的基准方法,我们尽可能地遵循原始实现和学习计划,并参考原始论文以获取详细信息[13, 18]。
最后,为了估计k,我们对从考虑的基准数据集中提取的DINO特征运行我们的k估计方法。我们在一个受限域上运行Brent算法来确定k的值,其中最小值设置为|YL|,最大值设置为所有数据集的1000个类别。

4.2. 与基线模型比较

我们在表2和表3中报告了所有比较方法的结果。作为额外的基准,我们还报告了在原始DINO特征上直接运行k-means的结果(表示为k-means)。表2展示了通用对象识别数据集的结果,而表3展示了SSB和Herbarium19的结果。我们在附录D中还展示了来自SSB的FGVC-Aircraft [31]评估结果。

总体而言(在DU中的“所有”实例中),我们的方法在标准图像识别数据集上相对于RankStats+和UNO+基线提升了9.3%的绝对值和11.5%的比例。同时,在更具挑战性的细粒度评估中,我们的方法相对于基线提升了8.9%的绝对值和27.0%的比例。

我们发现在具有标记示例的类别(“旧”类别)上,使用参数化分类器的基线方法可能表现优于我们的方法,但这是以“新”类别上的ACC为代价的。我们还发现,如果基线方法训练时间更长,它们将开始以牺牲“旧”类别的ACC为代价来提高“新”类别的ACC,但通过监测验证集上的性能并采用提前停止策略可以获得最佳的整体性能。
在这里插入图片描述

4.3 评估类的数量

我们在表格4中报告了关于估计类别数量的结果。我们发现在通用物体识别数据集上,我们可以非常接近未标记集合中的类别数量,最大误差为10%。在细粒度数据集上,我们报告了平均差异为18.9%。我们注意到这些数据集的高度挑战性,其中许多组成类别在视觉上非常相似。
在这里插入图片描述

4.4 消融实验

在表5中,我们检查了我们提出的方法的各个组成部分的贡献。具体而言,我们确定了以下方法的重要性:ViT骨干网络;对比度微调(常规和监督);以及半监督k-means聚类。

ViT骨干网络行(1)和(2)显示了ViT模型在聚类任务中的效果,其中(1)和(2)分别代表了使用ResNet-50模型和使用DINO训练的ViT-B-16模型。相比之下,ResNet模型的性能在“Old”和“New”类别上平均要差近20%。为了将这个差距与模型整体能力区分开来,请注意ImageNet线性探针的差异(这是自监督模型的标准评估协议)大约为3%[6]。与此同时,在ImageNet上的k-NN准确率差异约为9%[6],这解释了为什么ViT模型在聚类任务中表现更好。
在这里插入图片描述
图2显示了在CIFAR10数据集上通过ResNet-50和使用DINO自监督训练的ViT模型生成的特征的t-SNE可视化,以及经过我们方法微调的ViT模型生成的特征。t-SNE是一种降维和可视化技术,用于将高维数据映射到二维或三维空间,以便观察数据之间的相似性和聚类情况。
通过比较这些可视化结果,可以看出使用ViT模型生成的特征在数据聚类方面表现更好。特别是经过我们方法的微调后,ViT模型的特征更好地捕捉到了CIFAR10数据集中的类别之间的相似性和差异性。这进一步支持了我们先前提到的ViT模型在聚类任务中的优越性。

对比微调: 在行(2)-(5)中,我们展示了在目标数据集上引入不同组合的对比微调对结果的影响。我们发现,仅使用对比方法中的任何一种相对于使用原始的DINO特征只能带来相对较小的改进。我们发现,只有当结合自监督和有监督的对比损失在目标数据集上进行训练时,才能实现最大的效益。具体而言,对比损失的组合使我们在CIFAR100上的聚类准确性进一步提高了19%,在Herbarium19上提高了16%(在这种情况下准确性翻倍)。

这表明在目标数据集上结合自监督和有监督的对比损失能够显著提升聚类准确性,为我们的方法带来更好的性能。

半监督k-means: 通过半监督聚类可以进一步提高性能。在CIFAR100和Herbarium19的“所有”类别中,我们观察到ACC分别增加了2%和7%。在Herbarium19上,“旧”类别的ACC提高了19%。有趣的是,在CIFAR100的“旧”类别上,半监督k均值似乎略微降低了性能。我们认为这是匈牙利算法的一个特例,该算法选择将一些“干净”的聚类分配给“新”类别的真实标签,以最大化整体的ACC。这可以在CIFAR100的“新”类别中半监督方法提供的10%提升中观察到。此外,我们发现如果我们独立地对“旧”和“新”实例执行匈牙利算法(在评估过程中允许重复使用干净的聚类),半监督k均值可以提高所有数据子集上的ACC。有关报告的ACC和匈牙利分配之间的交互作用的更多细节,请参考附录E。
总结: 综述总体而言,我们发现我们方法的各个组成部分单独来看都不能在我们的基准数据集上取得良好的性能。具体来说,视觉变换器骨干和对比度微调的组合使得在模型的特征空间中能够直接进行强大的k均值聚类。半监督k均值算法进一步允许我们通过标签指导聚类过程,并在精细分类数据集中实现更好的ACC,特别是在“新”类别上。我们进一步在图2的TSNE可视化中阐明了这一观点,该可视化是在CIFAR10数据集上进行的。我们展示了原始ResNet-50和ViT DINO特征的TSNE投影,以及我们模型的特征。对于ResNet-50特征,同一类别的点通常被投影到彼此附近,表明它们可能在简单的变换(例如线性探测)下是可分离的。然而,它们并没有形成明确的聚类,暗示了这些特征在下游聚类性能方面的不足。相反,ViT特征形成了更清晰的聚类,通过我们的方法进行训练后进一步区分了这些聚类。

在这里插入图片描述

4.5 定性结果

最后,为了更好地理解我们模型的性能,我们可视化了其注意力机制。具体地,在图3中,我们观察了最终的多头注意力层在支持输出[CLS]标记(我们将其用作特征表示)时对不同空间位置的关注程度。我们分别展示了经过DINO预训练模型和我们方法训练后的注意力图。我们可视化了Stanford Cars和CUB数据集中“Old”和“New”类别的图像的注意力图。
在[6]中已经证明,DINO模型中的不同注意力头关注图像的不同区域,而无需人工注释。我们发现这确实是这样的,不同的头部关注图像的不重叠区域,并且通常关注重要的部分。然而,在使用我们的方法进行训练后,我们发现注意力头更专注于语义部分,显示出更加集中和局部化的注意力。通过这种方式,我们认为模型学会关注一组在“Old”和“New”类别之间可迁移的部分,从而使其能够更好地从标记数据中推广知识。
在这里插入图片描述
图3. 在使用我们方法进行微调之前(左)和之后(右)的DINO-ViT模型的注意力可视化。对于斯坦福汽车和CUB数据集,我们展示了来自“已知”类别的图像(每个数据集的第一行)和来自“新”类别的图像(每个数据集的第二行)。我们的模型学习将注意力头(显示为列)专门用于不同的语义意义部分,这些部分可以在有标签和无标签的类别之间进行转移。模型的注意力头学习到了汽车的“挡风玻璃”、“车头灯”和“车厢”,以及鸟类的“喙”、“头部”和“腹部”。对于两个模型,我们选择具有尽可能专注的注意力头。建议以彩色和放大的形式观看。

5 总结

在本文中,我们提出了一种新的图像识别设置,即“广义类别发现”(GCD)。我们从这项工作中得出了三个要点:首先,GCD是一个具有挑战性和现实性的图像识别设置;其次,GCD消除了现有图像识别子领域(如新类别发现和开放集识别)中的限制性假设;第三,尽管参数化分类器在广义设置中往往会过拟合于有标签的类别,但直接对经过对比训练的ViT模型特征进行聚类在分类任务中表现出惊人的效果。

扩展

在这里插入图片描述
图4. 以k = 5为例展示了半监督k均值算法。给定部分标记的数据点(初始数据),我们首先通过计算每个标记类别的标记数据点的平均值来初始化|YL| = 3个质心(以彩色点表示)。从这些质心开始,我们在未标记数据(黑色点)上运行k均值++算法(虚线箭头),以进一步获得|YU \ YL| = 2个质心(质心初始化)。在获得k = 5个质心(彩色星号)之后,我们通过确定每个数据点距离最近的质心来为每个数据点分配一个簇标签(簇分配),然后我们可以通过计算每个簇中所有数据点的平均值来更新质心(质心更新)。我们迭代地重复进行簇分配和质心更新的循环,直到k均值算法收敛。在每个循环中,我们强制标记数据点遵循其真实标签,即相同类别的所有标记点落入同一簇中。

A 数据集细节

在《广义类别发现》的设置中,我们描述了本文中使用的每个数据集中构成“旧”和“新”类别的类别。
对于所有数据集,我们将50%的类别作为“旧”类别(YL),将其余的类别作为“新”类别(YU \ YL)。唯一的例外是CIFAR100数据集,我们将80个类别作为“旧”类别,遵循新类别发现文献的做法。对于通用对象识别数据集,我们使用前|YL|个类别(根据类别索引)作为“旧”类别,其余类别作为“新”类别。对于Semantic Shift Benchmark套件中的数据集,我们使用[45]提供的数据拆分。对于Herbarium19数据集,为了考虑到数据集的长尾特性,我们从总类别列表中随机选择“旧”类别。关于数据拆分的更多细节可以在主论文的表1中找到,并在此项目的开源代码中找到。

B 半监督 K-means

在《广义类别发现》(GCD)的半监督k均值算法中,我们在图4中详细说明了该算法(来自主论文的第3.1.2节)。

C 评估类的数量

在主论文的第3.2节中,我们提供了图5,用于解释我们算法的动机,该算法用于估计数据集中的类别数量(k = |YL ∪ YU|)。具体而言,我们绘制了在整个数据集(DL∪DU)上运行k-means聚类算法时,标记子集(DL)上的聚类准确性如何随k的变化而变化,对于一系列数据集。可以看到,对于所有数据集,标记子集上的聚类准确性大致遵循一个钟形函数。此外,当在每个数据集上使用大致的真实类别数运行k-means聚类时,该函数达到最大值,这表明通过优化此最大值来确定总类别数量是合理的方法。
在这里插入图片描述
图5显示了随着我们在整个数据集(DL ∪ DU)上运行k-means,并在不同的k下,标记子集(DL)上的聚类准确性的变化。CIFAR10、CIFAR100、ImageNet-100和CUB中的真实类别数分别为[10, 100, 100, 200]。
在这里插入图片描述
Table 6. 语义漂移基准套件[45]中FGVC-Aircraft [31]数据集的结果。

[Table content]

D FGVC-Aircraft数据集上的结果如下

我们在语义漂移基准套件[45]中的第三个细粒度数据集(FGVC-Aircraft [31])上运行了基线方法和我们的方法,并在表6中报告了结果。

E 匈牙利算法和聚类精度

在这里,我们强调了匈牙利分配算法的执行方式和所有方法报告的聚类准确度之间的一种可能令人意想不到的相互作用。

背景 匈牙利算法的目的是找到模型预测的簇索引和地面真实标签之间的最佳匹配。例如,考虑一个包含两个类别{1, 2}的简单情况,其中有一个“旧”类别YL = {1}和一个“新”类别YU \ YL = {2}。我们进一步假设数据集有4个实例,地面真实标签为{1, 1, 2, 2},模型将它们分配给簇为{2, 2, 1, 1}。这里的“簇”可以是传统意义上的簇(例如我们方法中的特征空间中的点的簇),也可以只是由线性分类器预测为相同类别标签的一组实例(例如基准方法)。匈牙利算法通过解决地面真实标签和簇索引之间的线性分配(1 → 2, 2 → 1)来确保在这种情况下报告100%的聚类准确度(因为实例被正确地聚类在一起)。

我们的评估协议 如第4.1节所述,我们一次计算整个DU中的所有实例的匈牙利算法。这给出了模型预测,这些预测与地面真实标签的“参照框架”相一致。然后,在给定这些模型预测之后,我们使用地面真实标签从“旧”类别和“新”类别中选择实例,然后计算这些子集内的正确预测百分比(聚类准确度)。

传统NCD评估协议 在公开的实现中,我们发现在新颖类别发现文献中 [13, 18] 对这些子集的聚类准确度进行了不同的计算。具体而言,NCD文献首先使用地面真实标签来确定哪些实例属于“旧”和“新”类别,然后在每个子集上单独计算匈牙利分配。重要的是,这样可以重复使用相同的发现的簇。我们认为这在一定程度上给出了对数据子集上模型性能过于乐观的看法,不完全反映真实的图像识别设置。
说明 左侧图6的图表显示了两个发现的簇(‘Cluster 1’和’Cluster 2’),以及它们构成的实例的地面真实标签(实心蓝色和黄色圆圈)。蓝色圆圈表示来自“旧”类别(例如“狗”)的图像,黄色圆圈表示来自“新”类别(例如“猫”)的图像。圆圈的半径表示实例的数量。

在右侧,我们展示了“传统NCD”评估协议,用于“旧”和“新”数据子集,其中匈牙利分配在每个数据子集上独立计算两次。例如,评估首先只考虑“旧”实例(蓝色圆圈),分配算法将旧类别分配给Cluster 1。然后,计算ACC作为Cluster 1中“旧”实例的数量与“旧”实例的总数之比。然而,随后,评估只关注“新”实例(黄色圆圈),再次使用Cluster 1,并将其分配给新类别。因此,Cluster 1被重复使用,使得评估可以在两个数据子集上报告高的ACC。

相比之下,可以在所有实例上计算匈牙利分配,强制将Cluster 2分配给一个地面真实类别。这样,其中一个数据子集的性能必然较低。这是我们在本文中计算“旧”和“新”类别的ACC的方式,并在图中标记为“Ours”。

最后,我们展示了在未标记集合中计算“全部”类别的ACC的方法。这个协议在本文和新颖类别发现文献中都遵循。

F 注意力图

在这里,我们对图3中的注意力可视化进行进一步展开。我们首先描述了构建这些可视化的过程,然后在图7中提供了更多的示例。

可视化构建注意力可视化是通过考虑不同的注意力头如何支持输出[CLS]标记并关注不同的空间位置来构建的。具体来说,考虑ViT模型最后一个块的输入X ∈ R(HW+1)×D,其中HW表示模型输入的每个HW个补丁对应的特征,加上一个对应于[CLS]标记的特征。这里,HW = 14 × 14 = 196个补丁,分辨率为16×16像素。这些特征传递给多头自注意力(MHSA)层,可以描述为:
MHSA(X) = [head1, . . . , headh]W0,
其中
headj = Attention(XWQ
j ,XWK
j ,XWV
j )。
换句话说,该层包含了多个注意力头(在ViT模型中为h = 12),每个头都独立地关注模块的输入特征。我们参考文献[44]。
对于每个特征i∈X,为每个注意力头j生成一个注意力向量Aij ∈ [0, 1]HW+1,描述每个头j如何将每个特征与其他特征相关联。

我们只关注[CLS]标记的注意力值A0j,并进一步只关注关注空间位置的元素。我们发现,尽管有些注意力头的注意力图不易解释,但某些头专门关注一致的语义对象部分。

关于注意力可视化的讨论,我们在图7中提供了更多的注意力可视化。我们展示了与图3中相同的注意力头(既有使用我们方法训练的模型,也有使用原始DINO模型训练的模型)。

首先,我们注意到DINO特征通常关注显著的对象区域。例如,在斯坦福汽车示例中,模型的“Head 1”通常集中在汽车的车轮上,而在CUB示例中,模型的“Head 2”通常关注鸟的头部。然而,总体而言,使用预训练的DINO模型,同一头的注意力图之间的语义一致性相对较小(即在每个数据集的列内)。

相比之下,我们发现使用我们方法训练的模型以语义上有意义的方式专门关注注意力头。所展示的头部对应于斯坦福汽车模型的“Windshield”、“Headlight”和“Wheelhouse”,以及CUB模型的“Beak”、“Head”和“Belly”。我们发现这些图相对于姿态和尺度变化等干扰因素相对稳健,并且对图像中的干扰对象具有一定的容忍性。我们还注意到一个失败案例(第二行最右边的图像),因为“Wheelhouse”注意力头被迫关注汽车的杂散区域,因为在这个图像中,汽车的车轮室是不可见的。
模型能够识别和区分对象的不同语义部分对于GCD任务非常有用。特别是在细粒度设置中,对象的组成部分(例如鸟类的“头部”、“喙”、“腹部”等)在“旧”和“新”类之间具有迁移性。因此,我们认为模型的注意力机制使其能够将对标记的“旧”类的理解推广,并应用到未标记的“新”类上。
在这里插入图片描述
Figure 6. 匈牙利算法对最终聚类准确性(ACC)的影响的示例。左侧图像显示了两个发现的聚类(‘Cluster 1’和’Cluster 2’)以及其组成实例的真实标签(实心彩色圆圈)。右侧图像展示了当匈牙利分配仅计算一次时如何计算ACC(‘Ours’),以及当匈牙利分配针对’Old’和’New’类别分别计算时如何计算ACC(‘Legacy NCD’)。

G 更广泛的影响和局限性

G. 更广泛的影响和局限性

我们的方法以无监督的方式为图像分配标签,包括发现新的标签。与标准的图像分类方法相比,它应该在敏感环境中谨慎使用(例如通过手动检查结果)。例如,在处理个人数据等敏感内容时应格外小心。

我们还注意到一些实际限制。首先,我们假设标记和未标记子集之间不存在领域转移。例如,我们没有解决单一模型可靠分类相同类别的照片和绘画的问题。其次,我们没有考虑流式设置(也称为连续学习):随着新数据的出现,需要从头开始重新训练模型。

至于实验中使用的数据,我们以与其许可证兼容的方式使用标准的第三方数据集。其中一些数据集包含互联网图像,通常偶然涉及到人物 - 可以参考[2, 35, 47]对隐私影响的深入讨论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄阳老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值