在本文中,作者研究了新类发现(Novel Class Discovery (NCD))的问题。NCD的目标是通过利用包含不同但相关类的标记集的先验知识来推断未标记集中的新对象类别 。现有的方法通过考虑多个目标函数来解决这个问题,通常包括分别涉及标记样本和未标记样本的专门损失项,此外还需要辅助正则化项。
在本文中,作者引入了一个新类发现任务的统一目标函数(UNO),其明确的目标函数有利于监督学习和无监督学习之间的协同作用。使用多视图自标记策略,生成可以与ground truth标签同源处理的伪标签,使得在已知类和未知类上都可以用单一目标进行分类。尽管UNO很简单,但在几个基准测试上表现都比较不错(在CIFAR-100上为≈+10%,在ImageNet上+8%)。
A Unified Objective for Novel Class Discovery
论文:https://arxiv.org/abs/2108.08536
代码:https://github.com/DonkeyShot21/UNO
深度学习使计算机视觉领域取得了惊人的进展。然而,对于这些模型的大型标注训练集的必要性往往是一个限制因素。例如,训练一个深度神经网络进行分类需要为每个感兴趣的类别提供大量的标记数据。在为每个类收集足够数据是非常困难的情况下,这种约束甚至更加严重,例如在医疗应用程序中。
为了缓解这些问题,新类发现(NCD)最近已经成为一个实用的解决方案。NCD的目标是训练一个网络,它可以对一组有标记的数据进行分类,同时在一个未有标记的图像集中发现新的类。这背后的motivation是网络受益于在标记集上可用的监督信号,以学习丰富的图像表示,可以转移到发现未标记集中的未知类 。在训练时,数据被分割成一组标记图像和一组未标记图像(假设类集不相交)。这两组训练集同时用来训练单个网络来对已知类和未知类进行分类。这个问题与半监督学习相似但不同,因为在后者中,前提是标记集和未标记集共享相同的类。在NCD中,这两组类应该是不相交的。此外,与常见的聚类场景不同,在NCD框架中,标记数据可以在训练时被利用,其挑战在于在已知类上转移监督知识,以改进未知类的聚类。大多数NCD方法通常在标记集上执行初始监督预训练步骤,然后在未标记数据集上执行聚类的步骤。这个简单的pipeline提供了一种有效的方法来将表示能力从标记的集合转移到未标记的集合。一般来说,这些方法结合了两个独立的目标。一方面,通过标签集上的标签进行直接监督。另一方面,使用聚类目标来发现新的类别。聚类目标通常是基于在未标记集上估计的伪标记。在实践中,这些目标分别通过独立的损失函数进行组合,如cross-entropy(CE)和 binary cross-entropy(BCE)。BCE损失是用成对的伪标签来计算的,通常是通过设置一个特殊的阈值来确定的,但这严重影响了这些方法的性能。此外,NCD方法通常需要标记类和未标记类之间的强语义相似性,以获得发现新类的表达性特征表示。为了减少特征对已知类别的偏差,以前的一些工作提出在监督预训练前,对所有可用的图像使用一个额外的自监督预训练阶段。此外,另一个自监督目标加强了聚类阶段,迫使该模型对同一图像的两个不同数据增强输出相似的预测。添加一个额外的辅助目标会使这个模型的优化更加麻烦,因为它需要进一步调整这些目标函数的超参数。此外,该方法假设在预训练阶段具有未标记集的可用性。这在顺序学习时是不合适的,因为每次未标记的集合发生变化时,都需要重复进行自监督预训练阶段,这样成本是非常高的。
受简化NCD方法的启发和自监督学习的最新进展的启发,本文提出通过单个损失函数来消除自监督的预训练步骤,并统一所有的训练目标(如上图所示)。具体来说,使用多视图自标记策略,生成可以用ground-truth标签同源处理的伪标签。这使得在标记集和未标记集上使用统一的交叉熵损失成为可能。给定一个Batch的图像,使用随机转换生成每个图像的两个视图。然后,网络预测了每个视图的所有类(标记为+未标记)的概率分布。这将产生了两个独立Batch的子集,由于是同一张图片的不同数据增强结果,因此每个视图都可以作为其他视图的伪标签。然后结合ground-truth和伪标签,向网络提供反馈并更新其参数。使用一个基于完整类集的统一框架,我们能够学习一个可以共同识别标记类和未标记类的单个模型。在NCD任务中,训练数据被分为两组:一个标记集和一个未标记集。任务的目标是使用来发现,其中是预先已知的。
假设标记类的集合与未标记类的集合是不相交的。在测试时,模型的目标是对标记类和未标记类对应的图像进行分类。我们将这个问题表述为学习从图像域到完整标签集的映射,其中,对应于,而随后的对应于从聚类过程中应该出现的潜在类。
3.1. Unified Objective
为了解决NCD问题,作者提出训练一个由θ参数化的神经网络θ,它计算Y上的后验概率θ。本文的模型结构如上图所示,它由一个共享的编码器E和两个头h和g组成。编码器E是一个标准的卷积网络(CNN),然后是一个平均池化层,用于编码图像的特征:第一个头h是一个具有个输出神经元的线性分类器。另一方面,g使用一个多层感知机(MLP),它将z投影到一个低维表示z',以及一个具有个输出神经元的线性分类器来实现。然后,将h和g分别产生的logits和 concat起来得到,。将它们输入到共享的softmax层σ,输出完整标签集的后验分布:στ,其中τ是softmax的温度参数。得到了p的概率分数之后,我们就可以使用标准的交叉熵来训练整个网络f:其中。图像x使用的标签y取决于还是。如果x属于标记数据集,我们对应用zero-padding,而如果,我们 zero-pad与x相关的伪标记,如下所示:
3.2. Multi-view and Pseudo-labeling
在本节中,我们介绍如何利用多视图策略来为统一目标生成伪标签。给定一个图像x,作者采用常见的数据增强技术,包括对x应用随机裁剪和颜色抖动,得到x的两个不同的“视图”(v1,v2),它们被调整到原始大小并输入给f。
如果是,,我们将v1和v2与相同的标签,关联起来。另一方面,如果,那么我们使用v1来计算和v2来计算。这样一来,公式(1)就可以独立地应用于每个视图。然而,这种方法并不鼓励网络对同一图像的不同视图输出一致的预测。为了强制执行这个目标,作者使用了交换的预测任务:
当计算上述公式中的每个项时,作者对伪标签应用了一个“stop-gradient”操作。注意,这两个损失项是应用于不同视图的相同目标的实例,因此他们的伪标签可以互换。关于伪标签的计算,一个简单方法就是将是直接使用的预测。但是在本文中,作者并没有采用这种方法。当计算时,作者添加了一个熵项,它惩罚所有logits相等的情况并激励了在上伪标签的统一分区。具体来说,设,,是一个矩阵,其列是由g对B大小的mini-batch图像计算的logits。此外,设,,为其行是当前batch处理的未知伪标签的矩阵。本任务就可以转换成下面的优化目标:其中是一个超参数,H是用于“散射”伪标签的熵函数,Tr是跟踪函数,定义如下:
3.3. Multi-head Clustering and Overclustering
为了提高聚类性能,作者结合主要的聚类任务,采用了过度聚类(强制f生成一个更细粒度的未标记数据的另一个分区),这能够提高特征表示的质量。与E相连的过度聚类头o与g相似,但有个聚类输出。
此外,作者还使用了多个聚类,,和过度聚类,,头。通过使用多个头,增加了反向传播到网络共享部分的整体信号。在训练时,对于给定的一个batch数据,我们迭代,,。对于每个头,我们将产生的logits与产生的logits concat起来。然后将结果送入到Softmax中,并计算交叉熵损失函数。同样的,对于每个头,也是将结果concat之后,进行Softmax,然后计算交叉熵损失函数。
4.1. Experimental Setup
上表展示了本文实验中采用的数据集,每个数据集中的类别和标注图片数量。
4.2. Ablation study
上表展示了消融实验的结果,通过单独去除本文的方法的每个核心成分,即logit连接、过度聚类和数据增强,验证每个模块的有效性。
4.3. Comparison with the state-of-the-art
上表展示了未标注数据类型上,不同数据集中,UNO和其他SOTA方法的性能对比。
上表展示了与CIFAR-10和CIFAR-100在标记类和未标记类上的最新方法的比较。上图展示了聚类精度(左)和相对增量(右)随着未标记类数量增加的变化结果。
4.4. Qualitative results
上图可视化共享的特征空间和头h和g的concat logit的结果。
在本文中,作者提出了一种简单的方法(UNO)来发现和学习在未标记数据集中的新类,同时利用了在标记数据集中使用监督学习提取的良好特征。本文的方法在统一目标中使用伪标签与ground-truth标签结合,从而使监督和无监督学习之间实现更好的合作和更少的干扰。
此外,本文的方法还消除了对昂贵的自监督预训练的需要,使NCD更加实用。作者通过广泛的实验和详细的分析,证明了提出的方法的有效性。研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV