RSG:学习不平衡数据集的简单有效模块

互联不一般哥 2024-03-15 00:15:08

引用

Wang J, Lukasiewicz T, Hu X, et al. RSG: A Simple but Effective Module for Learning Imbalanced Datasets[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 3784-3793.

摘要

不均衡的数据集在实际操作中广泛存在,对神经网络的训练构成了一个巨大挑战,很难泛化到低频出现的类别上。在本文中,我们提出了一个稀有类别样本生成器(rare-class sample generator, RSG)来解决该问题。RSG 在训练过程中会针对稀有类别,生成一些新样本,它具有以下几项优势:(1)使用很方便且多用途,可以很容易就整合到任意的 CNN 中,与不同的损失函数搭配使用效果很好。(2)它只在训练阶段使用,不会增加推理阶段的负担。作者进行了大量的实验来证明它的性能。我们在 Imbalanced CIFAR 数据集上取得了很棒的成绩,在 Places-LT、ImageNet-LT 和 iNaturalist 2018 数据集上实现了迄今为止最好的成绩。代码位于:https://github.com/Jianf-Wang/RSG。

1.介绍

在过去几年得益于 CNN 的出现和高质量的大规模数据集的使用,计算机视觉取得了突飞猛进。但是这些大规模数据集通常都是精心设计的,每个类别中的样本个数都比较均衡,这和现实世界中的数据分布是不一致的。我们经常遇到一些类别的样本很难搜集的情况,造成数据分布极不均衡。根据数据的分布,不均衡的数据集通常可以分为两类:长尾不均衡分布和阶梯不均衡分布,本文对二者都做了研究。

在训练过程中,针对稀有类别生成一些新样本的方法各有缺陷,限制了模型性能。首先,一些框架并不是端到端训练的,梯度无法被反向传播,然而深度模型通常会从端到端的训练过程中受益。其次,一些方法利用了常见类别样本的变化信息(如不同的姿态或光照),学习常见类别的样本来生成新的稀有类别样本。

为了弥补上述缺陷,本文提出了一个简单而高效的全参数化生成器,叫做 稀有类别样本生成器(RSG),可以搭配任何主干网络端到端地训练。RSG 直接使用变化信息,这些变化信息反映了常见类别的样本所具有的各种姿态和光照,然后再生成新样本,而不是使用随机向量来编码这些信息。因此 RSG 能够生成更加合理的、稳定的样本。此外,RSG 引入了一个新模块,进一步过滤掉变化信息中可能存在的、与常见类别有关的信息,解决“张冠李戴”的问题。

图 1 展示了如何在 CNN 中加入 RSG 模块,来解决不均衡数据集的问题。RSG 只需要某一层的样本特征图,在训练过程中产生一些新样本,以此来调整稀有类别的决策边界,扩张其特征空间。测试时不使用 RSG,这样就不会增加计算负担。我们只在图 1 中展示了 RSG 的一个简单例子,但 RSG 可以用在任何网络结构中,如 ResNet、DenseNet、ResNeXt 和 Inception。

2. 相关工作

最近出现的用于解决数据不均衡的方法,大体可分为下面几类:基于重采样和重加权的、基于新的损失函数、基于元学习、基于未标注数据的,和基于样本生成的方法。

重采样方法包括对稀有类别进行过采样,对常见类别进行降采样,以此平衡数据的分布。重加权方法为常见类别和稀有类别样本赋予不同的权重,从而解决数据不均衡问题。另一类方法则设计新的损失,对常见和稀有类别直接施加约束,从而影响它们的决策边界。有人也提出了基于元学习的方法来解决该问题。Yang 和 Xu 分析了不均衡标签的问题,通过半监督和自监督策略,利用未标注数据来改善数据不均衡的学习。

3. 稀有类别样本生成器(RSG)

稀有类别样本生成器 RSG 由一个中心估计模块、对比模块和一个向量变换模块组成(参考图 2)。为了优化 RSG 的参数,我们使用了 2 个损失函数,即带样本对比中心估计(CESC)损失和最大向量(MV)损失。

给定一个 mini-batch,包含常见和稀有类别样本,RSG 将它们的特征图作为输入,前向传递到各个模块。中心估计模块会预测每个类别的一组中心点,作为 anchors 来获取每个样本的特征位移。对比模块确保在样本生成过程中,特征位移不会包含任何的常见类别的相关信息。向量变换模块计算基于预测中心点的每个常见类别样本的特征位移,然后用于稀有类别的样本生成。将常见类别中得到的特征位移用于稀有类别的样本生成,应该可以减轻数据集不均衡的问题,因为稀有类别通常缺少输入变化。

中心估计模块 可以形式化为:

其中 xl∈RD×W×H 是输入样本的特征图,我们假设 D,W,H 分别代表信道维度、宽度和高度。l 是样本的类标签,ave(.)代表宽度和高度的全局池化,Al 和 bl 是这个模块对输入进行线性转换的参数,f 是 softmax 函数,可以输出一个概率分布(γl)来将样本分配到其对应类的最近中心点。

中心估计模块对每个类会预测一组中心点,而非一个中心点,因为类内数据分布是未知的。如果类内数据分布是多模态分布,使用一组中心点要更好一些。相反,如果是单模态分布,这些点可能会距离很近或重叠,这和单个中心点相似。

对比模块 可以形式化为:

其中 x1∈RD×W×H,x2∈RD×W×H 是来自给定 mini-batch 的任意两个输入样本的特征图,cat(.)表示连接操作,沿着通道维度执行。h(.)通过堆叠两个带 256 个通道的 3×3 卷积层实现的,并且有一个 ReLU 层。A*和 B*是线性层的参数,产生一个概率分布 γ*来显示两个样本是否来自于同一类。

向量变换模块 将常见类的真实样本和稀有类的真实样本的特征位移结合起来,生成稀有类别的新样本。如图 1 所示,不均衡数据集会造成决策边界的偏差,导致稀有类别的特征空间要小于常见类别。所以,我们提出使用向量变换模块来生成稀有类别的新样本,扩大特征空间,推开决策边界。

为了生成新样本,我们首先需要获得常见类的特征位移,这是通过常见类的样本和它们相应的中心点来实现的,这些中心点由中心预测模块得到:

其中 xlfreq∈RD×W×H 代表常见类 l 中的一个样本。我们使用 Cli∈RD 来表示带有维度 D 的类别 l 中的第 i 个中心,K 是最靠近 xlfreq 中心的索引,即

up(.)表示上采样操作,沿着宽度和高度维度复制 Cli 的值,得到一个中心点的特征图,它的大小和 xlfreq 一样。然后从 xlfreq 减去相应的中心特征图,这样 xlfreq 中和类别相关的信息就被去除了。所以,我们用 xfd-freq 代表常见类样本的特征位移。

然后,第二步就利用 xfd-freq 和稀有类的真实样本来为稀有类生成新的样本。xfd-freq 可以加到稀有类的中心点上,但是我们出于两个原因,直接将 xfd-freq 加到稀有类的真实样本上:首先,一些 xfd-freq 的长度可能要小于稀有类的特征空间的原始方差。如果我们将 xfd-freq 加到中心点上,新样本可能就不会对决策边界有影响。其次,因为稀有类样本的大小有限,大多数稀有类样本可以直接决定出决策边界,将 xfd-freq 加到稀有类的样本上能更直接地影响决策边界。

所以,稀有类的新样本生成过程如下:

其中,xl'rare∈RD×W×H 表示稀有类 l'中的一个样本,xl'new 是该类中新生成的样本,T 是一个定义为 T(z) = conv(z)的线性转换,其中 conv 是单个卷阶层,包括一组卷积滤波器,核大小为 3、步长为 1、padding 大小为 1,通道数和输入特征图的通道数一样。

具有样本对比损失的预测中心点(LCESC) 目的是更新每个类别的中心点,优化对比模块及中心点预测模块。因此,它由两个经典损失项构成,可以写作:

其中 d , j , k 表示特征图上通道、宽度和高度的索引。γli 是样本属于从式 2 中得到的第 i 个中心点的概率。K 是每个类内中心点的个数,s 是训练批次大小 batch size。假设一个 mini-batch 大小是 s,在训练对比模块时,我们从这个 mini-batch 中随机选择 s/2 对样本。用 y∈{0,1}来表示每一对输入样本是否来自同一个类别。⟨⋅⟩和⟨⋅⟩ s/2 表示 LCESC 的第一项和第二项,分别从 s 个样本和 s/2 对样本上计算均值得到。

最大向量损失(LMV)优化向量变换模块(即 T)的参数,确保新生成的样本能够扩张稀有类的特征空间,基本思想是最大化新生成样本相对于它们中心点的特征位移(即图 3 中的整体特征位移)。这里,我们将一个样本的特征位移看作从中心点到样本的向量(见图 3)。为了生成一个新的稀有类样本,我们可以直接将 xfd-freq 加到稀有类样本上(图 3 左),但是 xfd-freq 的方向通常是不确定的,新的总体特征位移长度不会总是最大的,因为三角不等式的关系。因而我们设计了 MV 损失,让变换向量与相同方向上的稀有类样本的特征位移共线,而变换向量的长度不变(图 3 右),从而最大化地影响决策边界。

γ∗ 是对比模块中两个输入样本不属于同一类别的概率,MV 损失为:

其中 j 和 k 代表了特征图宽度和高度上的索引,| . |取绝对值,xfd-freq 表示稀有类别中从一个样本及其最近中心点通过等式 3 得到的特征位移。对比模块的两个输入样本分别是 T (xfd-freq)和 xlfreq。LMV 第一项用于最小化 T (xfd-freq)和 xfd-rare 的余弦角度,这样它们就在相同的方向上共线了,第二项目的是让 T (xfd-freq)与 xfd-freq 相比长度不变。第三项是让 T (xfd-freq)和 xlfreq 不属于同一类别,确保 T (xfd-freq)不会有任何的常见类别相关的信息。给定一个 mini-batch 的样本,⟨⋅⟩ s new 表示 LMV 是在新生样本上均值计算得到的,其中 snew 是新生成样本的个数。

RSG 的训练过程和损失函数在算法 1 和下面都分别列出来了:

其中 Lcls 表示任意一个分类损失,如带交叉熵损失的 softmax,focal loss,AM-Softmax, LDAM 等,λ1 , λ2 表示系数。本文中,epoch 的阈值 Tth

设为当学习率衰减到 0.001 时的 epoch 索引值。

RSG 的流程如图 2 所示。在 epoch 阈值 Tth 之前,对于样本中的一个 mini-batch,RSG 根据手动设定的常见类别比值 α= nfreq /ncls(其中 nfreq 和 ncls 分别表示常见类别数和类别总数)将其分为两部分。比如,对于一个有 10 个类别的训练集,α= 0.3,样本数最多的三个类别就是常见类别,其它类别就是稀有类别。(为了简单表示,图 2 中只有一个常见类别和一个稀有类别)然后,将数据输入进中心点预测模块,更新每个类的中心点并优化中心预测模块的参数。此外,这些数据也会输入进对比模块,优化其参数。在 epoch 阈值 Tth 之后,RSG 开始生成新样本,对比模块的参数不会再更新。对比模块会将梯度传给向量变换模块的 T,从而优化 T,过滤掉常见类别相关的信息。最后,新生成样本的特征图会沿着 batch 维度和原始的输入特征图连接起来,然后输入到后续的网络层中,计算损失并优化整个网络。

4. 实验评估

数据集。实验评估的重点是不平衡 CIFAR、the iNaturalist 2018、Places-LT 和 ImageNet-LT 数据集。

消融研究。我们对 ρ = 50 的不平衡 CIFAR 进行了消融研究,报告了三次独立运行的平均误差。我们综合搜索了 RSG 的超参数,并通过与 LDAM-DRW(其中 DRW 代表由 Cao 提出的延迟重新加权训练策略)在 ResNet32 上进行实验,探索了哪种级别的特征最适合 RSG 生成新样本。

首先,我们将网络架构固定到 ResNet-32 上,并针对不同的 Lcls 测试了 RSG。根据表 1,当结合不同的损失函数时,配备 RSG 的深度模型始终比没有 RSG 的模型表现更好。当模型与具有交叉熵损失的标准 softmax(表示为 ERM,即经验风险最小化)相结合时,RSG 显著提高了性能。这是合理的,因为标准 softmax 没有任何针对不平衡数据集的机制

其次,我们用 DRW (即 LDAM-DRW)将 Lcls 设置为 LDAM,并在不平衡 CIFAR 上结合 RSG 评估了(主要是五种)不同的网络架构,即 ResNet-32、ResNet-56、ResNet-110、DenseNet-40 和 ResNeXt-29 (8×64d)。如表 2 所示,当 RSG 被集成到网络中时,所有模型都得到持续改进。

第三,我们对 MV 损失和矢量变换模块进行了全面的消融研究,并基于表 3 获得了以下结论:(1)MV 损失的每个子项都是重要且有用的,因为一旦我们移除了它的任何子项,就可以观察到错误率的增加。(2)将特征位移添加到稀有类的中心导致错误率增加。这一事实验证了我们在第 3 节中提到的内容,即,将特征位移添加到真实稀有类样本中是比将其添加到稀有类中心更好的选择。(3)使用具有 MV 损失的向量变换模块比直接将特征位移添加到稀有类中的样本表现更好,从而验证了向量变换模块的有效性。

此外,RSG 与以前的样本生成方法进行了比较。如表 4 所示,RSG 在不同的条件下都超过了以前的方法,表明 RSG 可以解决上一代方法的缺点并提高性能。

最后,我们在 ResNet-32 的不同池层之前利用了 RSG,以探索哪种级别的功能最适合生成新样本。如表 5 所示,当在倒数第二个下采样层之前使用时,RSG 达到最佳结果。因此,在剩下的实验中,RSG 仍然用在倒数第二个下采样层之前。

与迄今最优方法的比较。对于以下每个实验,我们报告平均误差率或平均准确度,它们取自三次独立运行。表 6 显示了当 ρ∈{ 50,100}时在不平衡 CIFAR 的结果。我们首先将我们的 LDAM-DRW-RSG 和 LDAM-DRW 进行比较,因为这个比较直接显示了 RSG 带来的改善。在将 LDAM-DRW 和 RSG 相结合之后,我们在长尾和阶跃不平衡分布上都取得了显著改进,这显示了 RSG 处理不平衡数据集的能力。结果,在 RSG 的帮助下,LDAM-DRW-RSG 在不平衡 CIFAR 上取得了优于以往方法的结果。

表 7 显示了在 iNaturalist 2018 上使用 ResNet-50 作为主干的不同方法的最高错误率,表 7 中的结果表明,我们可以通过利用提出的生成器获得更好的结果,这直接证明了 RSG 的有效性。此外,对于 2 倍 schedular 环境,LDAM-DRS-RSG 的最高错误率进一步降低。因此,可以看出,RSG 帮助该模型在两种训练 schedular 环境中实现了新的最优结果,这表明 RSG 能够有效地处理不平衡的数据集。

表 8 显示了 Places-LT 上的最高准确性。结果表明,当 RSG 与 LDAM-DRS 结合时,性能可以进一步提高,表明 RSG 是有用的。此外,与最近流行的两种方法 τ 范式和 BBN 相比,RSG 可以提高模型在中镜头和少镜头类上的性能,而在多镜头类上的精度损失更小,从而获得更高的整体精度和新的最优结果。

表 9 显示了 ImageNet-LT 上的最高准确率,与 LDAM-DRW 相比,LDAM-DRW-RSG 的准确率更高,验证了 RSG 能够缓解不平衡数据集带来的问题。RSG 可以增强这个模型,大大提高它在中镜头和少镜头类的通用性。此外,通过使用 RSG,我们还可以在 ImageNet-LT 上获得新的最优结果。

5. 总结和展望

我们引入了一个稀有类样本生成器(RSG),这是一个通用的构建模块,用于缓解不平衡数据集上的训练问题。RSG 简单而有效,因为它是一个架构不可知和损失不可知的插件模块,并且在推理阶段不会给主干网带来任何额外的负担。在广泛的实验中,我们验证了 RSG 的有效性,它在四个公共基准数据集上取得了出色的结果。由于 RSG 很灵活且正交于大多数以前的方法,未来的研究可以集中在直接通过设计更优雅的方式来改善 RSG 模块,从而产生更高质量的稀有类样本。

致谢

本文由南京大学软件学院 2021 级硕士研究生杨灵权翻译转述,博士生肖媛审核。

0 阅读:0

互联不一般哥

简介:感谢大家的关注