Subclass-balance的数据集和baseline方法介绍
数据集介绍
介绍三个常用的长尾识别(long-tailed recognition)基准数据集。以下是对这三个数据集的详细介绍及"LT"的含义:
1. CIFAR-100-LT
简介:
- 全名:CIFAR-100 Long-Tailed CIFAR-100-LT
- huggingface-cifar-100-LT
- 来源:由CIFAR-100数据集生成
- 特点:CIFAR-100是一个经典的图像分类数据集,包含100个不同类别、每类600张32x32像素的彩色图像。
- 数据集大小:under 60000张图片
- LT(Long-Tailed):在CIFAR-100-LT中,原始的类别均衡数据被重新分配,以创建一个长尾分布的数据集。这意味着某些类别的样本数将远多于其他类别,形成长尾结构。
数据集生成过程:
- 通过在类别均衡的基础数据集(CIFAR-100)上人工地减少某些类别样本的数量,从而创建出样本数量具有长尾分布的版本。
2. ImageNet-LT
简介:
- 全名:ImageNet Long-Tailed ImageNet-LT
- 来源:由ImageNet数据集生成
- 特点:ImageNet是一个大规模的图像数据集,常用于训练深度学习模型的图像分类任务,包含超过1000个类别,每个类别的图像数量大致均衡。
- 数据集大小:115800张图片
- LT(Long-Tailed):ImageNet-LT是从原始ImageNet数据集中通过人工减少某些类别的图像数量而生成的,形成一个长尾分布的数据集。
数据集生成过程:
- 类似于CIFAR-100-LT,ImageNet-LT通过在原始的平衡数据集上减少某些类别的样本数量来创建长尾分布数据集。
3. iNaturalist 2018
简介:
- 全名:iNaturalist 2018
- 来源:真实世界的自然图像数据集
- 特点:iNaturalist 2018是一个大规模的、来自自然界的图像数据集,包括成千上万的物种标签,它展示了自然界中物种的长尾分布。该数据集中某些物种的图像数量远多于其他物种。
- 数据集大小:There are a total of 8,142 species in the dataset, with 437,513 training images, and 24,426 validation images. Each image has one ground truth label.
数据集特点:
- 真实长尾分布:与CIFAR-100-LT和ImageNet-LT不同,iNaturalist 2018不是通过人为操作产生的长尾分布,而是自然界中真实存在的长尾分布。
LT(Long-Tailed)的含义
“LT"表示"Long-Tailed”,指的是数据集中类别样本数量不均衡的分布特征。具体来说,长尾分布(long-tailed distribution)中的某些类别(头部类)包含大量样本,而其他多数类别(尾部类)包含较少样本。这种分布使得模型在训练时更难以学习稀缺类别的特征,因此长尾识别(long-tailed recognition)任务在机器学习和深度学习中具有挑战性。
总结
- CIFAR-100-LT:人工生成的长尾分布数据集,源自CIFAR-100。
- ImageNet-LT:人工生成的长尾分布数据集,源自ImageNet。
- iNaturalist 2018:自然长尾分布的真实世界数据集。
这些数据集被广泛用于评估模型在长尾分布数据中的表现,帮助研究者开发和验证新的算法,以应对数据不均衡问题。
Baseline的方法介绍
下面是对段落中提到的几种基线方法(baseline methods)的详细介绍。我们将基线方法分为三类:类平衡分类器、单阶段平衡损失和对比学习方法。
1. 类平衡分类器(Class-Balancing Classifiers)
参考文献
Decoupling representation and classifier for long-tailed recognition
这些方法通过固定用交叉熵损失训练的表示(representation),并使用类平衡采样(class-balanced sampling)来训练分类器。
a. τ \tau τ-norm( τ \tau τ-normalized classifier)
- 简介: τ \tau τ-norm 是一种在测试时重新校准类别分布的方法,通过将验证集上的类条件概率校准来缩放分类器的输出分数。
- 优点:有效解决了长尾分布数据集中的类别不平衡问题。
b. LWS(Learnable Weight Scaling)
- 简介:LWS 是一种学习权重缩放的方法,通过在验证集上优化类别权重来调整训练后的分类器。
- 优点:提供了更好的泛化能力,特别是在不平衡数据集上的性能提升明显。
c. cRT(classifier Re-training)
- 简介:cRT 是一种在预训练表示的基础上重新训练分类器的方法。它首先用标准的交叉熵损失函数训练一个特征提取器,然后在冻结该提取器的情况下,用类平衡采样重新训练分类器。
- 优点:简单且有效,特别是在长尾数据集上的表现较好。
Classifier Re-training (cRT) 方法的主要步骤如下:
-
固定特征提取器(Backbone):
- 在初始化阶段,使用标准的交叉熵损失函数训练一个特征提取器,该特征提取器可以是任何预训练的深度学习模型(也称为Backbone)。这一阶段结束后,特征提取器的参数被固定,不再更新。
-
重新训练分类器:
- 接下来,保持特征提取器的参数固定,随机重新初始化分类器的权重 ( W ) 和偏置 ( b )。
- 使用类平衡采样(Class-Balanced Sampling)重新训练分类器。类平衡采样意味着在训练过程中,每个批次中的类样本数量按比例平衡,以确保少数类样本在训练中的影响力增强。
- 这一过程通常只进行少量的训练轮次(Epochs),因为特征表示已经是固定的,主要是为了调整分类器的权重以优化其在不平衡数据集上的性能。
-
实例引用:
- 类似的方法也在 Zhang et al. (2019) 的工作中用于长尾视频数据集的动作识别任务,这表明这种方法在不同的应用领域都有一定的适用性和成功的范例。
总体而言,cRT 的核心思想是将特征提取和分类器训练这两个步骤分离:
- 首先通过标准训练方法获取一个强大的特征表示。
- 然后在固定特征表示的情况下,通过类平衡采样重新训练分类器,从而有效应对类别不平衡问题。
这一方法有助于提高模型在长尾分布数据集上的性能,因为通过重新训练分类器,可以更好地利用少数类样本,从而提高它们的分类准确度。
下面通过一个具体的例子来解释什么是类平衡采样(Class-Balanced Sampling),以及它如何在重新训练分类器的过程中起作用。
假设我们有一个长尾数据集,其中包含三种不同的类别,分别是A、B和C。每个类别中样本数量如下:
- 类别A:1000个样本
- 类别B:100个样本
- 类别C:10个样本
在这种情况下,类别C显然是少数类,而类别A是多数类。如果我们直接从数据集中随机采样,那么大多数批次中的样本将主要来自类别A,这会导致模型在训练过程中更多地关注类别A,而忽视类别C。
类平衡采样的实施
类平衡采样的目标是确保在每个训练批次(Batch)中,各类样本的数量是相对平衡的。这可以通过以下方式实现:
-
确定每个类别在一个批次中的样本数量:假设我们设置的批次大小(Batch Size)为30,那么我们可以决定在每个批次中从每个类别中均匀采样10个样本。
-
步骤示例:
- 从类别A中随机采样10个样本。
- 从类别B中随机采样10个样本。
- 从类别C中随机采样10个样本。
这样每个批次中就包含了30个样本,其中各类别的样本数量是均衡的。
例子
假设我们的批次大小是30,采用类平衡采样进行训练,具体的样本选择如下:
-
批次1:
- 类别A样本:[A1, A2, A3, … A10]
- 类别B样本:[B1, B2, B3, … B10]
- 类别C样本:[C1, C2, C3, … C10]
-
批次2:
- 类别A样本:[A11, A12, A13, … A20]
- 类别B样本:[B11, B12, B13, … B20]
- 类别C样本:[C11, C12, C13, … C20]
通过这种方法,每个批次中各类别的样本数都是平衡的,即使在总体数据集中类别的分布是不平衡的。这可以确保模型在训练过程中能够同等关注到每个类别,从而更好地处理少数类样本的问题。
效果
通过类平衡采样,模型在重新训练分类器时,不会因为多数类样本的主导地位而忽视少数类样本,从而提高了少数类的分类性能。这对于长尾分布的数据集尤其重要,因为它帮助模型从不平衡的数据中学习到更平衡的表示和决策边界。
总结
类平衡采样是一种有效的策略,通过在每个训练批次中平衡各类样本的数量,来应对数据集中的类别不平衡问题。通过这种方法,模型可以更好地处理长尾分布数据集中的少数类,提高整体的分类性能。
2. 单阶段平衡损失(One-Stage Balancing Loss)
这些方法在训练过程中直接修改损失函数,使模型更加关注少数类。
a. CB Loss(Class-Balanced Loss)
- 简介:Class-Balanced Loss 是一种调整交叉熵损失的方式,以考虑每个类别的样本数量,从而更好地平衡类别之间的影响。
- 优点:自动调整类间权重,有助于减少长尾数据集中的偏差。
b. Focal Loss
- 简介:Focal Loss 是一种专为处理类别不平衡问题设计的损失函数。它通过减少对容易分类样本的损失贡献,并增加难分类样本的损失权重,使模型更加关注难分类样本。
- 优点:在处理严重不平衡的数据集时表现出色。
c. LDAM Loss(Label-Distribution-Aware Margin Loss)
- 简介:LDAM Loss 是一种标签分布感知的边缘损失,它通过在决策边界附近增加少数类的间隔,来提高少数类的分类性能。
- 优点:在长尾数据集上的泛化能力强,并有效提高少数类的分类准确度。
3. 对比学习方法(Contrastive Learning Methods)
这些方法通过对比损失(contrastive loss)训练特征提取器,然后在特征提取器的基础上学习分类器。
a. SCL(Supervised Contrastive Learning)
- 简介:SCL 利用有监督的标注信息,优化对比损失函数,使同类样本在特征空间中靠近,而异类样本远离。
- 优点:增强了特征表示的判别力,对少数类的效果显著。
b. KCL(k-positive Contrastive Loss)
- 简介:引入了 k-正样本对比学习(KCL)。KCL的核心思想是,通过在特征空间中保持每个类别的正样本数量相等,来平衡特征空间,减少头部类别的主导性。
KCL的损失函数 L K C L \mathcal{L}_{KCL} LKCL 表达如下:
L K C L = ∑ i = 1 N − 1 k + 1 ∑ z p ∈ P i k ~ log exp ( z i ⋅ z p ⊤ / τ ) ∑ z a ∈ V ~ i exp ( z i ⋅ z a ⊤ / τ ) \mathcal{L}_{KCL} = \sum_{i=1}^{N} -\frac{1}{k+1} \sum_{z_p \in \tilde{P_i^k}} \log \frac{\exp(z_i \cdot z_p^{\top} / \tau)}{\sum_{z_a \in \tilde{V}_i} \exp(z_i \cdot z_a^{\top} / \tau)} LKCL=i=1∑N−k+11zp∈Pik~∑log∑za∈V~iexp(zi⋅za⊤/τ)exp(zi⋅zp⊤/τ)
其中, P i k P_i^k Pik 是从 P i P_i Pi 中随机抽取的 k k k 个正样本。通过这个方法,KCL能够在特征空间中更好地平衡每个类别的影响,从而提升模型在长尾数据集上的表现。
- 优点:KCL通过控制每个类别的正样本数量,减弱了头部类别对特征空间的主导作用,从而改善了模型对尾部类别的识别能力。
c. SwAV(Swapped Assignments between Views)
We learn features by Swapping Assignments between
multiple Views of the same image (SwAV).
SwAV:https://proceedings.neurips.cc/paper_files/paper/2020/file/70feb62b69f16e0238f741fab228fec2-Paper.pdf
- 简介:SwAV 是一种新的对比学习方法,通过交换不同视角之间的分配来增加数据的多样性,从而提高特征学习的泛化能力。
- 优点:不需要对比大量负例,训练效率高,特征表达强。
d. PCL(Prototype Contrastive Learning)
- 简介:PCL 引入了原型(prototype)的概念,通过对比样本和类原型之间的距离进行训练,使特征表示更具判别力。
- 优点:在长期任务中更加鲁棒,特别是在类不平衡数据集中表现优异。
Prototypical contrastive learning of unsupervised
representations. PCL
e. TSC(Tail-Sensitive Contrastive Learning)
- 简介:TSC 是一种对长尾数据集特别敏感的对比学习方法。它通过引入额外的损失项,使模型在训练过程中更加关注少数类样本,同时保持对多数类的良好表现。
- 优点:有效地处理长尾分布,显著提升少数类的分类性能。
总结
这些基线方法通过不同的策略来应对长尾数据集中的类别不平衡问题。类平衡分类器通过在固定的表示上重新训练分类器,来平衡类别分布。单阶段平衡损失方法通过在训练过程中调整损失函数,使模型更加关注少数类。对比学习方法则通过优化特征提取器,使同类样本在特征空间中更加接近,从而提高分类性能。每种方法都有其独特的优势和适应场景。
Evaluation
用于评估一种对比学习方法(例如SBCL)和其他对比学习方法在长尾数据集上的表现。以下是这段文字的详细解释:
评估协议步骤
-
两阶段框架:
- 第一阶段:使用对比学习方法训练特征提取器(Feature Extractor)。对比学习方法的目标是通过使用无监督或自监督的方式使同类样本在特征空间中接近,而不同类样本相互远离。
- 第二阶段:在已学习到的表示上训练线性分类器(Linear Classifier)。也就是说,在第一阶段得到的固定特征表示的基础上,通过有监督的方式训练一个线性分类器。
-
数据集与具体方法:
- CIFAR-100-LT 数据集:对该数据集上的线性分类器进行训练时,使用LDAM损失(Large Margin Cosine Loss)和类别重加权(Class Re-weighting)方法。这些方法是为了应对长尾分布,改善少数类的表现。
- ImageNet-LT 和 iNaturalist 2018 数据集:对这些数据集上的线性分类器进行训练时,使用交叉熵损失(CE Loss)和类别平衡采样(Class-Balanced Sampling)。这些技术帮助在不平衡数据集中提升分类器的性能。
-
结果报告:
- 所有结果均取多个试验(5次,不同的随机种子)的平均值,以保证结果的稳定性和可信度。
- 总体Top-1准确率:这是模型分类性能的主要评估指标,即在所有测试样本中,模型预测正确的样本所占的比例。
-
大数据集的细分评估:
- 对于两个大数据集(ImageNet-LT和iNaturalist 2018),除了总体Top-1准确率之外,还按类别样本数的不同进行细分评估:
- Many-shot 类别:样本数超过100的类别。
- Medium-shot 类别:样本数在20到100之间的类别。
- Few-shot 类别:样本数少于20的类别。
- 这一细分评估方法源于之前的相关工作,目的是更加详细地分析模型在不同数据丰富性类别上的表现。
- 对于两个大数据集(ImageNet-LT和iNaturalist 2018),除了总体Top-1准确率之外,还按类别样本数的不同进行细分评估:
-
超参数和实现细节:
- 具体的实现细节和重要的超参数设置在附录A.2中给出。这部分内容通常包括训练过程中使用的学习率、批次大小、训练轮次等具体细节。
总结
这段文字提供了一种系统化的评估方法,用于测试对比学习方法在长尾分布数据集上的有效性。通过这种评估协议,可以全面地了解模型在总体数据以及不同样本量类别上的表现,从而更好地比较和改进各种模型。
使用不同的损失函数和策略来训练线性分类器,是基于各数据集的特点以及不同方法在这些数据集上的经验效果。这种选择涉及多个方面的考量:
数据集规模和复杂性
-
CIFAR-100-LT:
- CIFAR-100-LT是CIFAR-100的长尾版本,包含较少的类间样本(即每类样本数量较少)。
- LDAM损失和类别重加权:
- LDAM损失:LDAM (Label distribution aware margin loss) 是一种设计来增强少数类表现的损失函数。它利用大的边距分离来抵消长尾数据分布中少数类样本的劣势。
- 类别重加权:类别重加权通过赋予少数类样本更大的权重,使得模型更关注这些少样本类别,从而提升它们的分类性能。
- 这些方法在较小且数据稀疏的长尾数据集(如CIFAR-100-LT)上通常表现较好,因为它们重点解决了少数类样本在训练过程中可能被忽视的问题。
-
ImageNet-LT 和 iNaturalist 2018:
- 这些数据集相较于CIFAR-100-LT要大而且更加复杂,包含更多的类别和更加不平衡的样本分布。
- 交叉熵损失 (CE Loss) 和类别平衡采样:
- 交叉熵损失:经典的CE损失是一种广泛使用并且理解较深的损失函数,对于大规模数据集而言,通常是直接有效的选择。
- 类别平衡采样:通过在每个训练批次中平衡各类样本数量,类平衡采样确保了模型在训练过程中对每一类样本都能有足够的关注,从而提升整体性能。
- 这种组合适用于大规模数据集,原因之一是它们可以充分利用大数据量的特性。类平衡采样能有效缓解大数据集中的类不平衡问题,而不必依赖损失函数的复杂变体。
经验效果
在不同的数据集上,不同方法的表现会有所不同,可能出于以下原因:
- 模型适应性:某些模型架构和损失函数在特定类型的数据集上能表现更好,基于其学习特性和优化策略。例如,LDAM在处理少量数据且数据类别不平衡的情况下表现不错。
- 计算复杂度和开销:复杂的损失函数(如LDAM)和策略(如类别重加权)可能在大数据集上带来较高的计算开销。而CE损失以及类平衡采样的实现相对简单,更适合大规模数据集的训练。
- 已有研究与验证:已有的研究工作(参考文献)可能对不同方法在不同数据集上的效果有过评估和验证,因此选择较优的方法进行对比和改进。
总结来说,对于CIFAR-100-LT使用LDAM和Class Re-weighting,是为了在一个较小且样本不平衡显著的数据集上增强少数类的表现;而对于ImageNet-LT和iNaturalist 2018,则选用CE Loss和Class-Balanced Sampling,这种组合在大规模且复杂的数据集中,能更有效地平衡类间样本数量并提升整体的分类性能。
model2
您提出了一个很好的问题。这种选择确实看起来有些不一致,但可能有几个原因:
-
数据集规模和复杂性:
- CIFAR-100-LT 是一个相对较小的数据集,而 ImageNet-LT 和 iNaturalist 2018 是大规模数据集。
- 对于较小的数据集,LDAM 可能更有效,因为它能更精细地调整决策边界。
- 对于大规模数据集,简单的 CE Loss 配合采样策略可能已经足够有效。
-
计算效率:
- LDAM 和 Class Re-weighting 在小数据集上计算效率高,但在大数据集上可能会增加计算负担。
- CE Loss 和 Class-Balanced Sampling 在大数据集上更容易实现和优化。
-
实验一致性:
- 研究者可能是遵循了之前的研究结果或惯例。CIFAR-100-LT 上使用 LDAM 和 Class Re-weighting 可能是基于先前研究的成功经验。
- 对于 ImageNet-LT 和 iNaturalist 2018,可能是延续了之前研究中的方法,以保持结果的可比性。
-
特定数据集的特性:
- 不同数据集的长尾分布特性可能不同,需要不同的处理方法。
- CIFAR-100-LT 的长尾特性可能更适合使用 LDAM 和 Class Re-weighting。
-
实验目的:
- 研究者可能想要展示他们的方法在不同的训练策略下都能表现良好。
-
方法适用性:
- LDAM 可能在某些大规模数据集上效果不如预期,而在 CIFAR-100-LT 上表现更好。
总的来说,这种选择可能是基于多方面考虑的结果,包括实验效果、计算效率、以往研究结果和特定数据集的特性等。要完全理解这个选择,可能需要查看原论文中的详细解释或联系作者获取更多信息。