不平衡问题-1

文章:2020_NIPS Rethinking the Value of Labels for Improving Class-Imbalanced Learning

宣传铺天盖地,首次通过半监督和自监督这两个不同的viewpoint去尝试理解和利用不平衡的数据(标签),并且验证了这两种框架均能提升类别不均衡的长尾学习问题。

分别从理论和实验上验证了,对于类别不均衡的学习问题,利用

  1. 半监督学习 — 也即利用更多的无标签数据
  2. 自监督学习 — 不利用任何其他数据,仅通过在现有的不平衡数据上先做一步不带标签信息的自监督预训练(self-supervised pre-training),

都可以大大提升模型的表现,并且对于不同的平衡/不平衡的训练方法,从最基本的交叉熵损失,到进阶的类平衡损失[1][2],重采样[3],重加权[4][5],以及之前的state-of-the-art最优的decouple算法[6]等,都能带来一致的&较大的提升。


2 Imbalanced Learning with Unlabeled Data

  • 2.1 Theoretical Motivation

  • 2.2 Semi-Supervised Imbalanced Learning Framework

    • 2.2.1 Main Results

    • 2.2.2 Further Analysis and Ablation Studies

3 A Closer Look at Unlabeled Data under Class Imbalance 过度段

4 Imbalanced Learning from Self-Supervision

  • 4.1 Theoretical Motivation

  • 4.2 Self-Supervised Imbalanced Learning Framework

  • 4.2.1 Main Results

  • 4.2.2 Further Analysis and Ablation Studies


对于长尾数据,从两方面入手:

  • 认为稀缺的监督信息虽然少,但可以用更多的无监督数据,结合半监督显著提高最后分类结果
  • 认为不平衡大概率会产生标签偏置,想要去抛弃,先用自监督学到好的起始表示形式(自监督预训练)


2 有unlabel数据下的不平衡学习(with SSL)

这一部分是探索标签的正面作用:假设现在除了我们已有的不平衡数据以外,还有unlabeld data,这些无标签数据对于有限的标签信息是重要的。这部分是通过建模+实验说明原始不平衡数据和额外数据是如何影响整个学习过程的。其实结果也就两个:

  1. 原始数据集的不平衡性会影响我们最后estimator的准确性
  2. 无标签数据集的不平衡性影响我们能够得到一个好的estimator的概率

看看他是怎么说明的这个问题的。

2.1 理论分析

设定一个最简单的二分类问题,原始的数据分布 P X Y P_{XY} PXY是采样于2个不同均值相同方差高斯的混合(高斯混合模型)。特别的正负标签是概率0.5分出来的(应该是均分的意思)。那如果现在对于一个正类 Y = + 1 Y=+1 Y=+1, X ∣ Y = + 1 ∼ N ( μ 1 , σ 2 ) X|Y=+1 \sim N(\mu_1,\sigma^2) XY=+1N(μ1,σ2), X ∣ Y = − 1 ∼ N ( μ 2 , σ 2 ) X|Y=-1 \sim N(\mu_2,\sigma^2) XY=1N(μ2,σ2). 这时候贝叶斯最优分类器为 f ( x ) = s i g n ( x − μ 1 + μ 2 2 ) f(x) = sign(x - \frac{\mu_1+\mu_2}{2}) f(x)=sign(x2μ1+μ2). 所以学习到最优的 θ \theta θ 就是均值 θ = μ 1 + μ 2 2 \theta = \frac{\mu_1+\mu_2}{2} θ=2μ1+μ2. 这里我的理解是:


在这里插入图片描述


以上是理想情况。下面走入现实,就是我们原本的数据是imbalance的,我们在这些数据上训练得到一个基础分类器 f B f_B fB,然后用 f B f_B fB 给额外的无标签数据打伪标签。打完之后这些数据被分到正类和负类,并且这里面分别都有打对的和打错的。这个时候我们怎么估计 θ \theta θ 呢?(为什么要估计 θ \theta θ,是因为我们希望它和上面最优的 θ \theta θ 越接近越好,就要看看哪些因素怎么影响。)最简单的估计方法就是去看被分到正类的样本它的平均,作为它高斯的那个均值中心;被分到负类的样本们他的平均,作为它高斯的那个均值中心 (就相当于之前的 $\mu_1 $& μ 2 \mu_2 μ2 了,两个高斯的中心). 然后加在一起除以2就是我们要估计的 θ \theta θ 了:


在这里插入图片描述


这里很多是个人的理解,感觉假设太强了。

假设 Δ \Delta Δ 代表基础分类器对于两个类的准确度的gap。这样的话我们推出以下定理:


在这里插入图片描述


定理想说的东西:至少有…的概率,最优的 θ \theta θ θ ^ \hat{\theta} θ^+gap之间可以无限接近。

即之前说的两个结论:

  1. 鉴于想要 θ \theta θ θ ^ \hat{\theta} θ^越接近越好, Δ \Delta Δ 越小越好。但用越不平衡的数据训练的基础分类器就会 Δ \Delta Δ越大 ==> 原始数据集的不平衡性会影响我们最后estimator的准确性
  2. 如果基础分类器不错,就可以用 n ~ + \tilde{n}_+ n~+ n ~ − \tilde{n}_- n~ 看做是对于无标签数据集的不平衡性的近似。当无标签数据集不平衡时,会影响概率那一项 ==> 无标签数据集的不平衡性影响我们能够得到一个好的estimator的概率

所以unlabeled data是有用的。当然如果有平衡的数据那成功的概率会更高的。


2.2 半监督的不平衡学习框架

采用最简单的自训练(self-training)的半监督学习方法:用原来的长尾数据集先训练一个模型,用这个模型给无标签的数据打伪标签,然后一起训练。这就是个大框架。

实验设置:人工生成的长尾版本的CIFAR-10和SVHN数据集


在这里插入图片描述


通过实验可以看到 不同的不平衡率,不同的无标签数据不平衡率,不同的数据集,不同的不平衡处理方法 + unlabel data 是有用的


在这里插入图片描述


最后展示一下定性的实验结果。我们分别画出了不使用/使用无标签数据,在训练集和测试集上的t-SNE可视化图。从图中可以直观看出,使用未标记数据有助于建模更清晰的类边界,并促成更好的类间分离,尤其是对于尾类的样本。这样的结果也符合我们的直观理解,对于尾类样本,其所处区域的数据密度低,模型在学习过程中不能对这些low-density区域很好建模边界,从而造成模糊性(ambiguity)导致较差的泛化;而无标记数据则能有效提高低密度区域样本量,加上了更强的regularization使得模型重新更好地建模边界。


在这里插入图片描述


一句话:样本量up+正则 对于建模边界有用



3 过渡

实际情况,不平衡+半监督出现的问题:

  1. 无标签数据与原始数据的相关性对于半监督学习的结果有很大的影响。
  2. 既然原始训练数据是不平衡的,能够采集到的无标签数据也大概率是极度不平衡的

在这里插入图片描述


上述问题在某些特定的实际不平衡学习任务中,可能是非常普遍的。比如医疗/疾病诊断的应用,对于可能获得的无标记数据,其绝大多数大概率也都是从正常样本上采集的,这首先造成了数据的不平衡;其次,即使是患病的样本,也很可能由很多其他混杂因素(confounding factors)导致,而这会降低与本身研究病症的相关性。因此,在一些很难利用半监督学习的极端情况下,我们需要完全不同的但是也行之有效的方法。非常自然的,我们接下来从不平衡标签负面价值的角度去入手,阐述另一思路 — 自监督学习带来的好处。



4 自监督角度下的不平衡学习

如何使不平衡学习得益于自监督训练

这次的设定是数据集来自同均值不同方差的高斯分布,正类少,负类多。我们来看一下有自监督和没有自监督学习出来的线性分类器。也就是一个输入是原始的输入,我们用标准的错误概率度量分类器的性能: e r r f = P ( X , Y ) ∼ P X Y ( F ( X ) ≠ Y ) err_f = P_{(X,Y) \sim P_{XY}}(F(X) \not= Y) errf=P(X,Y)PXY(F(X)=Y). 在正常的训练中,公式里的feature代表的是raw data,X 。这种情况可以首先证明上述的线性分类器一定会有至少 1/4 的 error probability.


在这里插入图片描述


一个是通过自监督任务学习出来的的表示作为输入。比如说学出来的表示是: Z = k 1 ∣ ∣ X ∣ ∣ 2 2 + k 2 ,      k 1 , k 2 > 0 Z=k_1 ||X||_2^2+k_2, \ \ \ \ k_1, k_2>0 Z=k1X22+k2,    k1,k2>0. 再输入到线性分类器得到分类器: f s s = s i g n ( − Z + b ) f_{ss} = sign(-Z+b) fss=sign(Z+b),b是正类表示的平均和负类表示的平均的加和 。它满足:


在这里插入图片描述


表示如果通过一个好的self-supervised task学习到了有用的表达形式,我们能得到:

  1. 有很高的概率,我们能得到一个更好的分类器。这个分类器的error probability随数据维度 d 的增加而指数型减小。对于如今常见的高维数据(如图像)这种性质是我们希望得到的。
  2. 训练数据的不平衡性会影响我们能够得到这样一个好的分类器的概率 N + / − N_{+/-} N+/ 影响

4.1自监督(SSP)的不平衡学习框架

为利用自监督来克服固有的“label bias”,提出在长尾学习的第一阶段先放弃标签信息,进行自监督预训练。此过程**旨在从不平衡数据集中学到更好的、与标签无关的初始化特征信息。**在此阶段后,我们可以使用任何标准的训练方法,去训练得到最终的模型。由于预训练与正常训练阶段所采用的学习方法无关,因此这种策略可与任何现有的不平衡学习算法兼容。一旦自监督产生良好的初始化,网络就可以从预训练任务中受益,并最终学习到更通用的表示形式。

实验:长尾的CIFAR-10/100,ImageNet的长尾版本,真实的大型长尾数据集iNaturalist

自监督算法:经典的Rotation prediction和最新的对比学习方法MoCo

比较了4种不同自监督方法的效果,以及不同的Imbalance Type,使用SSP能够对不同的 (1) 数据集,(2) 不平衡比率,以及 (3) 不同的基础训练算法,都带来了一致的、肉眼可见的提升,并且在不同数据集上都超过了之前最优的长尾分类算法。


在这里插入图片描述


还有另外两个数据集不po在这里了

最后同样展示一下自监督下的定性实验结果。与之前一样,我们分别画出了训练和测试集的特征t-SNE投影。从图中不难发现,正常CE训练的决策边界会很大程度被头类样本改变,从而导致在(平衡的)测试集中尾类样本的大量“泄漏”,无法很好泛化。相比之下,使用SSP可以保持清晰的分离效果,并减少尾类样本的泄漏,尤其是在相邻的头类和尾类之间。这样的结果同样也能直观理解:自监督学习通过额外的task来约束学习过程,对数据空间的结构学习的更完整、提取的信息更全面,相比不平衡的标签信息带来的语义信息的不平衡,其能有效减轻网络对高层语义特征的依赖,以及对尾部数据的过拟合,学到的特征表示会更鲁棒易泛化,从而在下游任务中表现更好。


在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/sanctuary03/article/details/109253853