很早之前就对动态权重比较感兴趣,最开始接触动态权重,是17年师兄师姐的一篇论文[1]。动态权重,或者称为自适应权重,可以广泛应用于多场景、多模态、多国家、多任务、多标签等各种任务的不平衡学习中。出于完整性,本文先对不平衡问题进行总结。
1. 概述
深度神经网络在计算机视觉、自然语言处理等多个领域展现出卓越的性能,然而,和学术界高质量的大规模数据集如 ImageNet ILSVRC 2012、MS COCO和 Places Database等不同,现实世界的数据分布大多是不平衡的,少数的头部类占据了大部分数据,而大多数的尾部类的样本却很少。这样的不平衡数据对神经网络模型的训练非常有挑战性,如图1所示,训练后的模型很容易偏向具有大量训练数据的头部类,导致模型在数据有限的尾部类上表现不佳。【长尾问题可以看作不平衡问题的特例,处理方法在此不做区分】
图1-1 不平衡数据[3]
本文参照[3],将现有的不平衡处理方法总结为三类,即类别重平衡、信息增强和模块改进,具体如下图所示。
图1-2 不平衡方法总结[3]
2. 类别重平衡
类别重平衡,旨在平衡模型训练时不同类别的训练样本数量,包括重采样、代价敏感学习和logit调整。
2.1 重采样
篇幅原因,此处预留一篇文章:《不平衡之钥: 重采样》
重采样分为随机过采样 (ROS, random over-sampling)和随机欠采样 (RUS, random under-sampling),广泛应用于类别不平衡问题中。ROS 随机重复尾部类的样本,而 RUS 随机丢弃头部类的样本,以使类别平衡。然而,当类别极度不平衡时,ROS 倾向于过度拟合尾部类,而 RUS 倾向于降低头部类的性能。
近期的研究提出了各种新的采样方法,包括类别平衡重采样和Scheme-oriented sampling。
类别平衡重采样
论文[5]对长尾识别中表示学习的各种采样策略进行了实证研究,采样策略包括实例平衡采样、类别平衡采样、平方根采样和渐进平衡采样。具体来说,实例平衡采样是每个样本被采样的概率相等,而类别平衡采样是每个类别被采样的概率相等;平方根采样是实例平衡采样的一种变体,其中每个类别的采样概率与相应类别中样本大小的平方根有关;渐进平衡采样在实例平衡采样和类别平衡采样之间进行渐进插值。
Scheme-oriented sampling
Scheme-oriented sampling试图为长尾学习提供一些特定的学习方案,如度量学习和集成学习。
图2-1 LMLE[6]
Large margin local embedding (LMLE)[6]使用了一种新的五元组采样方案 (quintuplet sampling scheme),以学习保持inter-cluster和inter-class margin的高质量特征。不同于采用两个对比pair的三元组损失 (triplet loss),LMLE提出了一个五元组采样器来采样四个对比pair,包括一个正样本对和三个负样本对,并鼓励采样的五元组遵循特定的距离顺序。正样本对由锚点和距离锚点最远的簇内样本组成,前两个负样本对来自同一类别内距离最近和最远的两个簇间样本,第三个负样本对来自距离最近的类间样本。这样,学习到的表示不仅类内间距较小,而且类间间距较大。此外,五元组损失中的每个数据批次包含来自不同类别的相同数量的样本,用于类别重平衡。
(综述中LMLE描述有问题,根据原文进行修正;这里我有点好奇,为什么不称为三个正样本对,一个负样本对)
2.2 代价敏感学习
篇幅原因,此处预留一篇文章:《不平衡之钥: 重加权》
代价敏感学习,也称为重加权,通过调整训练期间不同类别的损失值来对类别进行重新平衡,近期的研究提出了各种代价敏感学习方法来处理类别不平衡问题,包括类别级重加权和类别级re-margining。
类别级重加权
最直觉的方法是直接使用训练样本的标签频率对损失进行重新加权,即加权softmax损失。基于样本影响或模型预测和平衡参考分布之间的分布对齐,通过调整标签频率对损失权重的影响,可以进一步改善这种损失。除了损失值重新加权外,平衡softmax提出在训练期间使用标签频率来调整模型预测,以便通过先验知识来缓解类别不平衡的偏差。随后,LADE引入了标签分布分离损失,将学习的模型从不平衡训练分布中分离出来,然后在测试标签频率可用的情况下,模型可以适应任意的测试类别分布。
动态权重,是通过重加权处理不平衡问题的方式,只是对权重进行动态调整。[7, 8, 9, 10]分别是动态权重应用于多标签、多任务、多场景、多模态不平衡问题的工作。
篇幅原因,此处预留四篇文章:
《动态权重之多标签不平衡》
《动态权重之多任务不平衡》
《动态权重之多场景不平衡》
《动态权重之多模态不平衡》
类别级re-margining
类别级re-margining通过调整不同类别学习到的特征和模型分类器之间的最小距离来处理类别不平衡。label-distribution-aware margin (LDAM)使用基于标签频率的类别依赖的边距,并鼓励尾部类别具有更大的边距,扩展了现有的soft margin loss。然而,仅仅使用LDAM损失在经验上不足以处理类别不平衡。因此,LDAM进一步引入了deferred re-balancing optimization schedule,在学习LDAM损失一段时间后,通过类别平衡的方式重加权LDAM损失来重新平衡类别。
2.3 Logit调整
Logit调整,即基于标签频率对模型的logit进行后处理,是在类别不平衡问题中获得较大的类间相对边距的经典思路。[11]全面分析了不平衡任务中的logit调整方法,并从理论上表明logit调整是费雪一致 (Fisher consistent, 即当损失函数降到最小时,识别错误率也会最小)的,可以以最小化每个类别的平均错误。根据这一想法,[12]应用后处理策略,根据训练标签频率调整余弦分类边界。
2.4 小结
与其他不平衡学习范式相比,类别重平衡方法相对简单,并可以取得较好的效果。
然而,这类方法的缺点是,大多数类别重平衡方法都以牺牲头部类的效果为代价来改善尾部类的效果。这就像玩性能跷跷板一样,虽然总体性能得到了改善,但它无法从根本上解决信息缺少的问题,尤其在数据有限的尾部类上。为了解决这一限制,一个可行的解决方案是对所有类进行信息增强。
3. 信息增强
信息增强类方法在模型训练中引入额外的信息,以提升不平衡学习中模型的性能。该类型的方法有两种:迁移学习和数据增强。
3.1 迁移学习
篇幅原因,此处预留一篇文章:《不平衡之钥: 迁移学习》
迁移学习试图从源域 (如数据集、任务或类别)迁移知识,以增强目标域上的模型训练。在深度不平衡学习中,主要有四种迁移学习方案,即从头部类到尾部类的知识迁移、模型预训练、知识蒸馏和自训练(self-training)。
Head-to-tail迁移学习
从头部到尾部的知识迁移旨在迁移头部类的知识,以增强模型在尾部类上的预测能力。例如,特征转移学习 (FTL)[13]研究发现,尾部类样本的类内方差比头部类样本小得多,导致特征空间和决策边界有偏差。为解决该问题,FTL利用头部类的类内方差知识来指导尾部类样本的特征增强,从而使尾部类特征具有更高的类内方差,从而获得更好的尾部类性能。LEAP [14]为每个类构建了“特征云”,并试图通过在特征空间中增加具有一定干扰的尾部类样本,迁移头部类特征云的知识,以增强尾部类特征云的类内变化。最终,不同类间的类内特征方差的失真得到了缓解。
模型预训练
模型预训练是一种广泛应用的深度模型训练范式。特定域迁移学习 (DSTL)首先使用所有的不平衡样本对模型进行预训练,然后在更平衡的训练子集上微调模型。通过这种方式,DSTL将学习到的特征慢慢地迁移到尾部类,从而在所有类别之间获得更平衡的性能。此外,自监督预训练 (SSP)提出先使用自监督学习 (如对比学习或旋转预测)进行模型预训练,然后对长尾数据进行标准训练。实验结果表明SSP的有效性,其中尾部类表现出更大的性能增益。
知识蒸馏
知识蒸馏是基于训练好的教师模型的输出来指导学生模型的训练,最近的一些研究探索了不平衡学习中的知识蒸馏。LST提出一种类别增量学习策略来处理不平衡实例分割任务,其中知识蒸馏用于克服增量学习过程中的灾难性遗忘。多专家学习 (LFME)将整个不平衡数据集划分成几个不平衡程度较轻的子集,并使用不同的样本子集训练多个专家。基于这些专家,LFME以从易到难的课程实例选择方式,使用自适应知识蒸馏来训练统一的学生模型。遵循多专家框架,路由多样化分布感知专家 (RIDE)通过使用更少的专家模型来训练学生网络,从而减少多专家模型的参数。
自训练
自训练旨在从少量标记样本和大量未标记样本中学习性能良好的模型。具体来说,它首先使用标记样本来训练监督模型,然后使用该模型为未标记数据生成伪标签。之后,使用标记样本和伪标记样本重新训练模型。通过这种方式,自训练可以利用大量未标记样本中的知识来提高不平衡学习的性能。
3.2 数据增强
篇幅原因,此处预留一篇文章:《不平衡之钥: 数据增强》
数据增强用于增强模型训练数据集的大小和质量 。在不平衡学习中,有两种数据增强方法,即基于迁移的增强和常规(非迁移)增强。
迁移增强
可参阅第3.1节中的Head-to-tail迁移学习
非迁移增强
非迁移增强通过改进或设计数据增强方法来解决不平衡问题。MiSLAS研究不平衡学习中的mixup发现:(1) mixup有助于纠正模型的过度自信;(2) 在解耦训练方案中,mixup对表征学习有积极影响,但对分类器学习有消极或可忽略的影响。基于这些观察,MiSLAS提出在解耦方案中使用mixup来增强表征学习。此外,Remix也利用数据mixup进行长尾学习,并引入了一种重平衡的混合方法来专门增强尾部类。
3.3 小结
由于引入了额外的知识,基于迁移学习的方法在不牺牲头部类性能的情况下提高了尾部类性能。考虑到缺乏足够的尾部类样本是不平衡学习的关键问题之一,这种方法值得进一步探索。
数据增强是一种相对基础的技术,这使得这种方法在现实世界的应用中比其他方法更实用。然而,简单地使用现有的类别不可知增强技术来改进不平衡学习是不利的,因为考虑到头部类有更多的样本并且将被扩充更多,它们可能会进一步增加不平衡。如何更好地为长尾学习进行数据增强仍是一个悬而未决的问题。
4. 模块改进
篇幅原因,此处预留一篇文章:《不平衡之钥: 网络模块改进》
除了类别重平衡和信息增强外,研究人员还探索了在不平衡学习中改进网络模块的方法。这些方法可分为四类:表征学习改进特征提取器,分类器设计增强模型分类器,解耦训练增强特征提取器和分类器的学习,集成学习改进整体结构。
4.1 表征学习
现有的不平衡表征学习方法基于四种主要范式,即度量学习、Sequential training、Prototype learning和迁移学习。
度量学习
Metric learning旨在设计特定任务的距离度量,以确定目标之间的相似性或差异性;在不平衡学习中,基于度量学习的方法设计基于距离的损失,以探索更具区分性的特征空间。LMLE [6]引入一种五元组损失来进行表征学习,可以保持簇间和类间的margin。Range loss使用一个小批次内所有样本对之间的总距离,它使用整个批次的统计信息,而不是实例级别的统计信息,从而缓解了总体类别数据数量不平衡的偏差;更具体地说,Range loss通过最大化小批量中任意两个类中心的距离来扩大类间距离,并通过最小化类内样本之间的最大距离来减少类内变化。通过这种方式,Range loss可以获得具有更好识别能力和更少不平衡偏差的特征。
Sequential training.
每个类别在有区分度的视觉表征中都有各自独特的特征。因此,分层特征学习 (HFL)层次化地将目标聚类到视觉上相似的类别组中,形成分层聚类树。在该聚类树中,原始节点中的模型在ImageNet-1K上进行预训练;每个子节点中的模型继承其父节点的模型参数,然后基于簇节点中的样本进行微调。通过这种方式,从拥有大量类别的组中获得的知识逐步迁移到拥有较少类别的子组中。
Prototype learning
基于Prototype learning的方法旨在学习特定于类别的特征原型,以提高不平衡学习的性能。开放式长尾识别(OLTR)创新性地探索了在开放世界中处理不平衡识别的特征原型的想法,其中测试集包括头部类、尾部类和开放类 (开放类表示训练集中不存在的测试类别)。OLTR维护了一个包含区分性特征原型的视觉元存储,并使用从视觉存储中提取的特征来扩充原始特征。通过这种方式,学习到的特征空间将更具区分性,来自新类别的样本特征将远离存储,更接近原点。这样的特征空间使OLTR能够区分闭集类并识别新类。此外,OLTR 还探索了一种自注意力机制来增强特征学习。
迁移学习
在3.1节中,我们介绍了一些基于迁移学习的不平衡方法,如SSP和LEAP,这些方法改进了表征学习。此外,无监督发现 (UD, unsupervised discovery)提出使用自监督学习来帮助从具有长尾目标的图像中发现新的、更细粒度的目标。具体来说,首先,UD使用预训练的类别不可知的掩码提议网络 (class-agnostic mask proposal network)为所有可能的目标生成目标边界框和分割掩码;然后,UD基于边界框和语义掩码的特征,应用三种新的自监督三元组损失来学习双曲特征空间;最后,基于学习的特征,UD进行无监督聚类和专有标签分配 (exclusive label assignation),以发现新的、更细粒度的目标。
4.2 分类器设计
除了表征学习,研究人员还设计了不同类型的分类器来处理不平衡问题。深度学习通常是使用线性分类器:
然而,类别不平衡通常会导致头部类的分类器权重范数大于尾部类的分类器权重范数,这使得线性分类器容易偏向优势类。为解决该问题,一些研究提出尺度不变的余弦分类器:
其中分类器权重和样本特征均被归一化。其中τ是温度系数,应合理选择。
4.3 解耦训练
解耦训练将学习过程解耦为表征学习和分类器训练两部分。[15]是引入两阶段训练方案的开创性工作,该文第一阶段对表征学习的不同采样策略进行了实证评估,第二阶段通过固定训练好的特征提取器来评估不同的分类器训练方案。在分类器学习阶段,有四种方法,包括使用类别平衡采样重新训练分类器、最近类别均值分类器、τ-归一化分类器和可学习的权重伸缩方案。主要结论有两方面:在不平衡任务中,实例平衡采样是表征学习的最佳策略;重新调整分类器可以带来显著地性能提升。
4.4 集成学习
基于集成学习的方法生成和组合多个网络模块 (即多个专家),以解决不平衡学习问题。图3总结了现有基于集成学习的主要方案。
图4-1 集成学习方法[3]
4.5 小结
表征学习和分类器设计是深度不平衡学习的基本问题,值得进一步探索。近年来,解耦训练越来越受到研究者的关注,类平衡分类器学习的第二阶段不会引入太多的计算开销,却会带来显著的性能提升。不过,累积的训练阶段使解耦训练不太实用,无法与其他不平衡问题 (如目标检测和实例分割)中现有的公式化方法集成。尽管如此,解耦训练思想简单,可以很容易地用于设计解决各种不平衡学习问题的新方法。相比于其他类型的不平衡学习方法,基于集成学习的方法通常在头部类和尾部类上都能获得更好的性能。然而,由于集成学习方法使用多个专家,通常会导致更高的计算成本,通常可以使用共享特征提取器来缓解该问题。
5. 参考文献
[1] He K, Wang Z, Fu Y, et al. Adaptively weighted multi-task deep network for person attribute classification[C]//Proceedings of the 25th ACM international conference on Multimedia. 2017: 1636-1644.
[2] Zhou B, Cui Q, Wei X S, et al. Bbn: Bilateral-branch network with cumulative learning for long-tailed visual recognition[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 9719-9728.
[3] Zhang Y, Kang B, Hooi B, et al. Deep long-tailed learning: A survey[J]. arXiv preprint arXiv:2110.04596, 2021.
[4] Zhang Y, Wei X S, Zhou B, et al. Bag of tricks for long-tailed visual recognition with deep convolutional neural networks[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(4): 3447-3455.
[5] B.Kang,S.Xie,M.Rohrbach,Z.Yan,A.Gordo,J.Feng,and Y. Kalantidis, “Decoupling representation and classifier for long-tailed recognition,” inInternational Conference on Learning Representations, 2020.
[6] Huang C, Li Y, Loy C C, et al. Learning deep representation for imbalanced classification[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 5375-5384.
[7] He K, Wang Z, Fu Y, et al. Adaptively weighted multi-task deep network for person attribute classification[C]//Proceedings of the 25th ACM international conference on Multimedia. 2017: 1636-1644.[8] WWW'22 | 动态调整辅助任务的梯度提升多任务推荐系统性能
[9] 动态权重:推荐算法的新范式[10] CVPR'22 | 多模态学习中的贡献不平衡问题
[11] A. K. Menon, S. Jayasumana, A. S. Rawat, H. Jain, A. Veit, and S. Kumar, “Long-tail learning via logit adjustment,” in International Conference on Learning Representations, 2021. [12] T. Wu, Z. Liu, Q. Huang, Y. Wang, and D. Lin, “Adversarial robustness under long-tailed distribution,” in Computer Vision and Pattern Recognition, 2021, pp. 8659–8668.
[13] X. Yin, X. Yu, K. Sohn, X. Liu, and M. Chandraker, “Feature transfer learning for face recognition with under-represented data,” in Computer Vision and Pattern Recognition, 2019, pp. 5704–5713.
[14] J. Liu, Y. Sun, C. Han, Z. Dou, and W. Li, “Deep representation learning on long-tailed data: A learnable embedding augmentation perspective,” in Computer Vision and Pattern Recognition, 2020.
[15] B. Kang, S. Xie, M. Rohrbach, Z. Yan, A. Gordo, J. Feng, and Y. Kalantidis, “Decoupling representation and classifier for long-tailed recognition,” in International Conference on Learning Representations, 2020.