论文标题
《Deep Long-Tailed Learning: A Survey》
深度长尾学习: 调查
作者
Yifan Zhang、Bingyi Kang、Bryan Hooi、Shuicheng Yan(IEEE Fellow)和 Jiashi Feng
来自新加坡国立大学计算机学院、字节跳动 AI Lab 和 SEA AI Lab
初读
摘要
-
长尾类别不平衡(long-tailed class imbalance):
- 深度长尾学习是视觉识别领域最具挑战性的问题之一,旨在从大量遵循长尾类分布的图像中训练出性能良好的深度模型。近十年来,深度学习已成为学习高质量图像表征的强大识别模型,并在通用视觉识别领域取得了显著突破。
- 然而,长尾类不平衡是实际视觉识别任务中的一个常见问题,往往限制了基于深度网络的识别模型在实际应用中的实用性,因为它们很容易偏向于优势类,而在尾类上表现不佳。为解决这一问题,近年来开展了大量研究,在深度长尾学习领域取得了可喜的进展。
-
本文工作:
-
考虑到这一领域的快速发展,本文旨在全面考察深度长尾学习的最新进展。
-
具体来说,我们将现有的深度长尾学习研究分为三大类,并按照这一分类法详细回顾了这些方法。
- 类再平衡(class re-balancing)
- 信息增强(information augmentation)
- 模块改进(module improvement)
-
随后,我们对几种最先进的方法进行了实证分析,通过新提出的评价指标(即相对准确度)评估了这些方法在多大程度上解决了类不平衡问题。
-
最后,我们强调了深度长尾学习的重要应用,并为未来研究指明了几个有前途的方向。
-
结论
- 在本次调查中,我们按照类再平衡、信息增强和模块改进的分类方法,广泛回顾了 2021 年中期之前提出的经典深度长尾学习方法。
- 我们根据新提出的相对准确度指标,对几种最先进的长尾方法进行了实证分析,评估了这些方法在多大程度上解决了类不平衡问题。
- 随后,我们讨论了长尾学习的主要应用场景,并确定了方法和任务设置的潜在创新方向。我们希望这份及时的调查报告不仅能让研究人员和社区更好地了解长尾学习,还能促进未来的研究。
再读
Section 1 Introduction
-
深度学习:
深度学习允许由多个处理层组成的计算模型学习多层次抽象的数据表示,并在计算机视觉领域取得了令人难以置信的进展。深度学习的关键推动因素是大规模数据集的可用性、GPU 的出现以及深度网络架构的进步。凭借学习高质量数据表征的强大能力,深度神经网络已成功应用于许多视觉判别任务,包括图像分类、物体检测和语义分割。
-
长尾类分布(long-tailed class distribution):
-
在现实世界的应用中,训练样本通常呈现长尾类分布,即一小部分类拥有大量样本点,但其他类只与少数几个样本相关。
-
然而,这种训练样本数量的类不平衡使得基于深度网络的识别模型的训练非常具有挑战性。如图 1 所示,训练好的模型很容易偏向于拥有大量训练数据的头部类别,导致模型在数据有限的尾部类别上表现不佳 。
- 图片注解:长尾数据集的标签分布(例如 iNaturalist 物种数据集,有 8000 多个类别)。在这些采样中学习到的头类特征空间往往大于尾类,而决策边界通常偏向于优势类。
-
因此,通过经验风险最小化的常见做法训练的深度模型无法处理具有长尾类不平衡的实际应用,例如人脸识别、物种分类、医学图像诊断、城市场景理解和无人机检测。
-
-
调查时限:
为解决长尾类不平衡问题,近年来开展了大量深度长尾学习研究。尽管这一领域发展迅速,但仍然没有系统的研究来回顾和讨论现有的进展。为了填补这一空白,我们旨在对 2021 年中之前开展的长尾学习研究进行全面调查。
-
技术分类:
-
如图 2 所示,我们根据现有方法的主要技术贡献将其分为三大类,这些类别又可进一步分为九个子类:
- 类再平衡(class re-balancing)
- 重新采样(re-sampling)
- 类敏感学习(class-sensitive learning)
- Logit 调整(logit adjustment)
- 信息增强(information augmentation)
- 迁移学习(transfer learning)
- 数据增强(data augmentation)
- 模块改进(module improvement)
- 表示学习(representation learning)
- 分类器设计(classifier design)
- 解耦训练(decoupled training)
- 集成学习(ensemble learning)
- 类再平衡(class re-balancing)
-
根据这一分类法,我们对现有方法进行了全面评述,并对几种最先进的方法进行了实证分析,使用新的评价指标(即相对准确度)评估了这些方法处理类不平衡的能力。最后,我们介绍了深度长尾学习在现实世界中的几种应用场景,并指出了几种有前途的研究方向,供业界在未来进行探索。
-
-
本文贡献:
我们将本研究的主要贡献总结如下。
- 据我们所知,这是第一份关于深度长尾学习的全面调查报告,它将为研究人员和社区提供对深度神经网络长尾视觉学习的更好理解。
- 我们对先进的长尾学习研究进行了深入回顾,并通过新的相对准确度指标评估了最先进的方法在多大程度上处理了长尾类不平衡问题,从而对这些方法进行了实证研究。
- 我们确定了方法创新的四个潜在方向,以及未来研究的八个新的深度长尾学习任务设置。
本调查报告的其余部分安排如下: 第 2 节介绍了问题的定义,并介绍了广泛使用的数据集、度量标准和应用。第 3 节全面回顾了先进的长尾学习方法,第 4 节基于新的评估指标对几种最先进的方法进行了实证分析。第 5 节指出了未来的研究方向。我们在第 6 节中结束本调查。
Section 2 PROBLEM OVERVIEW
问题概述
2.1 Problem Definition
问题定义
-
深度长尾学习:
深度长尾学习旨在从具有长尾类分布的训练数据集中学习深度神经网络模型,其中一小部分类具有大量样本,其余类仅与少数样本相关(参见图 1)。
-
公式化描述:
- 假设 { x i , y i } i = 1 n \{x_i,y_i\}^n_{i=1} {xi,yi}i=1n 是长尾训练集,其中每个样本 x i x_i xi 都有一个对应的类标签 y i y_i yi。
-
K
K
K 个类别的训练集总数为
n
=
∑
k
=
1
K
n
k
n=\sum^K_{k=1}n_k
n=∑k=1Knk,
- 其中 n k n_k nk 表示类别 k k k 的数据数;
- 令 π \pi π 表示标签频率向量,则 π k = n k / n \pi_k=n_k/n πk=nk/n 表示类别 k k k 的标签频率。
- 在不失一般性的前提下,长尾学习中的一个常见假设是,类按基数(cardinality)降序排序(即如果 i 1 < i 2 i_1<i_2 i1<i2,则 n i 1 ≥ n i 2 n_{i_1}\ge n_{i_2} ni1≥ni2,且 n 1 ≫ n K n_1\gg n_K n1≫nK),
- 然后不平衡率定义为 n 1 / n K n_1/n_K n1/nK。
-
挑战:
这项任务的挑战性在于两个方面:
- 各类数据数量的不平衡使得深度模型偏向于头部类别,而在尾部类别上表现不佳;
- 尾部类别样本的缺乏使得训练尾部类别分类模型更具挑战性。这种任务是基本任务,可能出现在各种视觉识别任务中,如图像分类、检测和分割。
2.2 Datasets
数据集
近年来,用于长尾学习的视觉数据集层出不穷,它们在任务、类数和样本数上各不相同。在表 1 中,我们总结了深度长尾学习领域广泛使用的九个可视化数据集。
长尾数据集统计。;"Det. "表示物体检测;"Seg. "表示实例分割。
-
表中的“Cls. ”表示图像分类
- 在长尾图像分类中,有四个基准数据集:
- ImageNet-LT:从 ImageNet 中按照帕累托分布采样,不平衡比为 256;
- CIFAR100-LT:从 CIFAR100 中按照帕累托分布采样,有三个不同不平衡比为 10、50、100 的变体;
- Places-LT:从 Places365 中按照帕累托分布采样,不平衡比为 996;
- iNaturalist 2018:是一个真实世界的长尾数据集,不平衡比为 500;
- 在多标签图像分类中,基准是 VOC-LT 和 COCO-LT,它们分别取自 PASCAL VOC 2012 和 COCO。
- 最近,针对长尾视频识别发布了一个大规模的 "未裁剪 "视频数据集,即 VideoLT。
- 在长尾图像分类中,有四个基准数据集:
-
"Det. "表示物体检测;"Seg. "表示实例分割。在长尾对象检测和实例分割方面,LVIS 提供精确的边界框和掩码注释,是广泛使用的基准。
2.3 Evaluation Metrics
评估指标
-
长尾学习试图在具有长尾类不平衡的数据上训练一个性能良好的模型。为了评估类不平衡的解决程度,通常会报告模型在所有类上的性能以及在类子集(即头部、中部和尾部类)上的性能。
-
原则:
评价指标应平等对待每个类。
-
测试集平衡时:
- 根据这一原则,top-1 准确率或错误率通常用于平衡的测试集,即每个测试样本都同等重要。
- 例如,在以往的研究中,top-1 精确度或错误率被广泛用于长尾图像分类,在这种情况下,通常假定测试集接近平衡。
-
测试集不平衡时:
- 通常采用平均精度(mean Average Precision,mAP)或宏观精度(macro accuracy),因为这两个指标对每个类别都一视同仁。
- 例如,mAP 则被用于长尾对象检测、实例分割和多标签图像分类,在这些应用中,测试集通常是不平衡的。
2.4 Applications
应用
深度长尾学习的主要应用包括图像分类、检测分割和视觉关系学习。
-
图像分类(Image Classification)
- 长尾学习最常见的应用是多类分类(multi-class classification)和多标签分类(multi-label classification)。
- 如第 2.2 节所述,在广泛使用的多类分类数据集(如 ImageNet、CIFAR 和 Places)和多标签分类数据集(如 VOC 和 COCO)中有许多人工采样的长尾数据集。基于这些数据集,提出了各种长尾学习方法,如第 3 节所示。
- 除了这些人工任务之外,长尾学习还被应用于现实世界中的各种应用,包括物种分类、人脸识别、人脸属性分类、布匹属性分类、年龄分类、铁路表面缺陷检测以及医学图像诊断。这些实际应用通常需要更精细的分辨能力,因为其类别之间的差异更为微妙。
- 由于这一新的挑战,现有的深度长尾学习方法在这些应用中往往会失败,因为它们只专注于解决类的不平衡问题,无法从本质上识别细微的类差异。因此,在探索处理这些应用的新方法时,值得考虑如何同时应对类不平衡和细粒度信息识别的挑战。
-
图像检测/分割(Image Detection / Segmentation)
- 物体检测和实例分割在长尾学习领域引起了越来越多的关注,其中大多数现有研究都是基于 LVIS 和 COCO 进行的。
- 除了这些广泛使用的基准外,人们还探索了许多其他应用,包括城市场景理解和无人驾驶飞行器检测。与 LVIS 和 COCO 上的人工任务相比,由于野外环境更加复杂,这些实际应用更具挑战性。例如,采集的图像可能来自不同的天气条件或一天中的不同时间,这可能导致多个图像域具有不同的数据分布和不一致的类偏度。
- 面对这些新挑战,现有的深度长尾学习方法往往会失败。因此,如何同时解决类不平衡和域偏移的挑战以处理这些应用值得探索。
-
视觉关系学习(Visual Relation Learning)
- 视觉关系学习对图像理解非常重要,在长尾学习领域正引起越来越多的关注。重要的应用包括长尾场景图生成、长尾视觉问题解答和图像字幕。
- 现有的长尾研究大多集中在判别性任务上,因此无法应用于上述需要对物体间关系或图像与文本间关系建模的应用。即便如此,探索现有长尾研究中的高层次思想(如类的重新平衡),为视觉关系学习设计适合应用的方法,还是很有意义的。
2.5 Relationships with Related Tasks
与相关任务的关系
我们简要讨论了几个相关任务,包括非深度长尾学习、类不平衡学习、少样本学习和域外泛化。
-
非深度长尾学习(Non-deep long-tailed learning)
-
针对长尾问题有很多非深度学习方法。它们通常利用先验知识来增强处理长尾问题的经典机器学习算法。例如,
-
利用类别间相似性的先验知识来正则化用于长尾对象识别的内核机器算法。
-
Pitman-Yor Processes(PYP)方法产生的长尾幂律分布先验被用于增强贝叶斯非参数框架的长尾主动学习。
-
采用人工分布先验构建尾类数据增强,以增强 KNN 和 SVM 的长尾场景解析能力。
-
-
几乎所有这些方法都是基于尺度不变特征变换(SIFT)、梯度方位直方图(HOG)或 RGB 颜色直方图来提取图像特征的。然而,这些表示方法无法为实际的视觉应用提取信息量大、区分度高的特征,因此在长尾学习中的表现有限。
-
最近,鉴于深度网络在图像表示方面的强大能力,深度长尾方法在长尾学习方面取得了显著的性能提升。更令人鼓舞的是,深度网络的使用还为长尾学习激发了大量新的求解范式,如迁移学习、解耦训练和集成学习等,这些将在下一节中介绍。
-
-
类不平衡学习(Class-imbalanced learning)
- 类平衡学习也试图从类平衡样本中训练模型。从这个意义上说,长尾学习可以看作是类不平衡学习的一个具有挑战性的子任务。
- 主要区别在于:
- 长尾学习的类遵循长尾类分布,而类不平衡学习则不需要;
- 在长尾学习中,类的数量通常很大,尾类样本往往非常稀少,而在类平衡学习中,少数类样本的数量绝对意义上并不一定很小。
- 这些额外的挑战导致长尾学习成为比类平衡学习更具挑战性的任务。尽管存在这些差异,但二者都寻求解决类不平衡问题,因此一些高层次的解决思路(如类再平衡)是共通的。
-
少样本学习(Few-shot learning)
少量学习的目的是通过每类有限数量的标注样本(如 1 或 5 个)来训练模型。在这方面,少样本学习可被视为长尾学习的一个子任务,在长尾学习中,尾类通常只有极少量的样本。
-
域外泛化(Out-of-domain Generalization)
域外泛化指的是一类任务,其中训练分布与未知测试分布不一致。这种不一致包括数据边际分布不一致(如领域适应和领域泛化)、类分布不一致(如长尾学习、开放集学习)以及前两种情况的结合。从这个角度看,长尾学习可视为域外泛化中的一项特定任务。
Section 3 CLASSIC METHODS
经典方法
如图 2 所示,我们根据现有深度长尾学习方法的主要技术特点,将其分为三大类,包括类再平衡、信息增强和模块改进。具体来说,类别再平衡包括三个子类别:重新采样、类别敏感学习(CSL)和对数调整(LA)。信息增强包括迁移学习(TL)和数据增强(Aug)。模块改进包括表征学习(RL)、分类器设计(CD)、解耦训练(DT)和集成学习(Ensemble)。根据这一分类法,我们在表 2 中对现有方法进行了分类,并对其进行了如下详细评述。
3.1 Class Re-balancing
类再平衡
类再平衡是长尾学习的主流范式,旨在重新平衡训练样本数量中类不平衡带来的负面影响。这类方法主要有三个子类别:重新采样(re-sampling)、类敏感学习(class-sensitive learning)和 logit 调整(logit adjustment)。我们首先介绍基于重新取样的方法,然后是对类敏感的学习和 logit 调整。
图片注解:2021 年中之前在顶级会议上发表的现有深度长尾学习方法汇总。主要分为三类:类再平衡、信息增强和模块改进。表中,"CSL "表示类敏感学习;"LA "表示对数调整;"TL "表示迁移学习;"Aug "表示数据增强;"RL "表示表示学习;"CD "表示分类器设计,旨在为长尾识别设计新的分类器或预测方案;"DT "表示解耦训练,即特征提取器和分类器分开训练;"Ensemble "表示基于集成学习的方法。此外,"目标方面(Target Aspect) "表示一种方法试图从哪个方面解决类不平衡问题。
3.1.1 Re-sampling
重采样
-
小批量随机梯度下降(mini-batch gradient descent with random sampling)的弊端:
- 传统的深度网络训练基于小批量随机梯度下降,即每个样本被抽样的概率相等。
- 然而,这种采样方式忽略了长尾学习中的不平衡问题,在每个样本小批量中,头部样本自然会多于尾部样本。这使得生成的深度模型偏向于头部类别,而在尾部类别上表现不佳。
- 为了解决这个问题,人们探索了重新采样,通过调整模型训练时每个样本批次中每个类别的样本数量来重新平衡类别。
-
传统的经典方法:
- 在非深度学习时代,最经典的重新采样方法是随机过度采样(random over-sampling,ROS)和随机不足采样(random undersampling,RUS)。具体来说,
- ROS 是在训练前随机重复少数类别的样本,以重新平衡类别,
- RUS 则是随机丢弃多数类别的样本。
- 当把它们应用于类高度倾斜的深度长尾学习时,ROS 使用重复的尾类数据可能会导致对尾类的过度拟合,而 RUS 可能会丢弃珍贵的头类样本,降低模型在头类上的性能。
- 最近的深度长尾研究开发了各种类平衡采样方法,用于深度模型的迷你批量训练,而不是使用随机再采样。
- 在非深度学习时代,最经典的重新采样方法是随机过度采样(random over-sampling,ROS)和随机不足采样(random undersampling,RUS)。具体来说,
-
抽样策略介绍与测评:
我们从解耦(Decoupling)开始,其中评估了用于长尾数据表示学习的四种抽样策略,包括随机抽样(random sampling)、类均衡抽样(class-balanced sampling)、平方根抽样(squareroot sampling)和渐进均衡抽样(progressively-balanced sampling)。具体来说,
- 类平衡抽样是指每个类被选中的概率相等。
- 平方根抽样是类平衡抽样的一种变体,其中每个类的抽样概率与相应类的样本量的平方根有关。
- 渐进平衡抽样是在随机抽样和类平衡抽样之间的渐进插值。
根据经验结果,Decoupling 发现平方根采样和渐进平衡采样是长尾识别中标准模型训练的较好策略。不过,这两种策略都需要事先知道不同类别的训练样本频率,而这在实际应用中可能无法获得。
-
自适应抽样策略:
针对上述问题,最近的研究提出了各种自适应抽样策略。
- 动态课程学习(Dynamic Curriculum Learning,DCL)提出了一种新的课程策略,用于动态采样数据以实现类的再平衡。其基本思想是,**在训练过程中,从一个类中抽取的实例越多,那么该类在后期阶段被抽取的概率就越低。**按照这一思路,DCL 首先进行随机抽样以学习一般表征,然后根据课程策略抽取更多的尾类实例来处理不平衡问题。
- 除了使用累计采样时间外,具有分类平衡的长尾物体探测器(Long-tailed Object Detector with Classification Equilibrium,LOCE)还提出通过平均分类预测得分(即运行预测概率)来监测模型在不同类别上的训练情况,并用这个得分来指导不同类别的采样率。
- 此外,专注于长尾视频识别的 VideoLT,引入了一种新的 FrameStack 方法,可在训练过程中根据运行模型的性能动态调整不同类别的采样率,从而可以从尾部类别(一般运行性能较低)中采样更多的视频帧。
-
使用元学习方法:
除了使用模型训练过程中计算出的统计数据,一些重新抽样方法还采用了元学习方法。
- Balanced Meta-softmax 开发了一种基于元学习的采样方法,用于估计长尾学习中不同类别的最佳采样率。具体来说,所开发的元学习方法旨在通过优化平衡元验证集上的模型分类性能来学习最佳的样本分布参数。
- 与此类似,特征增强和采样适应(FASA)将平衡元验证集上的模型分类损失作为一个分数,用于调整不同类别的采样率,以便对代表性不足的尾部类别进行更多采样。
-
多层次重新采样:
- 请注意,某些长尾视觉任务可能存在多层次的不平衡。例如,长尾实例分割在图像和实例方面都是不平衡的(即每幅图像的实例数量也是不平衡的)。
- 为解决这一问题,Simple Calibration(SimCal)提出了一种新的双级类平衡采样策略,该策略结合了图像级和实例级重新采样,以实现类再平衡。
-
讨论:
- 重新采样方法试图在样本层面解决类不平衡问题。
- 当不同类别的标签频率先验已知时,建议采用渐进均衡采样法。否则,在实际应用中,使用模型训练的统计数据来指导再采样是一种首选的解决方案。
- 对于基于元学习的再采样,在实际应用中可能很难构建元验证集。需要注意的是,如果一种再采样策略已经很好地解决了类不平衡问题,进一步使用其他再采样方法可能不会带来额外的好处。
- 此外,如果实际应用中存在多层次的不平衡,这些再采样方法的高层次思想也可用于设计多层次的再采样策略。
3.1.2 Class-sensitive Learning
类敏感学习
-
softmax 交叉熵损失的弊端:
-
传统的深度网络训练基于 softmax 交叉熵损失(参见表 3)。
- 图片注解:损失汇总。表中, z z z 和 p p p 表示样本 x x x 的预测对数和软最大概率,其中 z y z_y zy 和 p y p_y py 对应于类别 y y y。此外, n n n 表示训练数据的总数,其中 n y n_y ny 是类别 y y y 的样本数。与损失相关的参数包括 γ \gamma γ。
-
这种损失忽略了数据大小中的类不平衡,往往会对不同的类产生不均衡的梯度。也就是说,在交叉熵中,一个类的每个正样本都可以被视为其他类的负样本,这导致头部类获得更多的支持梯度(因为它们通常是正样本),而导致尾部类获得更多的抑制梯度(因为它们通常是负样本)。
-
为了解决这个问题,类敏感学习试图特别调整不同类的训练损失值,以重新平衡不平衡问题造成的不均衡训练效果。对类敏感的策略主要有两种,即重新加权(re-weighting)和重新边缘化(re-margining)。我们从类别再加权开始,具体如下。
-
-
重新加权(Re-weighting)
-
为了解决类别不平衡的问题,重新加权法试图通过乘以不同的权重来调整不同类别的训练损失值。
-
最直观的方法是直接使用训练样本的标签频率进行损失再加权,以重新平衡不同类别间不均衡的正梯度。例如,加权 softmax(参见表 3)直接将不同类别的损失值乘以训练标签频率的倒数。
-
然而,简单地乘以其倒数可能并不是最佳解决方案。因此,最近的研究提出了根据样本感知的影响来调整训练标签频率的影响。
-
此外,Class-balanced loss(CB)引入了一个新概念——有效数,用来近似不同类别的预期样本数,而有效数是其训练标签数的指数函数。在此基础上,CB loss 强化了与有效类数成反比的类平衡再加权项,以解决类不平衡问题(参见表 3)。
-
除了上述在对数概率层面的重新加权外,我们还可以使用训练标签频率对预测对数进行重新加权。Balanced Softmax 提出通过乘以标签频率来调整预测对数,这样就可以在计算最终损失之前通过标签先验来减轻类不平衡带来的偏差。
-
随后,Vectorscaling loss(VS)直观地分析了加法和乘法对数调整损失的不同效果,从而提出了一种新的 VS 损失,将两种调整形式的优点结合起来。
-
Focal loss 没有使用训练标签频率,而是探索了重新加权的类预测硬度(class prediction hardness)。这是因为观察到类的不平衡通常会增加尾类的预测难度,而尾类的预测概率会低于头类的预测概率。据此,Focal loss 利用预测概率对类别进行反向再加权(参见表 3),这样就能为较难预测的尾部类别分配较高权重,而为较容易预测的头部类别分配较低权重。
-
除了使用预定义的加权函数,类权重也可以从数据中学习。例如,Meta-Weight-Net 提出根据平衡验证集学习 MLP 近似加权函数,以实现对类别敏感的学习。
-
-
最近的一些研究也试图解决尾类的负梯度过度抑制问题。例如,
-
当尾部样本作为头部样本的负标签时,Equalization loss 会直接降低尾部样本损失值的权重。然而,简单地降低负梯度权重可能会损害深度模型的判别能力。
-
为了解决这个问题,自适应类抑制损失(Adaptive Class Suppression loss,ACSL)使用输出置信度来决定是否抑制负标签的梯度。具体来说,如果负面标签的预测概率大于预定义的阈值,就意味着模型对该类产生了混淆,因此该类的权重被设为 1,以提高模型的辨别能力;反之,权重被设为 0,以避免负面过度抑制。
-
此外,Equalization loss v2 扩展了 Equalization loss,引入了新颖的梯度引导再加权机制,针对不同类别动态地提高正梯度权重,降低负梯度权重。
-
同样,Seesaw loss 通过两个再加权因子(即减轻和补偿)对每个类别的正负梯度进行再平衡。具体来说,为了解决梯度过度抑制问题,缓解因子会根据不同类别的动态累积采样数,减轻对尾部类别的惩罚。同时,如果观察到假阳性样本,补偿因子会增加相应类别的惩罚权重,以提高模型的判别能力。
-
-
-
再边际化(Re-margining)
-
为了处理类不平衡问题,再边际化试图通过为不同类减去不同的边距系数来调整损失,这样它们在特征和分类器之间就有了不同的最小边距(即距离)。直接使用现有的软边距损失是不可行的,因为它们忽略了类不平衡的问题。
-
为了解决这个问题,标签分布感知边距(Label-Distribution-Aware Margin,LDAM)根据不同类别的训练标签频率,为不同类别强制执行与类别相关的边距系数,从而鼓励尾类具有更大的边距。
-
然而,在实际应用中,训练标签频率可能是未知的,简单地使用标签频率进行再边际化也会忽略模型在不同类别上的训练状况。
-
为了解决这个问题,最近的研究探索了各种自适应再边缘化方法。
- 基于不确定性的边际学习(Uncertainty-based margin learning,UML)发现,类预测的不确定性与训练标签频率成反比,即尾部类的不确定性更大。受此启发,UML 提出使用估计的类级不确定性来对损失进行再边际化,这样类级不确定性较高的尾类就会产生较高的损失值,从而在特征和分类器之间有更大的裕度。
- 此外,LOCE 还提出利用平均类预测得分来监控不同类的学习状态,并将其用于指导类级余量调整,以增强尾类。
- 域平衡(Domain balancing)引入了一种基于特征类间紧凑性的新型频率指标,并利用该指标对尾域的特征空间进行再边缘化。
- 上述鼓励大尾类边际的再边缘化方法虽然有效,但可能会降低头部类的特征学习效果。为了解决这个问题,RoBal 进一步强化了边际因子,以扩大头部类的边际。
-
-
讨论:
- 这些对类敏感的学习方法旨在从目标层面解决类不平衡问题。表 3 总结了其中一些方法。
- 重新加权和再边际化两种方法对重新平衡类的效果相似。如果一种对类敏感的方法可以很好地解决类不平衡的负面影响,那么就没有必要再应用其他对类敏感的方法,因为这些方法不会带来进一步的性能提升,甚至会损害性能。
- 更具体地说,如果训练标签频率可用,直接使用它们进行再加权(如 Balanced Softmax 和 VS)或再边际化(如 LDAM),可为实际应用提供简单而普遍有效的解决方案。
- 如果不是这样,
- 最好使用平均类预测得分来指导类敏感学习(如 ACSL 和 LOCE),因为它简单易行。
- 我们也可以考虑其他指导方法,如类内紧凑性(intra-class compactness)。不过,当特征维度非常高时,特征的类间紧凑性可能并不那么有参考价值,而预测的不确定性在实践中可能难以准确估计。
- 此外,在 Focal loss 中使用预测硬度(prediction hardness)来重新加权,在类的数量不多时效果不错,但在面对大量类时可能会失败。
- 此外,如果 Equalization loss v2、Seesaw loss 和 RoBal 试图解决的难题出现在实际应用中,也可以考虑使用它们。
3.1.3 Logit Adjustment
Logit Adjustment 调整
- Logit 调整试图通过调整有类别偏见的深度模型的预测对数来解决类别不平衡问题。最近的一项研究通过长尾识别中不同类别的训练标签频率全面分析了对数调整,并从理论上证明了对数调整与费舍尔(Fisher)一致,能使平均每类误差最小化。
- 按照这一思路,RoBal 采用了一种后处理策略,根据训练标签频率调整余弦分类器。
- 然而,当训练标签频率不可用时,上述方法就会失效。为了解决这个问题,
- UNO-IC 建议基于平衡元验证集学习对数偏移,并用它来校准有偏差的模型预测。
- DisAlign 没有使用元验证集,而是使用自适应校准函数进行 logit 调整,校准函数是通过将校准预测分布与预先定义的相对平衡的类分布相匹配来学习的。
- logit 调整的想法自然适用于未知测试类别分布的情况。如果测试标签频率可用,LADE 建议使用它们对模型输出进行后调整,这样就可以针对任意测试类别分布对训练好的模型进行校准。然而,测试标签频率通常是不可用的,这使得 LADE 在实际场景中不那么实用。
- 讨论:
- 总而言之,这些 logit 调整方法在预测层面上解决了类不平衡问题。
- 如果训练标签频率是已知的,建议直接使用它们对有偏差的深度模型的预测进行后调整。
- 如果此类信息未知,则最好利用 DisAlign 的思想来学习自适应校准函数。这些 logit 调整方法相互排斥,因此在实际应用中使用一种性能良好的方法就足够了。
3.1.4 Summary
总结
- 在长尾学习的三种主要方法中,类再平衡相对简单,但它可以达到相当甚至更好的性能。一些方法,尤其是类敏感学习,从理论上受到启发,或保证能处理长尾问题。这些优势使得类再平衡成为现实世界应用中的一个很好的候选方法。
- 其三个子类别(即重新采样、对类敏感的学习和 logit 调整)的最终目标是相同的,即重新平衡类。因此,当类不平衡问题没有得到很好解决时,将它们结合起来可能会取得更好的性能。不过,这些子类型有时相互排斥。例如,如果我们通过类敏感学习训练了一个类平衡的深度模型,那么进一步使用 logit 调整方法对模型推理进行后调整,反而会导致预测有偏差,性能不佳。因此,如果要将它们结合起来,就应该仔细设计管道。
- 类重新平衡的一个缺点是,大多数方法都是以降低头部类性能为代价来提高尾部类的性能,这就像是在玩性能跷跷板。虽然整体性能得到了提高,但它无法从根本上解决信息匮乏的问题,尤其是由于数据量有限而导致的尾部类信息匮乏。针对这一局限性,一种可行的解决方案是进行如下信息增强。
3.2 Information Augmentation
信息增强
信息增强旨在为模型训练引入额外信息,从而提高长尾学习的模型性能。这种方法有两种:迁移学习和数据增强。
3.2.1 Transfer Learning
迁移学习
迁移学习(Transfer learning)旨在迁移源领域(如数据集)的知识,以加强目标领域的模型训练。在长尾学习中,主要有四种转移方案,即模型预训练(model pre-training)、知识蒸馏(knowledge distillation)、头对尾模型转移(head-to-tail model transfer)和自我训练(self-training)。
-
模型预训练(model pre-training)
模型预训练是深度模型训练的一种流行方案,在长尾学习中也有探索。例如,
- 特定领域迁移学习(Domain-Specific Transfer Learning,DSTL)首先用所有长尾样本对模型进行预训练,以进行表征学习,然后在更均衡的训练子集上对模型进行微调。这样,DSTL 就能慢慢地将学习到的特征转移到尾部类别,从而在所有类别中获得更均衡的性能。
- **自监督预训练(Self-supervised Pre-training,SSP)建议首先使用自监督学习(如对比学习或旋转预测 )进行模型预训练,然后在长尾数据上进行标准训练,而不是监督预训练。**经验结果表明,自监督学习有助于为长尾学习学习一个平衡的特征空间。这种方案也被用来处理有噪声标签的长尾数据。
-
知识蒸馏(knowledge distillation)
知识蒸馏旨在根据训练有素的教师模型的输出结果来训练学生模型。最近的研究探索了长尾学习的知识提炼。例如,
- 从多个专家学习(LFME)首先在几个不那么不平衡的样本子集(如头部、中部和尾部集)上训练多个专家,然后将这些专家提炼成一个统一的学生模型。
- 同样,路由多样化专家(RIDE)引入了一种知识提炼方法,通过使用较少的专家学习学生网络来减少多专家模型的参数。
- Distill the Virtual Examples(DiVE)代替了多专家教师,表明学习一个类平衡模型作为教师也有利于长尾学习。
- 继 DiVE 之后,Self-Supervision to Distillation(SSD)提出了一种新的自蒸馏方案,以加强解耦训练(参见第 3.3.3 节)。具体来说,SSD 首先通过解耦训练方案根据监督和自监督信息训练校准模型,然后使用校准模型为所有样本生成软标签。然后,利用生成的软标签和原始长尾硬标签提炼出新的学生模型,接着进入新的分类器微调阶段。
-
头尾模型转移(head-to-tail model transfer)
头尾模型转移(Head-to-tail model transfer)旨在将模型知识从头部类别(head classes)转移到尾部类别(tail classes),以提高模型在尾部类别上的性能。例如,
- MetaModelNet 提出了一种学习元网络(metanetwork)的方法,该网络可以将少量样本(few-shot)模型参数映射到大量样本(many-shot)模型参数。
- 为此,MetaModelNet 首先在头部类别的训练集上训练一个大量样本模型,
- 然后在这些类别的抽样子集上训练一个假的少量样本模型,这些子集的数据量非常有限,以模仿尾部类别。
- 接着,通过将学习的假少量样本模型映射到大量样本模型来学习元网络。
- 随后,将头部类别上学习的元网络应用于将尾部类别上训练的真实少量样本模型映射,以获得更好的尾部类别性能。
- 与模型映射不同,**几何结构转移(Geometric Structure Transfer,GIST)**提出了在分类器级别进行头尾转移的方法。具体来说,GIST 使用头部类别相对较大分类器几何信息来增强尾部类别分类器的权重,从而提高尾部类别的性能。
- MetaModelNet 提出了一种学习元网络(metanetwork)的方法,该网络可以将少量样本(few-shot)模型参数映射到大量样本(many-shot)模型参数。
-
自训练(self-training)
- 自训练的目的是从少量有标签样本和大量无标签样本中学习性能良好的模型。
- 具体来说,
- 它首先使用有标签样本来训练有监督模型,然后应用该模型为无标签数据生成伪标签。
- 之后,标注样本和伪标注样本都被用来重新训练模型。
- 通过这种方式,自我训练可以利用来自大量未标记样本的知识来提高长尾学习性能。
- 不过,这种范式不能直接用于处理长尾问题,因为已标注和未标注数据集都可能在不同程度上遵循长尾类分布。在这种情况下,在已标注样本上训练的模型可能会偏向于头部类,并倾向于为未标注样本生成更多头部类伪标签,从而导致不平衡程度更加倾斜。
- 为了解决这个问题,
- **分布对齐和随机抽样(Distribution Alignment and Random Sampling,DARS)**提出将已标注数据的标签频率作为参考,并强制生成的伪标签的标签频率与已标注的标签频率保持一致。
- **分类平衡自训练(Class-rebalancing Selftraining,CReST)**没有使用训练标签频率,而是发现监督模型在尾类上的精度出奇地高,因此提出在每次迭代中选择更多的尾类样本进行在线伪标签(online pseudo labeling),从而使重新训练的模型在尾类上获得更好的性能。
- 除了分类任务之外,MosaicOS 还借助其他以物体为中心的图像来提高长尾物体的检测能力。具体来说,
- 它首先使用原始检测数据集中已标记的以场景为中心的图像对模型进行预训练,然后使用预训练模型为以物体为中心的图像(如 ImageNet-1K)生成伪边界框。
- 之后,MosaicOS 分两个阶段对预训练模型进行微调,即先使用伪标记的以物体为中心的图像进行微调,然后再使用原始标记的以场景为中心的图像进行微调。这样,MosaicOS就能减轻数据差异的负面影响,有效提高长尾性能。
-
讨论
- 这些迁移学习方法彼此互补,为长尾学习带来了不同视角的额外信息。如果资源允许且组合流程(combination pipeline)设计得当,大多数方法可以一起用于实际应用。
- 更具体地说,
- 在使用模型预训练时,应该调整监督区分学习和自监督类别平衡学习之间的权衡,这有助于提高长尾学习的性能。
- 此外,与单一教师的知识蒸馏相比,多专家的知识蒸馏通常能够实现更好的性能。
- 在头尾模型转移中,由于其简单性,GIST 是比 MetaModelNet 更好的候选者。
- 最后,自训练方法的使用取决于任务需求以及手头上可用的未标记样本。
3.2.2 Data Augmentation
数据增强
数据增强(Data Augmentation)旨在通过对每个数据/特征进行预先定义的转换来增强数据集的大小和质量。在长尾学习中,已经探索了两种类型的增强方法,即基于转移的增强(transfer-based augmentation)和基于非转移的增强(non-transfer augmentation)。
-
**头尾转移增强(Head-to-tail transfer augmentation)**旨在将头部类别的知识转移到尾部类别样本中以增强它们。例如,
- **主到次翻译(Major-to-Minor translation,M2m)**提出通过基于扰动的优化将头部类别样本转换为尾部类别样本来增强尾部类别,这本质上与对抗性攻击(adversarial attack)相似。转换后的尾部类别样本被用来构建一个更加平衡的训练集,以供模型训练使用。
- 除了 M2m 中的数据层面转移,大多数研究探索了特征层面的转移。例如,
- 特征转移学习(Feature Transfer Learning,FTL)发现尾部类别样本的类内方差远小于头部类别样本,导致特征空间和决策边界存在偏差。为了解决这个问题,FTL 利用头部类别的类内方差知识来指导尾部类别样本的特征增强,使得尾部类别的特征具有更高的类内方差。
- 同样,LEAP 为每个类别构建“特征云”,并将头部类别特征云的分布知识转移到增强尾部类别特征云的类内变化。使类别间类内特征方差的差异得到了缓解,从而提高了尾部类别的性能。
- 与使用类内变异信息不同,
- **稀有类别样本生成器(Rareclass Sample Generator,RSG)**提出了动态估计每个类别的一组特征中心,并利用头部类别样本特征与它们最近类内特征中心之间的特征位移来增强每个尾部类别样本特征,以扩大尾部类别的特征空间。
- 此外,**在线特征增强(Online Feature Augmentation,OFA)**提出了使用类别激活图(class activation maps)将样本特征解耦为类别特定和类别无关的两部分。
- 接着,OFA 通过将尾部类别样本的类别特定特征与头部类别样本的类别无关特征相结合来增强尾部类别。
-
**基于非转移的增强(Non-transfer augmentation)**旨在改进或设计传统的数据增强方法来解决长尾问题。
-
SMOTE 是一种经典的非深度类别不平衡的过采样方法,可以应用于深度长尾问题,通过混合几个类内相邻样本来生成尾部类别样本。
-
数据混合(mixup)
- 最近,MiSLAS 进一步研究了深度长尾学习中的数据混合(mixup),
- 发现:
- 数据混合有助于纠正模型过度自信;
- 在解耦训练方案中,mixup 对表示学习有积极影响,但对分类器学习有负面或可忽略的影响。
- 基于这些观察,MiSLAS 提出了在解耦方案中使用数据混合来增强表示学习。
- 发现:
- 此外,Remix 也利用数据混合进行长尾学习,并引入了一种重新平衡的混合方法,特别增强尾部类别。
- 最近,MiSLAS 进一步研究了深度长尾学习中的数据混合(mixup),
-
使用先验特征:
- 与使用数据混合(data mixup)不同,FASA 提出了一种方法,为每个类别基于类特定的高斯先验生成新数据特征,这些先验的均值和方差是从之前观察到的样本中估计出来的。
- 在这里,FASA 利用模型在平衡验证集上的分类损失来调整不同类别的特征采样率,以便较少表示的尾部类别可以得到比头部类别更多的增强。
- 基于类似的想法,**元语义增强(Meta Semantic Augmentation,MetaSAug)**提出了一种变体的隐式语义数据增强(Implicit Semantic Data Augmentation,ISDA)来增强尾部类别。
- 具体来说,ISDA 估计类条件统计(即从样本特征中得到的协方差矩阵)以获得语义方向,并沿着多样的语义有意义的方向平移样本特征来生成多样化的增强样本。
- 为了更好地估计尾部类别的协方差矩阵,MetaSAug 探索了元学习来引导每个类别的协方差矩阵学习,使用类别平衡损失,从而产生更具信息量的合成特征。
- 与使用数据混合(data mixup)不同,FASA 提出了一种方法,为每个类别基于类特定的高斯先验生成新数据特征,这些先验的均值和方差是从之前观察到的样本中估计出来的。
-
-
讨论
- 基于数据增强的方法试图在样本或特征层面解决类别不平衡问题。这些方法的目标是一致的,因此如果组合流程构建得当,它们可以同时使用。
- 在其两个子类型中,头尾转移增强比非转移增强更直观。更具体地说,
- 在特征层面的头尾转移增强(例如,RSG)似乎比在样本层面的转移(例如,M2m)表现得更好。
- 在特征层面的转移增强中,由于其易于使用的源代码,RSG 更受欢迎,而 FTL 和 LEAP 中的类内变异在特征维度非常高时可能对增强不太有信息量。
- 在非转移增强中,通常使用基于 mixup 的策略,这得益于它们的简单性,其中 MiSLAS 已经展示了有希望的性能。相比之下,FASA 中的类别特定高斯先验和 MetaSAug 中的协方差矩阵在各种实际场景中可能难以估计。
3.2.3 Summary
- 信息增强通过引入额外的知识来解决长尾问题,因此它与其他两种方法类型,即类别再平衡和模块改进,是兼容且互补的。
- 出于同样的原因,它的两个方法子类型,即迁移学习和数据增强,也是相互补充的。
- 更具体地说,如果设计得当,这两种子类型都能够在不牺牲头部类别性能的情况下提高尾部类别的性能。考虑到在长尾学习中所有类别都很重要,这种方法类型值得进一步探索。
- 此外,数据增强是一种非常基础的技术,可以用于各种长尾问题,这使得它在实际应用中比其他范式更为实用。
- 然而,简单地使用现有的类别无关增强技术来改善长尾学习是不利的,因为它们忽略了类别不平衡,并且不可避免地会增强比尾部类别样本更多的头部类别样本。如何更好地为长尾学习进行数据增强仍然是一个开放的问题。
3.3 Module Improvement
模块改进
除了类别再平衡和信息增强之外,研究人员还探索了在长尾学习中改进网络模块的方法。这些方法可以分为四类:
- 表示学习(representation learning)改进特征提取器;
- 分类器设计(classifier design)增强模型分类器;
- 解耦训练(decoupled training)旨在提高特征提取器和分类器的学习;
- 集成学习(ensemble learning)改进整个架构。
3.3.1 Representation Learning
表示学习
现有的长尾学习方法基于三个主要范式来改进表示学习,即度量学习(metric learning)、原型学习(prototype learning)和顺序训练(sequential training)。
-
度量学习(metric learning)旨在设计特定任务的距离度量,以确定数据之间的相似性或不相似性。在深度长尾学习中,基于度量学习的方法是寻求探索各种基于距离的损失函数,以学习一个对长尾数据具有区分性的特征空间。
-
一个例子是大边距局部嵌入(Large Margin Local Embedding,LMLE),
- 它引入了五元组损失(quintuplet loss)来学习能够在类内保持集群间和类间边距的表示。
- 与三元组损失采样两个对比对不同,LMLE 提出了一个五元组采样器来采样四个对比对,包括一个正对比对和三个负对比对。
- 正对比对是类内最远的样本,
- 而负对比对包括来自同一类别的两个集群间样本(一个是最近的,一个是同一集群中最远的)以及最近的类间样本。
- 随后,LMLE 引入了五元组损失,以鼓励采样的五元组遵循特定的距离顺序。这样,学习到的表示不仅在类内集群间保持局部性,而且在类别间保持区分性。此外,每个数据批次包含不同类别相同数量的样本,以实现类别再平衡。
- 然而,LMLE 没有考虑头部和尾部类别之间的样本差异。为了解决这个问题,类别校正损失(Class Rectification Loss,CRL)探索了硬对挖掘,并提出了为尾部类别构建更多硬对三元组的方法,以便尾部类别的特征可以在类内具有更大的紧凑度和类间距离。
-
与采样三元组或五元组不同,**范围损失(range loss)**通过使用一个 mini-batch 内所有样本对之间的整体距离来创新表示学习。
- 换句话说,范围损失利用了整个批次的统计数据,从而减轻了类别间数据数量不平衡的偏差。
- 具体来说,范围损失通过最大化 mini-batch 内任意两个类别中心之间的距离来扩大类间距离,并通过对类内样本之间最大距离的最小化来减少类内变异。通过这种方式,范围损失获得了具有更好区分能力和较少不平衡偏差的特征。
-
-
最近的研究也探索了**对比学习(contrastive learning)**在长尾问题中的应用。
- KCL 提出了一种 k 正对比损失(k-positive contrastive loss),以学习一个平衡的特征空间,这有助于缓解类别不平衡并提高模型的泛化能力。
- 参数对比学习(Parametric contrastive learning,PaCo)通过添加一组参数可学习的类别中心,进一步创新了有监督的对比学习,如果将类别中心视为分类器权重,则起到与分类器相同的作用。
- 随后,Hybrid 引入了一种原型对比学习策略来增强长尾学习。
- DRO-LT 通过分布鲁棒优化扩展了原型对比学习,使学习到的模型对分布变化更具鲁棒性。
-
基于原型学习(prototype learning)的方法旨在学习类别特定的特征原型,以增强长尾学习的性能。
- 开放长尾识别(Open Long-Tailed Recognition,OLTR)创新性地探索了特征原型的概念,用于处理开放世界中的长尾识别,其中测试集也包括在训练数据中未出现的开放类别。
- 为了解决这个任务,OLTR 维护了一个包含区分性特征原型的视觉元记忆,并使用从视觉记忆中采样的特征来增强原始特征,以实现更好的区分。
- 同时,新类别的样本特征被强制远离记忆并靠近原点。通过这种方式,学习到的特征空间使 OLTR 能够对所有已见类别进行分类,并检测新类别。
- 然而,OLTR 只维护一个静态原型记忆,每个类别只有一个原型。每个类别的单一原型可能无法代表实际的数据分布。
- 为了解决这个问题,**膨胀情节记忆(Inflated Episodic Memory,IEM)**通过动态更新方案进一步创新了元嵌入记忆,其中每个类别具有独立且可微分的记忆块。每个记忆块被更新以记录相应类别最具区分性的特征原型,从而实现比 OLTR 更好的性能。
- 开放长尾识别(Open Long-Tailed Recognition,OLTR)创新性地探索了特征原型的概念,用于处理开放世界中的长尾识别,其中测试集也包括在训练数据中未出现的开放类别。
-
基于顺序训练(sequential training)的方法以连续的方式学习数据表示。例如,
- **分层特征学习(Hierarchical Feature Learning,HFL)**从每个类别在区分性视觉表示中具有独特性这一观点中获得启发。
- 因此,HFL 将对象分层聚类成视觉上相似的类别组,形成一个分层聚类树。
- 在这个聚类树中,原始节点的模型是在 ImageNet-1K 上预训练的;
- 每个子节点的模型从其父节点继承模型参数,然后根据聚类节点中的样本进行微调。
- 这样,大量类别的组的知识逐渐转移到其子组,这些子组的类别较少。
- 类似地,**不平等训练(Unequal-training)**提出了将数据集分为头部类别和尾部类别子集,并在训练过程中对它们进行不同处理。
- 首先,不平等训练使用头部类别样本训练相对区分性和抗噪声的特征,采用一种新的抗噪声损失。
- 之后,它使用尾部类别样本通过硬身份挖掘和一种新颖的中心分散损失来增强表示的类间区分。
- **分层特征学习(Hierarchical Feature Learning,HFL)**从每个类别在区分性视觉表示中具有独特性这一观点中获得启发。
-
讨论:
- 这些表示学习方法旨在在特征层面解决类别不平衡问题。
- 每种子类型内的方法相互竞争(例如,KCL 与 PaCo,OLTR 与 IEM),而来自不同子类型的方法可能是互补的(例如,KCL 与 Unequal-training)。因此,如果想要将它们结合起来,必须仔细设计流程。
- 此外,在处理实际的长尾应用时,由于其出色的性能和开源代码,推荐使用 PaCo。
- 如果测试数据中有开放类别,IEM 是首选。
- 如果其他方法,如 Unequal-training,适合实际场景,也可以考虑使用。
3.3.2 Classifier Design
分类器设计
除了表示学习,研究人员还探索了不同类型的分类器来解决长尾问题。
-
通用视觉问题:
- 在通用视觉问题中,深度学习的常见做法是使用线性分类器
p
=
ϕ
(
w
T
f
+
b
)
p=\phi(w^Tf+b)
p=ϕ(wTf+b)
- 其中 ϕ \phi ϕ 表示 softmax 函数,
- 偏置项 b b b 可以被丢弃。
- 然而,长尾类别不平衡通常导致头部类别的分类器权重范数比尾部类别大,这使得线性分类器容易偏向主导类别。
- 在通用视觉问题中,深度学习的常见做法是使用线性分类器
p
=
ϕ
(
w
T
f
+
b
)
p=\phi(w^Tf+b)
p=ϕ(wTf+b)
-
归一化特征与最近类均值分类器:
-
为了解决这个问题,最近的一些研究提出了使用尺度不变余弦分类器(scale-invariant cosine classifier) p = ϕ ( ( w T f ∥ w ∥ ∥ f ∥ ) / τ + b ) p=\phi((\frac{w^Tf}{\Vert w\Vert\Vert f\Vert})/\tau+b) p=ϕ((∥w∥∥f∥wTf)/τ+b),其中分类器权重和样本特征都被归一化。在这里,温度因子 τ \tau τ 应该合理选择,否则分类器性能会受到负面影响。
-
然而,归一化特征空间可能会损害其表示能力。
-
因此,** τ \tau τ-归一化分类器( τ \tau τ-normalized classifier)**通过仅通过 τ \tau τ-归一化过程调整分类器权重范数来纠正不平衡。形式上,让 w ~ = w ∥ w ∥ 2 τ \tilde{w}=\frac{w}{\Vert w\Vert_2^\tau} w~=∥w∥2τw,其中 τ \tau τ 是归一化的温度因子。
- 当 τ = 1 \tau=1 τ=1 时, τ \tau τ 归一化减少到 L2 归一化,
- 而当 τ = 0 \tau=0 τ=0 时,不施加任何缩放。
请注意,超参数 τ \tau τ 也可以通过类别平衡采样进行训练,得到的分类器被称为可学习权重缩放分类器。
-
另一种解决分类器权重不平衡的方法是使用最近类均值分类器,它首先计算训练集上每个类别的平均特征作为分类器,然后基于最近邻算法进行预测。
-
-
更复杂的分类器设计:
还有一些基于层次分类(hierarchical classification)、**因果推断(causal inference)或分类器知识转移(classifier knowledge transfer)**的更复杂的分类器设计。例如,
-
现实分类器(Realistic Taxonomic Classifier,RTC)
- 提出了通过将图像映射到一个由分类节点和节点关系定义的类分类树结构(class taxonomic tree structure)中,通过层次分类来解决类别不平衡问题。
- 不同的样本在不同的层次上自适应地进行分类,预测的层次取决于样本分类的难度和分类器的置信度。
- 这种设计倾向于在中间层次做出正确的决策,而不是在叶子节点上做出错误的决策。
-
因果分类器(class taxonomic tree structure)
-
利用因果推断来保持长尾学习中的好动量(good)因果效应并去除坏动量(bad)因果效应。
- 好的因果效应指的是稳定梯度并加速训练的有益因素,
- 而坏的因果效应指的是导致尾部类别性能差的累积长尾偏差。
-
为了更好地近似偏差信息,因果分类器采用多头策略,将模型权重的通道(或维度)和数据特征平均分成 K K K 组。
- 形式上,因果分类器通过
p
=
ϕ
(
τ
K
∑
k
=
1
K
(
w
k
)
T
f
k
(
∥
w
k
∥
+
γ
)
∥
f
k
∥
)
p=\phi(\frac{\tau}{K}\sum^K_{k=1}\frac{(w^k)^Tf^k}{(\Vert w^k\Vert+\gamma)\Vert f^k\Vert})
p=ϕ(Kτ∑k=1K(∥wk∥+γ)∥fk∥(wk)Tfk) 计算原始 logits,
- 其中 τ \tau τ 是温度因子
- γ \gamma γ 是一个超参数。
- 当 γ = 0 \gamma=0 γ=0 时,这个分类器本质上是余弦分类器。
- 形式上,因果分类器通过
p
=
ϕ
(
τ
K
∑
k
=
1
K
(
w
k
)
T
f
k
(
∥
w
k
∥
+
γ
)
∥
f
k
∥
)
p=\phi(\frac{\tau}{K}\sum^K_{k=1}\frac{(w^k)^Tf^k}{(\Vert w^k\Vert+\gamma)\Vert f^k\Vert})
p=ϕ(Kτ∑k=1K(∥wk∥+γ)∥fk∥(wk)Tfk) 计算原始 logits,
-
在推理过程中,因果分类器通过在输入为零时减去预测来去除坏的因果效应,
- 即
p
=
ϕ
(
τ
K
∑
k
=
1
K
(
w
k
)
T
f
k
(
∥
w
k
∥
+
γ
)
∥
f
k
∥
−
α
cos
(
x
k
,
d
^
k
)
(
w
k
)
T
d
^
k
∥
w
k
∥
+
γ
)
p=\phi(\frac{\tau}{K}\sum^K_{k=1}\frac{(w^k)^Tf^k}{(\Vert w^k\Vert+\gamma)\Vert f^k\Vert}-\alpha\frac{\cos(x^k,\hat{d}^k)(w^k)^T\hat{d}^k}{\Vert w^k\Vert+\gamma})
p=ϕ(Kτ∑k=1K(∥wk∥+γ)∥fk∥(wk)Tfk−α∥wk∥+γcos(xk,d^k)(wk)Td^k),
- 其中 d ^ \hat{d} d^ 是指数移动平均特征的单位向量,
- α \alpha α 是一个权衡参数,用于控制直接和间接效应。
更直观地说,分类器通过在训练期间计算指数移动平均特征来记录偏差,然后在推理期间通过从预测 logits 中减去偏差来去除坏的因果效应。
- 即
p
=
ϕ
(
τ
K
∑
k
=
1
K
(
w
k
)
T
f
k
(
∥
w
k
∥
+
γ
)
∥
f
k
∥
−
α
cos
(
x
k
,
d
^
k
)
(
w
k
)
T
d
^
k
∥
w
k
∥
+
γ
)
p=\phi(\frac{\tau}{K}\sum^K_{k=1}\frac{(w^k)^Tf^k}{(\Vert w^k\Vert+\gamma)\Vert f^k\Vert}-\alpha\frac{\cos(x^k,\hat{d}^k)(w^k)^T\hat{d}^k}{\Vert w^k\Vert+\gamma})
p=ϕ(Kτ∑k=1K(∥wk∥+γ)∥fk∥(wk)Tfk−α∥wk∥+γcos(xk,d^k)(wk)Td^k),
-
-
GIST 分类器旨在将头部类别分类器的几何结构转移到尾部类别。
- 具体来说,GIST 分类器由一个类别特定的权重中心(用于编码类别位置)和一组位移(用于编码类别几何)组成。
- 通过利用来自头部类别的相对较大位移来增强尾部类别的权重中心,GIST 分类器能够在尾部类别上获得更好的性能。
-
-
讨论:
- 这些方法在分类器层面解决不平衡问题。
- 需要注意的是,这些分类器是相互排斥的,分类器的选择也影响其他长尾方法。
- 例如,数据混合对线性分类器和余弦分类器的效果是不同的。
- 因此,在探索新的长尾方法时,最好首先确定使用的分类器是什么。
- 一般来说,余弦分类器或可学习权重缩放分类器是推荐的,因为它们在经验上对不平衡具有鲁棒性,并且易于使用。
- 此外,在设计基于特征原型的方法时,最近类均值分类器是一个不错的选择。
- 如果实际应用复杂且难以处理,也可以考虑更复杂的分类器设计(例如,RTC、因果分类器和GIST分类器)。
3.3.3 Decoupled Training
解耦训练
-
解耦训练(Decoupled training)将学习过程分为表示学习和分类器训练。在这里,解耦训练代表了长尾学习的一种通用范式,而不是一种特定的方法。解耦是引入这种两阶段解耦训练方案的开创性工作。
- 它在第一阶段经验性地评估了不同的采样策略(在第 3.1.1 节中提到)用于表示学习,
- 在第二阶段通过固定训练好的特征提取器来评估不同的分类器训练方案。
- 在分类器学习阶段,还有四种方法,包括使用类别平衡采样的分类器重新训练、最近类均值分类器、 τ \tau τ-归一化分类器和可学习权重缩放分类器。
- 主要观察到两点:
- 随机采样出人意料地是解耦训练中表示学习的最佳策略;
- 重新调整分类器在长尾识别中导致显著的性能提升。
-
遵循上述方案:
- KCL 经验性地观察到平衡的特征空间对长尾学习是有益的。因此,它通过开发 k-正对比损失(k-positive contrastive loss)来创新解耦训练方案,以学习更加类别平衡和类别区分的特征空间,这导致了更好的长尾学习性能。
- 此外,MiSLAS 经验性地观察到数据混合对特征学习是有益的,但在两阶段解耦训练方案下对分类器训练有负面/可忽略的影响。因此,MiSLAS 提出了在第一阶段通过数据混合增强表示学习,同时在第二阶段应用标签感知平滑策略以实现更好的分类器泛化。
-
最近的一些研究特别增强了分类器训练阶段。例如,
- OFA 通过尾部类别特征增强创新了分类器重新训练。
- SimCal 通过为长尾实例分割引入一种新颖的双级类别平衡采样策略来校准分类头,增强了分类器训练阶段。
- DisAlign 通过一种新的自适应 logit 调整策略创新了分类器训练。
- 最近的是,DT2 将解耦训练方案应用于场景图生成任务,这展示了解耦训练在处理长尾视觉关系学习中的有效性。
-
讨论
-
解耦训练方法在特征和分类器层面都解决了类别不平衡问题。
-
在理想情况下,结合不同的方法可以带来更好的长尾性能,例如,
- 结合自监督预训练和 mixup增强以更好地学习表示,
- 以及结合标签感知平滑和尾部类别特征增强以更好地调整分类器。
- 因此,建议将 MiSLAS 作为基础方法,并在其上使用不同的技巧。
- 请注意,一些表示方法也是相互竞争的,例如,表示学习的不同采样方法。
-
分类器学习阶段不会引入太多的计算成本,但却可以带来显著的性能提升。这使得解耦训练越来越受到关注。
- 一种批评是,累积的训练阶段使得解耦训练在与其他为其他长尾问题(如目标检测和实例分割)设计的良好方法集成时变得不太实用。
- 尽管如此,解耦训练的概念简单,因此可以很容易地用于设计新方法来解决各种长尾问题,如 DT2。
-
3.3.4 Ensemble Learning
集成学习
基于集成学习(Ensemble learning)的方法通过战略性地生成和组合多个网络模块(即多个专家)来解决长尾视觉学习问题。我们在图3中总结了现有基于集成的方法的主要方案,接下来将详细说明。
图片注解:现有基于集成的长尾方法的说明。与标准训练(a)相比,基于集成的方法训练的专家(b-f)可能具有不同的专长,例如,在不同的类别分布或不同的类别子集方面表现出技能(由不同颜色表示)。例如,BBN和 SimCAL 训练两个专家来模拟原始的长尾分布和均匀分布,以便它们能够很好地处理这两种分布。BAGS、LFME、ACE 和 ResLT 通过采样类别子集训练多个专家,以便不同的专家能够特别处理不同的类别集合。SADE 直接训练多个专家,分别模拟从静态长尾分布中产生的长尾、均匀和反向长尾类别分布,这使得它能够基于自监督聚合处理具有不可知类别分布的测试集。
-
双分支:
-
BBN 提出了使用两个网络分支,即常规学习分支和再平衡分支(参见表3(b)),来处理长尾识别。具体来说,
-
常规学习分支应用均匀采样来模拟原始的长尾训练分布,
-
而再平衡分支应用反向采样器在每个 mini-batch 中采样更多的尾部类别样本以提高尾部类别的性能。
两个分支的预测在训练过程中动态结合,使得 BBN 的学习重点逐渐从头部类别转移到尾部类别。
-
-
在 BBN 之后,LTML 应用双边分支网络方案来解决长尾多标签分类。具体来说,LTML 使用 sigmoid 交叉熵损失训练每个分支进行多标签分类,并强制执行 logit 一致性损失以提高两个分支的一致性。
-
同样,SimCal 探索了双分类头方案,包括常规分类头和校准分类头,来解决长尾实例分割。基于一种新的双级采样策略,校准分类头能够提高尾部类别的性能,而原始头则旨在维持头部类别的性能。
-
-
将类别分成平衡子组的多头方案:
- 与双边分支不同,BAGS 探索了一种多头方案来解决长尾目标检测问题。
- 具体来说,BAGS 受到一个观察的启发,即学习一个样本数量较少但更均匀的分布有时也比学习一个样本数量更多但长尾分布要容易。
- 因此,**BAGS 将类别分成几个组,每个组中的类别具有相似数量的训练数据。**然后,BAGS 应用多个分类头进行预测,不同的头在不同的类别组上进行训练(参见表3©)。这样,每个分类头对具有相似训练数据数量的类别执行 softmax 操作,从而避免类别不平衡的负面影响。
- 此外,BAGS 还在每个组中引入了一个“其他类别”的标签,以缓解不同头之间的矛盾。
- 与 BAGS 类似,LFME 将长尾数据集分成几个具有较小类别不平衡程度的子集,并使用不同的样本子集训练多个专家。基于这些专家,LFME 然后使用来自多个教师的自适应知识蒸馏学习一个统一的学生模型。
- 与双边分支不同,BAGS 探索了一种多头方案来解决长尾目标检测问题。
-
将类别分成技能多样子集的多头方案:
- 与将类别分成几个平衡的子组不同,ACE 将类别分成几个技能多样的子集:一个子集包含所有类别;一个子集包含中间和尾部类别;另一个子集只包含尾部类别(参见表3(d))。
- 然后,ACE 使用各种类别子集训练多个专家,以便不同的专家具有特定和互补的技能。
- 此外,考虑到各个子集具有不同的样本数量,ACE 还应用分布式自适应优化器来调整不同专家的学习率。
- ACE 的类似思想也在 ResLT 中得到了探索。
-
不划分子集的多头方案:
- 与划分数据集不同,RIDE 使用所有训练样本分别使用 softmax 损失训练多个专家(参见表3(e)),并强制执行基于 KL- 散度(KL-divergence)的损失以提高不同专家之间的多样性。
- 随后,RIDE 应用专家分配模块以提高计算效率。需要注意的是,独立地使用 softmax 损失训练每个专家在很大程度上提高了长尾学习上的集成性能。
- 然而,RIDE 学习到的专家不够多样化。
-
对子集无限制的多头方案:
- **自监督多样化专家聚合(Self-supervised Aggregation of Diverse Experts,SADE)**探索了一种新的多专家方案来处理测试不可知的长尾识别,其中测试类别分布可以是均匀的、长尾的,甚至是反向长尾的。
- 具体来说,SADE 开发了一个新颖的光谱跨度多专家框架(novel spectrum-spanned multi-expert framework)(参见表3(f)),并通过引入促进多样性的专业知识引导损失来创新专家训练方案,这些损失训练不同的专家分别处理不同的类别分布。这样,学习到的专家比 RIDE 更加多样化,导致更好的集成性能,并综合跨越了可能的类别分布的广泛光谱。
- 鉴于此,SADE进一步引入了一种自监督学习方法,即预测稳定性最大化,以在测试时自适应地聚合专家,更好地处理未知的测试类别分布。
-
讨论:
- 这些基于集成的方法在模型层面解决了类别不平衡问题。
- 由于它们需要特定的方式来设计和训练多模型(参见图3),它们是相互排斥的,通常不能一起使用。更具体地说,
- 像 BBN 和 TLML 这样具有双边分支的方法只有两个专家,其经验性能已被证明比具有更多专家的方法差。
- 此外,像 BAGS 和 ACE 这样在类别子集上训练专家的方法可能会因为不同标签空间中的专家不一致而受到影响,这使得专家的聚合变得困难,并可能导致实际应用中的性能不佳。
- 相反,RIDE 使用所有样本训练多个专家,但结果的多个专家不够多样化。
- 相比之下,SADE 能够使用相同的标签空间训练技能多样的专家,因此推荐用于实际应用。
- 这些基于集成的方法的一个担忧是,由于使用了多个专家,它们通常会导致更高的计算成本。然而,这种担忧可以通过使用共享特征提取器来缓解。此外,面向效率的专家分配和知识蒸馏策略也可以降低计算复杂性。
3.3.5 Summary
- 基于模块改进的方法旨在通过改进网络模块来解决长尾问题。
- 具体来说,表示学习和分类器设计是深度学习的基本问题,值得进一步探索以解决长尾问题。
- 表示学习和分类器设计与解耦训练互补。解耦训练的方案概念上简单,可以很容易地用于设计新方法来解决实际的长尾应用。
- 此外,基于集成的方法,得益于多个专家的聚合,能够在不牺牲任何类别子集(例如,头部类别)性能的情况下实现更好的长尾性能。由于所有类别都很重要,这种优越性使得基于集成的方法相比通常以牺牲头部类别性能为代价提高尾部类别性能的现有类别再平衡方法,成为实际应用的更好选择。
- 在这里,基于集成的方法和解耦训练都需要特定的模型训练和设计方式,因此除非经过非常仔细的设计,否则不容易将它们一起使用。
- 请注意,大多数模块改进方法是基于基本的类别再平衡方法开发的。此外,模块改进方法与信息增强方法互补。将它们一起使用通常可以在实际的长尾应用中实现更好的性能。
Section 4 EMPIRICAL STUDIES
实证研究
本节将对现有的长尾学习方法进行实证分析。首先,我们引入一个新的评估指标。
4.1 Novel Evaluation Metric
新颖的评估标准
-
常用的 top-1 测试准确率及其弊端:
- 长尾学习的关键目标是处理类别不平衡以提高模型性能。因此,常见的评估协议是直接使用 top-1 测试准确率(用 A t A_t At 表示)来判断长尾方法的表现如何,以及哪种方法更好地处理了类别不平衡。
- 然而,这样的指标不能准确反映不同方法在处理类别不平衡方面的相对优越性,因为 top-1 准确率也受到除类别不平衡之外的其他因素的影响。
- 例如,像集成学习(或数据增强)这样的长尾方法也会提高在平衡训练集上训练的模型的性能。在这种情况下,很难判断性能提升是由于缓解类别不平衡还是由于更好的网络架构(或更多的数据信息)。
-
相对准确率:
- 为了更好地评估方法在处理类别不平衡方面的有效性,我们探索了一个新的度量标准,即相对准确率 A r A_r Ar,以减轻长尾学习中不必要因素的影响。
- 为此,我们首先计算一个经验上的最大参考准确率
A
u
=
m
a
x
(
A
v
,
A
b
)
A_u=max(A_v,A_b)
Au=max(Av,Ab),这是在平衡训练集上用交叉熵训练的骨干网络的原始准确率
A
v
A_v
Av 和用相应长尾方法训练的模型的平衡准确率
A
b
A_b
Ab 之间的最大值。
- 在这里,平衡训练集是长尾训练集的一个变体,其中总数据量相似,但每个类别具有相同数量的数据。
- 这个从平衡训练集获得的最大参考准确率用于减轻除类别不平衡之外的影响,然后相对准确率定义为 A r = A t A u A_r=\frac{A_t}{A_u} Ar=AuAt。
- 请注意,这个度量标准主要是为了经验理解,即评估现有方法在多大程度上解决了类别不平衡问题。我们基于 ImageNet-LT 数据集进行这种分析,其中可以通过按照从原始 ImageNet 中抽样来构建相应的平衡训练集变体。
4.2 Experimental Settings
实验设置
-
数据集:
- 本文的实证研究采用广泛使用的 ImageNet-LT 和 iNaturalist 2018 作为基准长尾数据集。它们的数据集统计信息可以在表1中找到。
- 除了所有类别的性能外,我们还报告了三个类别子集的性能:
- 头部(超过100张图片)
- 中部(20至100张图片)
- 尾部(少于20张图片)
-
基线:
- 我们通过两个标准选择长尾方法:
- 源代码是公开可用的或易于重新实现;
- 方法在相应的论文中在 ImageNet-LT 上进行了评估。
- 本文经验性地评估了 20 多种方法,包括:
- 基线(Softmax)
- 类别敏感学习(加权 Softmax、Focal loss、LDAM、ESQL、Balanced Softmax、LADE)
- logit调整(UNO-IC)
- 迁移学习(SSP)
- 数据增强(RSG)
- 表示学习(OLTR、PaCo)
- 分类器设计(De-confound)
- 解耦训练(Decouple-IB-CRT、CB-CRT、SR-CRT、PB-CRT、MiSLAS)
- 集成学习(BBN、LFME、RIDE、ResLT、SADE)
- 我们通过两个标准选择长尾方法:
-
实现细节:
- 我们在 PyTorch 中实现了所有实验。遵循 [17],[31],[32],我们使用 ResNeXt-50 作为 ImageNet-LT 的网络骨干,ResNet-50 作为 iNaturalist 2018 的网络骨干。
- 我们使用基于批大小 256 的 SGD 优化器进行模型训练,动量 0.9,权重衰减因子 0.0005,学习率 0.1(线性 LR 衰减)。对于与方法相关的超参数,我们通过直接遵循原始论文或手动调整(如果默认值表现不佳)来设置值。
- 此外,我们为所有方法使用相同的基本数据增强(即,随机调整大小和裁剪到 224,随机水平翻转,颜色抖动和归一化)。
4.3 Results on ImageNet-LT
图片注解:在 ImageNet-LT 上 90 或 200 个训练轮次下的准确率 (Acc)、上限参考准确率 (UA) 和相对准确率 (RA) 结果。表中,CR、IA 和 MI 分别表示类别再平衡、信息增强和模块改进。
图片注解:长尾学习方法在 200 个轮次下的准确率和相对准确率的性能趋势。这里, ◯ \bigcirc ◯ 的形状表示 softmax 基线; □ \square □ 表示类再平衡; △ \triangle △ 和 ◊ \Diamond ◊ 分别表示信息增强和模块改进方法。不同的颜色代表不同的方法。
-
关于所有类别的观察:
-
表4和图4报告了 ImageNet-LT 在所有类别上的平均性能。从这些结果中,我们对整体方法进展和不同方法类型有几点观察。如表4所示,
- 几乎所有的长尾方法在准确性方面都比 Softmax 基线表现得更好,这证明了长尾学习的有效性。
- 尽管如此,有两种方法的表现略逊于 Softmax,即 Decouple-CB-CRT 和 BBN。
- 我们推测Decouple-CB-CRT的较差表现可能是由于解耦训练第一阶段中类别平衡采样的表示学习不佳(有关更多经验观察,请参见[32])。
- BBN(基于官方代码)的较差结果可能来自于累积学习策略,该策略逐渐将学习重点从头部类别调整到尾部类别;然而,在训练结束时,它可能过多地关注尾部类别。因此,尽管尾部类别的性能有所改善,头部类别的模型准确性显著下降(参见表5),导致平均性能更差。
-
除了准确性之外,我们还基于**上限参考准确率(UA)和相对准确率(RA)**评估长尾方法。表4显示,
- 大多数方法的 UA 与基线模型相同,但仍有一些方法具有更高的 UA,例如 SSP、MiSLAS 和 SADE。
- 对于这些方法,性能提升不仅来自缓解类别不平衡,还来自其他因素,如数据增强或更好的网络架构。
- 因此,仅使用准确性进行评估是不全面的,而提出的RA度量提供了良好的补充,因为它减轻了除类别不平衡之外的因素影响。例如,
- 基于数据混合的 MiSLAS 在 90 个训练周期下的准确性高于 Balanced Softmax,但它也有更高的UA。因此,MiSLAS 的相对准确性低于 Balanced Softmax,这意味着在 90 个训练周期下,Balanced Softmax 比 MiSLAS 更好地缓解了类别不平衡。
- 大多数方法的 UA 与基线模型相同,但仍有一些方法具有更高的 UA,例如 SSP、MiSLAS 和 SADE。
-
尽管一些最近的高准确率方法具有较低的 RA,如图4所示,长尾学习的总体发展趋势仍然是积极的。这样的性能趋势表明,最近关于长尾学习的研究确实取得了实际进展。此外,最先进的 SADE 的 RA 为 93.0,这意味着未来仍有改进的空间。
-
我们还评估了不同训练周期(即 90 和 200)的影响,如表4所示。
- 总的来说,使用 200 个周期训练对于大多数长尾方法来说会导致更好的性能,因为充分的训练使深度模型能够更好地拟合数据并学习更好的视觉表示。
- 然而,也有一些方法在仅训练 90 个周期时表现更好,例如 De-confound 和 Decouple-CB-CRT。
- 我们推测,对于这些方法,90 个周期足够训练模型,而更多的训练周期不会带来额外的好处,反而会增加训练难度,因为它也影响了学习率衰减方案。
-
-
对不同方法类型的观察:
接下来,我们在表4中分析了不同方法类型。
-
首先,几乎所有类别再平衡(CR)方法都对长尾学习性能有益,与基线模型相比。
- 其中,LADE、Balanced Softmax 和 LDAM 达到了最先进的水平。
- 此外,Focal loss 最初是为了处理目标检测而提出的。在处理大量类别(例如 ImageNet-LT 中的 1,000 个类别)时,Focal loss 的表现不佳,只能带来边际改进。
- 在 LDAM 中,除了 LDAM 损失之外,还有一个延迟的再平衡优化计划。仅使用 LDAM 损失而不采用延迟方案的学习无法取得令人满意的结果。
- 此外,如表4所示,大多数类别敏感方法的上限参考准确率相同,因此它们的相对准确率与准确率呈正相关。因此,这种方法类型的准确率提升能够准确地反映类别不平衡的缓解情况。
-
在信息增强(IA)中,
- SSP(迁移学习)和RSG(数据增强)都有助于处理长尾不平衡。
- 尽管 SSP 也提高了上参考准确率,但其相对准确率的增加更为显著,这意味着性能提升主要来自处理类别不平衡。
-
在模块改进(MI)中,所有方法都有助于解决不平衡问题。
- 到目前为止,最先进的是基于集成的长尾方法,即 SADE 和 RIDE,在准确率和相对准确率方面都是如此。
- 尽管集成学习也提高了上限参考准确率,但处理不平衡带来的性能提升更为显著,从而导致更高的相对准确率。
-
-
在不同类别子集上的结果:
图片注解:ImageNet-LT 在 90 或 200 个训练轮次下对头部、中部和尾部类别的准确度结果。表中,WS 表示加权软最大值,BS 表示平衡软最大值。方法类型与表 4 相同。
-
然后,我们报告了不同类别子集的性能。如表5所示,
-
**几乎所有方法都在牺牲头部类别性能的情况下提高了尾部类别和中部类别的性能。**然而,头部类别在长尾学习中也很重要,因此有必要在不牺牲头部类别性能的情况下提高长尾性能。
- 潜在的解决方案包括信息增强和集成学习,例如SSP和SADE。
- 通过比较表4和表5,人们可以发现整体性能提升在很大程度上取决于中部和尾部类别性能的改善;因此,如何提高它们的性能仍然是未来长尾学习最重要的目标。
-
到目前为止,SADE 在准确性和RA(参见表4)方面取得了最佳的整体性能,但 SADE 在所有类别子集上并未达到最先进的性能(参见表5)。
- 例如,在训练 200 个周期时,SADE 的头部类别性能比 RIDE 差,其尾部类别性能比 BBN 差。
- 总结来说,SADE 更高的平均性能意味着获得更好长尾性能的关键是更好地在所有类别之间取得平衡。总之,目前深度长尾学习的最佳实践是同时使用集成学习和类别再平衡。
-
4.4 Results on iNaturalist 2018
图片注解:iNaturalist 2018 在 200 个训练轮次下的准确率结果。表中,CR、IA 和 MI 分别表示类别再平衡、信息增强和模块改进。
- iNaturalist 2018 不是一个从更大的数据池中采样合成的数据集,因此我们无法通过抽样为其构建一个具有相似数据大小的对应平衡训练集。因此,无法计算其相对准确率,所以我们只报告了准确性方面的性能。
- 如表6所示,大多数观察结果与在 ImageNet-LT 上的相似。
- 例如,大多数长尾方法优于 Softmax。
- 尽管基于官方代码的 LDAM 表现略差,但其尾部类别的性能优于基线,这表明 LDAM 可以缓解类别不平衡。然而,由于头部和尾部之间的权衡,其头部类别的性能显著下降,从而导致整体性能不佳。
- 此外,目前最先进的方法是 SADE,在准确性方面,这进一步证明了基于集成的方法优于其他类型的方法。
- 除了基于数据增强的方法外,所有这些基线都只采用了基本的增强操作。如果我们采用更强的数据增强和更长的训练时间,它们的模型性能可以进一步提高。
4.5 Analysis
分析
接下来,我们将分析各类方法之间的关系。
-
关于类别再平衡的讨论:
-
类别再平衡有三种方法的子类型,即重新采样、类别敏感学习和logit调整。
-
尽管它们在重新平衡类别的目标上相同,但在某种程度上它们是相互排斥的。
-
如表7所示,类别敏感学习(Balanced Softmax)单独使用时大大优于 Softmax。然而,当进一步使用logit调整时,其性能仅与Softmax相当。
- 图片注解:基于 ResNeXt-50 的 ImageNet-LT 类别再平衡分析。LA 表示 logit 后调整,re-sampling 表示类平衡重采样。BS 表示 Balanced Softmax。
-
原因是通过类别敏感学习训练的模型已经相对类别平衡,因此进一步使用logit调整来后调整模型推理会导致预测再次出现偏差,从而产生较差的性能。当进一步结合类别平衡重新采样时,性能甚至更差。
-
-
因此,简单地结合现有的类别再平衡方法,如果没有仔细的设计,不能带来更好的性能。
-
关于预训练与其他长尾方法之间关系的讨论:
-
正如第3.2节提到的,模型预训练是长尾学习的一种基于转移的方案。在这个实验中,我们分析它是否对其他长尾范式有益。
-
如表8所示,SSP 预训练为类别再平衡(类别平衡采样和 BS)和模块改进(解耦和 SADE)带来了一致的性能提升。因此,我们得出结论,基于转移的方法与其他长尾范式是互补的。
- 图片注解:分析基于迁移的方法(如 SSP 预训练)是否有利于其他类型的长尾学习。在这里,我们使用 ResNet-50 作为骨干,因为 SSP 提供了开源的自监督预训练 ResNet-50。
-
关于数据增强与其他长尾方法之间关系的讨论:
-
我们接着分析数据增强方法是否对其他长尾范式有益。
-
如表9所示,RandAugment 为 BS(一种类别再平衡方法)、PaCo(表示学习)、De-confound(分类器设计)和 SADE(集成学习)带来了一致的性能提升。这样的结果表明,基于增强的方法对其他长尾学习范式是互补的。
- 图片注解:基于 ResNeXt-50 分析增强方法(如 RandAugment)是否有利于其他类型的长尾学习。
-
关于解耦训练方案中类别敏感损失的讨论:
-
我们进一步评估了不同类别敏感学习损失在解耦训练方案中的性能。
- 在第一阶段,我们使用不同的类别敏感学习损失来训练模型骨干以学习表示,
- 而在第二阶段,我们使用了四种不同的分类器训练策略,即不重新训练的联合训练,最近类均值分类器(NCM),类别平衡分类器重新训练(CRT)和可学习权重缩放(LWS)。
-
如表10所示,解耦训练可以进一步提高大多数类别敏感方法的整体性能,除了 BS。在这些方法中,BS 在联合训练下表现最好,但其他方法在解耦训练下与 BS 表现相当。
- 这样的结果特别有趣,因为它们暗示尽管这些类别敏感损失在联合训练下表现不同,但它们本质上学习了相似质量的特征表示。
- BS 在解耦训练下比联合训练下的整体性能更差,可能意味着 BS 已经很好地进行了类别再平衡;进一步使用分类器重新训练进行再平衡不会带来额外的好处,甚至通过端到端的联合训练会退化网络参数的一致性。
- 图片注解:在 ImageNet-LT 上 200 个训练轮次下各种类敏感损失的解耦训练性能。这里,"Joint "表示单阶段端到端联合训练;"NCM "表示最近类均值分类器;"CRT "表示类平衡分类器再训练;"LWS "表示可学习权重缩放。此外,"BS "表示平衡软最大法。
4.6 Summary of Empirical Observations
实证观察总结
我们接下来总结了我们实证研究的主要信息。
- 首先,我们分析了现有长尾方法在相对准确率方面解决类别不平衡的程度,并确认现有研究在解决类别不平衡方面取得了积极进展,而不仅仅是通过技巧追求最先进的性能。
- 其次,我们在统一的设置中确定了现有长尾方法的相对性能,并发现基于集成的方法是目前最先进的。
- 第三,我们分析了方法在不同类别子集上的性能,并发现大多数方法在提高尾部类别性能的同时牺牲了头部类别的性能。考虑到长尾学习中所有类别都很重要,未来值得探索如何同时提高所有类别的性能。
- 第四,我们经验性地展示了类别再平衡的三种子类型在某种程度上是相互排斥的。此外,信息增强方法与其他长尾学习范式互补。
- 最后,通过评估解耦训练方案中的类别敏感学习,我们发现类别再平衡和解耦训练在解决类别不平衡方面发挥了可互换的作用。此外,在解耦训练下,不同类别敏感损失学到的表示性能相似。
Section 5 FUTURE DIRECTIONS
在本节中,我们确定了深度长尾学习的几个未来研究方向。
- 测试不可知的长尾学习:
- 现有的长尾学习方法通常假设测试类别分布是平衡的。然而,实际的测试分布往往违反这一假设(例如,是长尾的,甚至是反向长尾的),这可能导致现有方法在实际应用中失败。
- 为了克服这一限制,
- LADE 放宽了这一假设,假设测试类别分布可以任意倾斜,但测试分布的先验是可用的。
- 随后,SADE 在任务上进一步创新,其中测试类别分布不仅任意倾斜,而且未知。
- 除了类别不平衡之外,这个任务还提出了另一个挑战,即训练和测试样本之间未识别的类别分布变化。
- 开放集长尾学习:
- 现实世界中的样本通常具有长尾和开放类别分布。开放集长尾学习旨在从长尾数据中学习,并优化在包括头部、尾部和开放类别的平衡测试集上的分类准确性。
- 存在两个主要挑战:
- 如何在头部和尾部类别之间共享视觉知识;
- 如何减少尾部类别和开放类别之间的混淆。
- 联邦长尾学习:
- 现有的长尾研究通常假设在模型训练期间可以访问所有训练样本。然而,在实际应用中,长尾训练数据可能分布在众多的移动设备或物联网上,这需要对深度模型进行分散训练。这种任务被称为联邦长尾学习,
- 它有两个关键挑战:
- 长尾类别不平衡;
- 不同客户端本地数据中未知的类别分布变化。
- 类别增量长尾学习:
- 在现实世界的应用中,长尾数据可能以连续的和类别增量的方式出现。为了应对这种情况,类别增量长尾学习旨在从类别增量长尾数据中学习深度模型,
- 面临两个关键挑战:
- 当不同类别顺序出现时,如何在模型没有关于未来输入类别和标签频率的信息的情况下处理长尾类别不平衡;
- 如何在学习新类别时克服对之前类别知识的灾难性遗忘。这种任务设置也可以称为持续长尾学习。
- 多领域长尾学习:
- 当前的长尾方法通常假设所有长尾样本来自相同的数据边缘分布。然而,在实践中,长尾数据也可能来自具有不同数据分布的不同领域,例如 DomainNet 数据集。受此启发,多领域长尾学习旨在同时处理类别不平衡和领域分布变化。
- 一个更具挑战性的问题可能是不同领域之间类别不平衡的不一致性。换句话说,不同领域可能具有不同的类别分布,这进一步扩大了多领域长尾学习中的领域变化。
- 鲁棒长尾学习:
- 现实世界中的长尾样本也可能受到图像噪声或标签噪声的影响。然而,大多数长尾方法假设所有图像和标签都是干净的,这导致模型在实际应用中的鲁棒性较差。这个问题对于尾部类别尤其严重,因为它们的训练样本非常有限。受此启发,鲁棒长尾学习旨在同时处理类别不平衡并提高模型的鲁棒性。
- 长尾回归:
- 大多数现有的长尾视觉学习研究集中在分类、检测和分割上,这些任务具有离散的类别标签。然而,许多任务涉及连续标签,其中类别之间不存在硬分类边界。
- 受此启发,长尾回归旨在处理具有连续标签空间的长尾学习。在这样一个任务中,如何同时解决长尾类别不平衡和处理某些标签的潜在缺失数据仍然是一个开放的问题。
- 长尾视频学习:
- 大多数现有的深度长尾学习研究集中在图像层面,但忽略了视频领域也存在长尾类别不平衡的问题。考虑到视频数据中额外的时间维度,长尾视频学习应该比长尾图像学习更具挑战性。
- 得益于最近发布的 VideoLT 数据集,长尾视频学习可以在不久的将来进行探索。