TPAMI 2024 | 清华大学提出解决长尾分布视觉识别问题的概率对比学习

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达6c7348c8cf0387f5284c9701da4fa9a1.jpeg

Probabilistic Contrastive Learning for Long-Tailed Visual Recognition

长尾视觉识别的概率对比学习

Chaoqun Du; Yulin Wang; Shiji Song; Gao Huang


摘要

长尾分布经常出现在真实世界的数据中,大量的少数类别包含有限数量的样本。这种不平衡问题严重削弱了主要为平衡训练集设计的标准监督学习算法的性能。最近的研究表明,监督对比学习在缓解数据不平衡方面显示出有希望的潜力。然而,监督对比学习的性能受制于一个固有的挑战:它需要足够大的训练数据批次来构建涵盖所有类别的对比对,但在类别不平衡的数据背景下,这一要求很难满足。为了解决这一障碍,我们提出了一种新颖的概率对比(ProCo)学习算法,该算法估计特征空间中每个类别样本的数据分布,并相应地采样对比对。实际上,在小批量数据中,特别是对于不平衡数据,估计所有类别的分布是不可行的。我们的关键思路是引入一个合理且简单的假设,即对比学习中的归一化特征遵循单位空间上的冯·米塞斯-费舍尔(vMF)分布的混合,这带来了两方面的好处。首先,可以仅使用第一个样本矩估计分布参数,这可以跨不同批次以在线方式有效地计算。其次,基于估计的分布,vMF分布允许我们采样无限数量的对比对,并导出预期对比损失的封闭形式,以进行高效优化。除了长尾问题之外,ProCo还可以直接应用于半监督学习,通过为未标记的数据生成伪标签,随后可以反向估计样本的分布。从理论上讲,我们分析了ProCo的误差界限。从实证上讲,大量在监督/半监督视觉识别和目标检测任务上的实验结果表明,ProCo在各种数据集上始终优于现有方法。

关键词

  • 对比学习

  • 长尾视觉识别

  • 表示学习

  • 半监督学习

I. 引言

随着深度学习的快速发展和大型、组织良好的数据集的出现,计算机视觉任务(包括图像分类 [1]、[2]、[3]、目标检测 [4] 和语义分割 [5])取得了重大进展。这些数据集的精心标注确保了在开发过程中各类别之间的平衡 [6]。然而,在实际应用中,获得既平衡又涵盖所有可能场景的完整数据集仍然是一个挑战。现实世界中的数据分布往往遵循长尾模式,其特征是从头到尾每类样本数量呈指数级减少 [7]。这种数据不平衡对训练深度模型构成了相当大的挑战,因为由于这些类别的训练数据有限,模型泛化到不常见类别的能力可能会受到阻碍。此外,类别不平衡可能会导致对主导类别的偏倚,从而导致少数类别的性能不佳 [8]、[9]。因此,解决长尾分布问题对于计算机视觉任务在实际场景中的成功应用至关重要。

在应对长尾数据难题时,已经通过调整传统的交叉熵学习目标开发了多种算法 [10]、[11]、[12]、[13]。然而,最近的研究揭示,监督对比学习(SCL)[14] 可能在应对长尾分布方面作为更合适的优化目标 [15]、[16]。更准确地说,SCL故意将标签信息纳入正负对的构建中,以进行对比损失函数。与自监督学习不同的是,自监督学习通过对锚点的数据增强生成正样本,而SCL则从与锚点同类的样本中构建正样本。值得注意的是,最初对这种方法的探索已经产生了优于大多数为长尾分布设计的竞争算法的性能 [17]、[18]、[19]。

尽管有其优点,SCL仍然存在固有的限制。为了保证性能,SCL需要一个相当大的批量来生成足够的对比对 [14],这导致了巨大的计算和内存开销。值得注意的是,这一问题在现实世界的长尾数据设置中更加突出,在这种设置中,尾部类别在小批次或内存池中很少被采样。因此,损失函数的梯度主要受到头部类别的影响,导致尾部类别的信息不足,模型倾向于集中于头部类别而忽略尾部类别 [16]、[17]。例如,在Imagenet-LT数据集中,典型的4096批量大小和8192内存大小分别在212和89个类别中,平均每个小批次或内存池的样本不足一个。

fccef7321e35c21bc9a1b7af975818c9.png

在本研究中,我们通过一个简单但有效的解决方案来解决上述问题。我们的主要洞察力涉及考虑从实际数据分布中采样无限数量的对比对,并解决期望损失以确定优化目标。通过直接估计和最小化期望,避免了保持大批量的需求。此外,由于在期望中所有类别在理论上是等效的,现实世界数据中的长尾分布问题自然得到缓解。

然而,实施我们的想法并不简单,原因有两个:1)实际数据分布的建模方法通常很复杂,例如训练深度生成模型 [20]、[21]、[22];2)计算预期训练损失的封闭形式很困难。在本文中,我们通过提出一种新颖的概率对比学习算法同时解决了这两个挑战,如图1所示。我们的方法灵感来自一个有趣的观察,即深度特征通常包含丰富的语义信息,使它们的统计数据能够表示数据的类内和类间变化 [23]、[24]、[25]。这些方法使用正态分布从数据增强的角度对无约束特征进行建模,并获得期望交叉熵损失的上限以进行优化。然而,由于对比学习中特征的归一化,使用正态分布直接建模是不可行的。此外,不可能在小批次中估计所有类别的分布,特别是对于长尾数据。因此,我们采用了一个合理且简单的冯·米塞斯-费舍尔(vMF)分布来建模特征分布,vMF分布通常被认为是正态分布到超球面的扩展。它带来了两个优势:1)分布参数可以通过最大似然估计仅使用第一个样本矩来估计,这可以在训练过程中跨不同批次有效地计算;2)基于这种公式化,我们从理论上证明,当采样数量趋于无限时,可以严格导出预期损失的封闭形式,而不是上限,我们将其指定为ProCo损失。这使我们能够避免明确采样大量对比对,而是最小化一个替代损失函数,该替代损失函数可以高效优化,并且在推理期间不会引入任何额外开销。

此外,我们将提出的ProCo算法的应用扩展到更现实的、不平衡的半监督学习场景中,其中只有整个训练数据集的一小部分具有标签 [26]、[27]、[28]、[29]。半监督算法通常采用一种策略,即根据模型的预测为未标记的数据生成伪标签,并使用这些标签来规范化模型的训练过程。因此,ProCo算法可以通过生成基于ProCo损失的伪标签,直接应用于未标记的样本,随后可以反向估计特征分布。

尽管方法简单,但提出的ProCo算法表现出一致的有效性。我们在CIFAR-10/100-LT、ImageNet-LT、iNaturalist 2018和LVIS v1上进行了广泛的实证评估,结果表明ProCo在现有竞争性长尾识别方法的泛化性能上始终有所提高。此外,由于理论上ProCo独立于不平衡类别分布,还在平衡数据集上进行了实验。结果表明,ProCo在平衡数据集上也表现出更好的性能。

本研究的主要贡献概述如下:

  • 我们提出了一种新颖的概率对比学习(ProCo)算法来解决长尾识别问题。通过采用合理且简单的冯·米塞斯-费舍尔(vMF)分布来建模特征分布,我们可以跨不同批次高效地估计参数。ProCo通过从估计的分布中采样对比对,特别是在处理不平衡数据时,消除了SCL对大批量大小的固有限制(见图2)。

  • 我们基于估计的vMF分布导出了采样数量趋于无限时的预期监督对比损失的封闭形式,并从理论上分析了ProCo损失的误差界限(见第三节C部分)。这种方法消除了显式采样大量对比对的需求,而是专注于最小化替代损失函数。该替代损失函数可以高效优化,而无需在推理期间引入任何额外的开销。

  • 我们采用了提出的ProCo算法,以更现实的方式解决不平衡的半监督学习场景。这涉及到基于ProCo损失生成伪标签。随后,我们在各种分类数据集上进行了全面实验,以展示ProCo算法的有效性。

III. 方法

A. 预备知识

在本小节中,我们首先介绍预备知识,为引入我们的方法奠定基础。考虑一个标准的图像识别问题。给定训练集 ,训练模型将图像从空间 映射到空间 中的类别。通常,映射函数 被建模为一个神经网络,它由一个主干特征提取器 和一个线性分类器 组成。

Logit Adjustment [13] 是一种损失边际调整方法。它在训练和推理过程中采用每个类别的先验概率作为边际。Logit Adjustment 方法定义为:

其中 是训练或测试集中类别 的频率, 是类别 的logits。

监督对比学习(SCL)[14] 是无监督对比学习方法的泛化。SCL 旨在学习一个特征提取器 ,它可以区分具有相同标签 的正样本对 和具有不同标签 的负样本对 。给定任何一批样本-标签对 和温度参数 ,SCL损失的两种典型定义方式为 [14]:

其中 是批次 中标签为 的实例索引集, 是其基数, 表示由 提取的归一化特征:

此外, 和 分别表示log的位置相对的正样本对的和。正如在 [14] 中所展示的,两个损失公式并不等效,Jensen不等式 [70] 表明 。因此,SCL采用后者作为损失函数,因为它是前者的上限。

B. 概率对比学习

如前所述,对于批次中的任何样本,SCL 将具有相同标签的其他样本视为正样本,而将其余样本视为负样本。因此,批次中需要包含足够数量的数据,以确保每个样本接收到适当的监督信号。然而,这一要求效率不高,因为较大的批量通常会导致显著的计算和内存负担。此外,在实际的机器学习场景中,数据分布通常表现出长尾模式,在小批次内很少采样到尾部类别。这一特性需要进一步增大批量,以有效地监督尾部类别。

为了解决这个问题,我们提出了一种新颖的概率对比(ProCo)学习算法,该算法估计特征分布并从中采样以构建对比对。我们的方法灵感来自 [23]、[24],这些方法使用正态分布从数据增强的角度对无约束特征进行建模,并获得期望损失的上限以进行优化。然而,对比学习中的特征被约束在单位超球面上,这不适合直接用正态分布对其进行建模。此外,由于训练数据的不平衡分布,在小批次中估计所有类别的分布参数是不可行的。因此,我们引入了一个简单且合理的定义在超球面上的冯·米塞斯-费舍尔分布,其参数可以通过跨不同批次的最大似然估计进行有效估计。此外,我们严格推导出预期SupCon损失的封闭形式,而不是上限,以实现高效优化,并将其应用于半监督学习。

分布假设: 如前所述,对比学习中的特征被约束在单位超球面上。因此,我们假设特征遵循冯·米塞斯-费舍尔(vMF)分布的混合 [44],它通常被认为是正态分布到超球面的推广。随机 维单位向量 的vMF分布的概率密度函数为:

其中 是 维单位向量,, 且 表示阶数为 的第一类修正贝塞尔函数,其定义为:

参数 和 分别称为均值方向和集中参数。 越大,集中度越高,分布在均值方向 周围的集中度越高,当 时,分布在球面上变得均匀。

参数估计: 在上述假设下,我们采用vMF分布的混合来建模特征分布:

其中类别 的概率估计为 ,对应于训练集中类别 的频率。通过最大似然估计,估计特征分布的均值向量 和集中参数 。

假设从类别 的vMF分布中抽取了一系列在单位超球面 上的 个独立单位向量 。均值方向 和集中参数 的最大似然估计满足以下方程:

其中 是样本均值, 是样本均值的长度。对 的简单近似 [71] 为:

此外,每个类别的样本均值以在线方式通过聚合前一个小批次和当前小批次的统计数据来估计。具体来说,我们采用前一个epoch的估计样本均值进行最大似然估计,同时通过以下在线估计算法从零初始化维持当前epoch的新样本均值:

其中 是类别 在第 步的估计样本均值, 是类别 在当前小批次中的样本均值。 和 分别表示先前小批次和当前小批次中的样本数量。

损失推导: 基于估计的参数,一种直接的方法可能是从vMF分布的混合中采样对比对。然而,我们注意到,每个训练迭代中从vMF分布中采样足够的数据是效率低下的。为此,我们利用数学分析将样本数量扩展到无限,并严格推导出预期对比损失函数的封闭表达式。

命题1: 假设vMF分布混合的参数为 、 和 ,,并且让采样数 。那么我们得到预期的对比损失函数,其表达式为:

其中 ,, 是温度参数。

证明: 根据(2)中的监督对比损失的定义,我们有:

其中 是类别 的采样数,并满足 。

令 并省略常数项 ,我们得到以下损失函数:

。

通过利用vMF分布的期望和矩生成函数,我们得到公式(16):

。

类似于(12),我们可以从(3)中获得另一种损失函数,如下所示:

。

基于上述推导,我们得到了两种SupCon损失函数的预期公式。由于 强制执行了(1)中显示的边际调整,因此我们将其作为替代损失:

。

我们通过替代损失隐式地实现了无限对比样本的生成,并且可以以更加高效的方式对其进行优化。这个设计优雅地解决了SCL的固有限制,即依赖于大批量大小(见图2)。此外,特征分布的假设和参数估计能够有效地捕捉不同类别之间的特征多样性,使得我们的方法即使没有SCL那样的样本级对比,也能实现更强的性能(见表III)。

数值计算: 由于PyTorch仅提供了零阶和一阶修正贝塞尔函数的GPU实现,ProCo中高阶函数的高效计算方法之一是使用以下递推关系:

。

然而,当 的值不足够大时,这种方法表现出数值不稳定性。

因此,我们采用米勒递推算法 [72]。为了在ProCo中计算 ,我们按照以下步骤进行:首先,我们将 和 分别赋值为1和0。这里, 是一个选定的大正整数,在我们的实验中,我们设置 。然后,使用逆递推关系:

。

我们可以计算 时的 。从这个过程中得到的 的值记为 , 记为 。最后,我们可以按照以下步骤计算 :

。

整体目标: 遵循长尾识别中的常见做法 [16]、[17]、[18],我们采用了两分支设计。模型由基于线性分类器 的分类分支和基于投影头 的表示分支组成,投影头是一个MLP,它将表示映射到另一个特征空间,以便与分类器解耦。此外,两个分支共享一个主干网络 。对于分类分支和表示分支,我们分别采用简单有效的logit调整损失 和我们提出的损失 。最后,将两个分支的损失函数加权后相加,作为整体损失函数:

其中 是表示分支的权重。

算法1:ProCo算法

  1. 输入: 训练集 ,损失权重

  2. 随机初始化主干 、投影头 和分类器 的参数

  3. 对于 执行

  • 从 中采样一个小批次

  • 计算 和

  • 根据(8)和(10)估计 和

  • 根据(24)计算

  • 使用SGD更新

结束

输出:

总体而言,通过在训练期间引入额外的特征分支,我们的方法可以与分类分支一起通过随机梯度下降(SGD)算法进行高效优化,并且在推理期间不会引入任何额外开销。

与现有方法的兼容性: 特别地,我们的方法具有吸引力,因为它是一个通用且灵活的框架。它可以轻松地与应用于分类分支的现有工作相结合,例如不同的损失函数、多专家框架等(见表IX)。

我们的算法的伪代码如算法1所示。

C. 理论误差分析

为了进一步探讨我们方法的理论基础,我们为ProCo损失(如第20节所定义)建立了推广误差和超额风险的上限。为了简便起见,我们的分析集中于二分类场景,其中标签 属于集合 。

假设1: ,其中 表示温度参数, 表示特征空间的维度。

命题2(推广误差上限): 在假设1下,以至少 的概率,以下推广界适用于每个类别 ,对于估计的参数 和 ,该上限表示为:

所有类别的推广界,以至少 的概率,为:

,

其中 表示类别 中的样本数,,, 是条件在 上的 的协方差矩阵。

在我们的实验设置中, 并且 ,因此假设1在实践中是合理的。命题2表明推广误差间隙主要由样本量和数据分布方差控制。这一发现与 [13]、[73] 中的见解相符,证实了我们的方法不会在误差界中引入额外的因素,也不会扩大误差界。这在理论上确保了我们方法的稳健泛化能力。

此外,我们的方法依赖于关于特征分布和参数估计的某些假设。为了评估这些参数对模型性能的影响,我们推导了一个超额风险界限。该界限衡量了使用估计参数的期望风险与贝叶斯最优风险(即使用真实分布参数的期望风险)之间的偏差。

假设2: 每个类别的特征分布遵循由参数 和 表征的冯·米塞斯-费舍尔(vMF)分布。

命题3(超额风险界限): 在假设1和假设2下,以下超额风险界限成立:

,

其中 ,。

假设2是我们方法的核心假设。基于此,命题3表明,我们方法的超额风险主要受参数估计误差的一阶项控制。

D. 用于半监督学习的ProCo

为了进一步验证我们方法的有效性,我们还将ProCo应用于半监督学习。ProCo可以通过为未标记的数据生成伪标签直接应用,随后可以用于反向估计分布。在我们的实现中,我们证明了采用像FixMatch [66] 这样简单直接的方法生成伪标签会带来更好的性能。FixMatch的主要概念在于对未标记数据进行增强以生成两个视图,并使用模型对弱增强视图的预测生成强增强样本的伪标签。具体而言,由于我们方法中引入了特征分布,我们可以计算每个类别的弱增强视图的ProCo损失,以表示后验概率 ,从而实现伪标签的生成。

e05b562722782b81024c101b7b54aff6.png

E. 与相关工作的联系

在下文中,我们讨论了我们的方法与长尾识别的对比学习相关工作的联系。最近的研究提出在构建正负样本对时引入类别补偿。这些方法确保所有类别都出现在训练的每次迭代中,以重新平衡对比样本的分布。此外,研究人员还引入了对比学习中的边际修改,因为它的有效性。因此,我们主要讨论三个方面,即类别补偿、可计算表示和边际修改。类别补偿表示在对比学习中引入每个类别的全局表示以构建正负样本。可计算表示对应于从特征中计算出的类别补偿,而不是可学习参数。边际修改表示根据训练集中不同类别的先验频率调整对比损失,如(1)所示。

在我们的方法中,我们引入了基于特征分布的类别补偿,通过对特征的估计,这不是一个可学习参数。如果类别表示是一个可学习参数 ,并且我们忽略样本之间的对比,那么我们有以下对比损失:

,

其中 和 被归一化为单位长度, 是温度参数。这相当于一个余弦分类器(归一化线性激活)[75]——交叉熵损失的变体,已被应用于长尾识别算法 [16]、[76]、[77]。因此,单纯引入可学习参数 类似于分类分支中权重所起的作用,这得到了表III中实验证据的进一步验证。

相关工作总结在表I中。BatchFormer (BF) [74] 被提出用来使深度神经网络具备研究每个小批次内样本关系的能力。这是通过在图像之间构建一个Transformer编码器网络来实现的,从而揭示了小批次内图像之间的相互关系。BatchFormer 促进了每个标签的梯度向所有小批次图像的传播,这一概念与对比学习中使用的方法相似。

Embedding and Logit Margins (ELM) [73] 提出了同时强制执行嵌入和logit边际,并详细分析了在对比学习中引入边际修改的益处。TSC [15] 通过在训练过程中预生成和在线匹配均匀分布的目标引入类别表示。然而,这些目标不具有类别语义。Hybrid-PSC [18]、PaCo [17]、GPaCo [56] 和 BCL [16] 都引入了可学习参数作为类别表示。PaCo在构建对比样本时还强制执行边际修改。DRO-LT [55] 计算每个类别的质心,并将其用作类别表示,这是与我们方法最相关的工作。DRO-LT 中的损失函数和不确定性半径是从度量学习和鲁棒性角度的启发性设计。此外,DRO-LT 将样本和相应的质心视为正样本对。但与SCL不同,批次中的其他样本和质心被视为负样本对,忽略了其他样本的标签信息,这有些悲观。

与上述方法相比,ProCo严格来源于对比损失和特征分布的简单假设。此外,ProCo还强制执行边际修改,这是长尾识别的关键组成部分。第四节D部分展示了ProCo相对于上述方法的优越性。

IV. 实验

在本节中,我们验证了我们方法在监督/半监督学习中的有效性。首先,我们进行了各种分析实验来验证我们的假设并分析方法的每个组成部分,包括1)表示分支的性能,2)更多设置的比较,3)两种损失公式的比较,4)超参数的敏感性分析,5)数据增强策略。随后,我们将我们的方法与现有的长尾数据集(如CIFAR-10/100-LT、ImageNet-LT和iNaturalist 2018)上的监督学习方法进行了比较。最后,在平衡数据集、半监督学习和长尾目标检测任务上进行了实验,以确认我们方法的广泛适用性。

A. 数据集和评估协议

我们在四个流行的长尾图像分类数据集上进行长尾图像分类实验:CIFAR-10/100-LT、ImageNet-LT 和 iNaturalist。遵循 [11]、[76],我们根据训练样本的数量将所有类别分为三类:多次拍摄(> 100张图像)、中次拍摄(20-100张图像)和少次拍摄(< 20张图像)。在各自的平衡验证集上报告top-1准确率。此外,我们还在平衡图像分类数据集和长尾目标检测数据集上进行了实验,以验证我们方法的广泛适用性。实例分割的有效性通过计算在0.5到0.95的不同交并比(IoU)阈值下的平均平均精度(APm)进行评估,并汇总不同类别的结果。稀有类别、常见类别和频繁类别的AP值分别表示为APr、APc和APf,而检测框的AP表示为APb。

07d9acc3dfcb7af44212dd6003697cfc.png715861ae1e23c8e74659fb5d50ca6d48.png

CIFAR-10/100-LT: CIFAR-10-LT和CIFAR-100-LT是原始CIFAR-10和CIFAR-100 [78] 数据集的长尾变体,它们是通过对原始训练集进行采样而得出的。遵循 [10]、[12],我们用指数函数 采样CIFAR-10和CIFAR-100的训练集,其中 , 是原始训练集的大小, 是第 类的采样数量。CIFAR-10和CIFAR-100的原始平衡验证集用于测试。在我们的实验中,不平衡因子 被定义为最频繁类别和最不频繁类别之间的样本数量比率。我们将 设置为10、50、100这几个典型值。

ImageNet-LT: ImageNet-LT是在 [76] 中提出的,它是通过遵循幂值 的帕累托分布采样ImageNet的一个子集构建的。它由来自1000个类别的115.8k图像组成,其基数范围为1280到5。

iNaturalist 2018: iNaturalist 2018 [7] 是一个严重不平衡的大规模数据集。它包含8142个类别的437.5k图像,不平衡因子 ,基数范围为2到1000。除了长尾图像分类外,iNaturalist 2018还用于细粒度图像分类。

CUB-200-2011: 加州理工学院-加州大学圣地亚哥分校鸟类-200-2011 [79] 是用于细粒度视觉分类任务的一个重要资源。它包含11788张跨越200个鸟类亚类别的图像,分为两个集合:5994张用于训练,5794张用于测试。

48bdc3ff7f1e810b1b55c5b0f3ca045d.png

LVIS v1: 大词汇量实例分割(LVIS)数据集 [80] 因其广泛的分类而著名,涵盖1203个类别,具有高质量的实例掩码注释。LVIS v1 分为三个部分:包含10万张图像的训练集,包含19800张图像的验证(val)集,以及同样包含19800张图像的测试开发集。训练集中的类别根据其出现频率分为稀有(1-10张图像)、常见(11-100张图像)或频繁(超过100张图像)类别。

B. 实施细节

为了公平比较长尾监督图像分类,我们严格遵循 [16] 的训练设置。所有模型都使用动量设置为0.9的SGD优化器进行训练。

CIFAR-10/100-LT: 我们采用ResNet-32 [2] 作为主干网络。表示分支有一个输出维度为128,隐藏层维度为512的投影头。我们将对比学习的温度参数 设置为0.1。遵循 [16]、[17],我们对分类分支应用AutoAug [85] 和Cutout [86] 作为数据增强策略,对表示分支应用SimAug [51]。两个分支的损失权重均等分配()。我们以256的批量大小训练网络200个epoch,权重衰减为 。我们在前5个epoch逐步将学习率增加到0.3,并在第160和180个epoch将其降低10倍。除非另有说明,否则我们的组件分析遵循上述训练设置。为了更全面的比较,我们还以类似的学习率计划训练模型400个epoch,除了我们在前10个epoch对学习率进行预热,并在第360和380个epoch将其降低。

e570327ac947b5c2737b99bd25a7da5d.png6f43a613d95479d7671a60b2719343c6.png

为了评估ProCo在半监督学习任务中的有效性,我们将训练数据集划分为两个子集:标记集和未标记集。该划分是通过随机消除标签来进行的。我们主要遵循DASO [69] 建立的训练范式。DASO通过计算每个类别的平均特征向量来生成伪标签。DASO中的语义分类器被我们的表示分支替代进行训练。其余超参数与DASO中的保持一致。

ImageNet-LT & iNaturalist 2018: 对于ImageNet-LT和iNaturalist 2018,我们采用ResNet-50 [2] 作为主干网络,遵循大多数先前的工作。表示分支由一个输出维度为2048,隐藏层维度为1024的投影头组成。分类分支采用余弦分类器。我们将对比学习的温度参数 设置为0.07。RandAug [87] 作为分类分支的数据增强策略,SimAug用于表示分支。我们还为两个分支分配了相等的损失权重()。模型在256的批量大小下训练90个epoch,并采用余弦学习率计划。对于ImageNet-LT,我们将初始学习率设置为0.1,权重衰减设置为 。此外,模型在ResNeXt-50-32x4d [88] 作为主干网络下训练90个epoch,并在ResNet-50下训练180个epoch。对于iNaturalist 2018,我们将初始学习率设置为0.2,权重衰减设置为 。

C. 组件分析

表示分支的性能: 由于ProCo基于表示分支,我们首先分析单个分支的性能。图2展示了在批次大小变化时不同方法的性能曲线。我们遵循SCL [14] 的两阶段训练策略和超参数。在第一阶段,模型仅通过表示分支进行训练。在第二阶段,我们训练一个线性分类器来评估模型的性能。从结果中,我们可以直接观察到,BCL [16] 和SupCon [14] 的性能显著受到批次大小的限制。然而,ProCo通过引入每个类别的特征分布,有效地缓解了SupCon在批次大小上的限制。此外,表II中展示了不同类别补偿的比较。这里,EMA和质心原型表示类别表示是通过指数移动平均和特征向量的质心来估计的。正态分布表示我们采用正态分布来建模每个类别的特征分布,即使它们在归一化的特征空间中。与仅仅估计一个类别原型相比,ProCo通过估计每个类别的特征分布获得了更好的结果。实验证据还证实了第三节B部分中的理论分析,即vMF分布比正态分布更适合于特征分布建模。

5a76084e7c59119ae0c237fe8d793974.png2f5ccd4e8e08aea3af8dc3c14114f217.png

更多设置的比较: 结果总结在表III中,我们将ProCo与其他几种设置进行了比较,以明确相关组件的有效性。如表中所示,Logit Adjustment方法在与可学习类别表示相结合时未能在性能上实现改进(50.5% 对50.6%,51.8% 对51.9%)。这种实验证据表明两种方法在某种程度上的等价性。此外,将ProCo与SupCon损失 [14] 相结合会略微导致性能下降(52.6% 对52.8%)。这一结果强调了在捕捉特征多样性方面,特征分布和参数估计假设的有效性。

损失公式: 我们分析了不同损失公式对ProCo性能的影响。这两种公式是由不同的SupCon损失 [14] 推导出的,如命题1所示。表IV展示了在CIFAR-100-LT上不同损失公式的结果。我们可以观察到 优于 。

敏感性测试: 为了研究损失权重对模型性能的影响,我们在不平衡因子为100的CIFAR-100-LT数据集上进行了实验。结果如图3所示。很明显,当 设置为1.0时,模型表现出最佳性能。这表明通过将两个分支的损失权重设为相等可以实现最佳性能。因此,我们选择不对每个数据集进行详尽的超参数搜索,而是将相同的损失权重外推到其他数据集。

数据增强策略: 数据增强是提高模型性能的关键因素。为了研究数据增强的影响,我们在不平衡因子为100的CIFAR100-LT数据集上进行了实验。表V展示了AutoAug策略的影响。在强数据增强下,我们的方法实现了更大的性能提升,表明我们的方法在利用数据增强的益处方面的有效性。

5d2a769660f50028879eebdbae493596.png

D. 长尾监督图像分类

CIFAR-10/100-LT: 表VI展示了ProCo和现有方法在CIFAR-10/100-LT上的结果。ProCo在处理不同程度的类别不平衡时表现出优越的性能,尤其是在不平衡因子较高的情况下。在相同的训练方案下,我们主要与Logit Adjustment [13] 和BCL [16] 进行了比较。将基于对比学习的表示分支与分类分支相结合,可以显著提高模型的性能。我们的方法进一步增强了性能,并有效缓解了数据不平衡问题。特别是,在处理样本较少的类别时,我们的方法表现出显著的改进,在所有评估场景中都优于之前的所有方法。

ImageNet-LT: 在表VII中,我们展示了我们的方法在ImageNet-LT数据集上的表现。我们的结果在整体准确率和样本较少的类别中都超过了现有方法。这表明,表示分支与分类分支相结合,可以在长尾图像分类任务中实现优越的结果。结果还表明,ProCo在具有大规模数据集的实际应用中表现出了显著的性能改进,相较于之前的最先进方法表现出显著改进。从样本较少的类别的结果来看,ProCo的泛化能力显而易见,ProCo在这些类别上明显优于基线。

iNaturalist 2018: 表VIII中提供了iNaturalist 2018数据集上的实验结果。我们的方法在所有指标上都达到了最先进的性能,尤其是在样本较少的类别上。通过将表示分支纳入框架,我们可以有效地缓解长尾识别任务中常常出现的对头部类别的偏差。ProCo在所有现有方法中的整体性能提升显著,表明其在长尾数据分布的实际场景中的鲁棒性。

CUB-200-2011: 在表IX中,我们报告了我们的方法在CUB-200-2011数据集上的实验结果。结果表明,我们的方法不仅限于长尾识别,还可以有效地应用于细粒度分类任务。ProCo在所有指标上均优于现有方法,证实了其在各种视觉识别任务中的多功能性和有效性。

消融研究: 我们进行了消融研究,以进一步分析ProCo的每个组件对整体性能的贡献。结果如表X所示,表明每个组件在实现方法的高性能中都起着关键作用。特别是表示分支和特征分布假设的引入对性能的提升做出了显著贡献。

e534f0a00087c7770b6254335c799473.png

E. 长尾目标检测

LVIS v1: 表XI展示了我们的方法在LVIS v1数据集上的结果,表明其在长尾目标检测任务中的适用性。我们的方法在检测准确率上实现了显著提升,尤其是在稀有类别上。基于对比学习引入的表示分支使模型能够捕捉到更多样化的特征,导致在所有类别上的更好表现。此外,ProCo在整体性能上始终优于现有方法,并在LVIS v1数据集上实现了最先进的结果。

491ae13e5359f4c29ba2f81f8d695f9c.png5f88610e482da46a6ffe1a7bbfb23e00.png

F. 半监督学习

CIFAR-10/100-LT: 我们将ProCo扩展到半监督学习,并在表XII中报告了结果。结果表明,ProCo可以有效提高半监督学习算法在长尾数据集上的性能。通过基于ProCo损失生成伪标签,我们的方法可以更好地估计数据分布,从而提高准确性,尤其是对样本较少的类别。结果表明,即使在数据严重不平衡的情况下,ProCo在提高半监督学习任务的性能方面具有潜力。

ImageNet-LT & iNaturalist 2018: 我们进一步评估了ProCo在大规模半监督学习任务中的性能。结果如表XIII所示。ProCo在整体准确率和样本较少的类别上的准确率上始终优于现有方法。基于对比学习引入的表示分支显著提高了半监督学习任务的性能,尤其是在长尾数据分布的情况下。这些结果证实了ProCo在具有大规模数据集的实际应用中的有效性。

V. 结论

在本文中,我们提出了一种新颖的概率对比(ProCo)学习算法,用于长尾视觉识别。通过使用von Mises-Fisher分布的混合建模特征分布,我们可以跨不同批次估计分布参数,并导出预期对比损失的封闭形式。这种方法消除了对大批量大小的需求,并提高了对比学习在长尾数据集上的性能。此外,我们将ProCo扩展到半监督学习任务,展示了其广泛的适用性和有效性。大量关于监督/半监督图像分类、目标检测和平衡数据集的实验结果证实了我们的方法相较于现有方法的优越性。ProCo提供了一个通用且灵活的框架,可以轻松与现有方法结合,为长尾视觉识别任务的进一步进展铺平道路。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值