(附论文&代码)如何深入研究不平衡回归问题?

目标检测与深度学习

共 12271字,需浏览 25分钟

 ·

2021-07-20 23:37

点击左上方蓝字关注我们



全网搜集目标检测相关,人工筛选最优价值内容

编者荐语
目前已被ICML 2021接收为 Long oral presentation:Delving into Deep Imbalanced Regression这项工作在经典的数据不平衡问题下,探索了非常实际但极少被研究的问题:数据不平衡回归问题

转载自 | kaggle竞赛宝典


项目主页:http://dir.csail.mit.edu/

代码:https://github.com/YyzHarry/imbalanced-regression

论文:https://arxiv.org/abs/2102.09554


现有的处理不平衡数据/长尾分布的方法绝大多数仅针对分类问题,即目标值是不同类别的离散值(索引);但是,许多实际的任务涉及连续的,甚至有时是无限多的目标值。本文推广了传统不平衡分类问题的范式,将数据不平衡问题从离散值域推广到连续域。

    我们不仅提出了两种简单有效的方法去提升不平衡回归问题上的模型表现,也建立了五个新的benchmark DIR数据集,涵盖了计算机视觉,自然语言处理,和医疗问题上的不平衡回归任务。目前代码,数据,和模型已经在GitHub上开源,地址见文末。

    那么开篇首先用概括一下本文的主要贡献:

  • 我们提出了一个新的任务,称为深度不平衡回归(Deep Imbalanced Regression,简写为DIR)。DIR任务定义为从具有连续目标的不平衡数据中学习,并能泛化到整个目标范围;

  • 我们同时提出了针对不平衡回归的新的方法,标签分布平滑(label distribution smoothing, LDS)和特征分布平滑(feature distribution smoothing, FDS),以解决具有连续目标的不平衡数据的学习问题;

  • 最后我们建立了五个新的DIR数据集,涵盖了computer vision,NLP,和healthcare上的不平衡回归任务,来方便未来在不平衡数据上的研究。

    接下来我们进入正文。按照惯例,我会先抛开文章本身,大体梳理一下数据不平衡这个问题在分类以及回归上的一部分研究现状,在此基础上尽量详细的介绍我们的思路和方法,省去不必要的细节。


1. 研究背景与动机


    数据不平衡在现实世界中是无处不在。现实数据通常不会是每个类别都具有理想的均匀分布,而是呈现出尾巴较长的偏斜分布,其中某些目标值的观测值明显较少。这种现象对深度模型提出了巨大挑战,并激发出了许多解决数据不平衡的现有的方法技术。

        具体来说,之前的解决方案可以大致分为基于数据的解决方案和基于模型的解决方案。基于数据的解决方案要么对少数群体类别进行过度采样,要么对多数群体进行不足采样,例如SMOTE算法[1],该算法通过线性插值同一类别中的样本来生成少数群体类别的合成样本。而基于模型的解决方案包括对损失函数的重加权(re-weighting)[2],或是直接修改损失函数[3],以及利用相关的特定学习技巧,例如 transfer learning[4],meta-learning[5],以及 two-stage training[6]。更完整的现有不平衡学习方法调研欢迎查看:我之前在不平衡分类问题下的回答。

    但是,现有的从不平衡数据中学习的解决方案,主要考虑的是具有categorical index的目标值,也就是说目标值是不同的类别。例如下图所示,子图1是用于地点分类的典型的真实世界数据集,该数据集不平衡且标签分布具有长尾效应,并且其标签是不同的类别,例如房屋,森林和博物馆,他们都互不重叠。同样,子图2是现实世界中用于物种分类的不平衡数据集iNaturalist,其目标值也属于不同类别,并且具有hard boundaries,不同类之间有一个硬性的边界,不同类别之间没有重叠。    然而,许多现实世界中的任务可能涉及连续的,甚至有时是无限多个的目标值。举个栗子,在计算机视觉的应用中,我们常常需要根据一个人的视觉外观,即他们的照片,来推断他们的年龄。在这里,年龄便是一个连续的目标值,并且在目标范围内可能会高度失衡。下图是一个实际年龄估计数据集,该数据集在不同年龄之间具有歪斜的标签分布。在这种情况下,如果将不同年龄划分为不同的类别来进行学习的话,是不太可能得到最佳的结果,因为这种方法没有利用到附近年龄人群之间特征的相似性

   同样,在医疗应用中也会发生类似的问题。我们想推断出不同患者群体的健康指标,例如他们的心率,血压和血氧饱和度。而这些health的指标也是连续的,并且它们通常在患者人群中具有非常不平衡,或是偏斜的分布。

    此外,许多重要的现实生活应用(例如经济,危机管理,故障诊断或气象学等)也有类似的需求,这些应用中需要预测的连续目标变量都往往存在许多稀有和极端值[7]。这个连续域的不平衡问题,无论在线性模型还是深度模型里都是存在的。甚至在深度模型中更为严重。这是为什么呢?由于神经网络的预测经常是over-confident的,以至于这种不平衡被严重的放大了。

    因此,在这项工作中,我们定义并研究深度不平衡回归问题,Deep Imbalanced Regression(DIR),即从具有连续目标值的不平衡数据中学习。具体来说,给定具有连续目标值的数据集,DIR想要从分布不均衡和偏斜的数据中学习,同时需要处理某些目标区域的潜在缺失数据,并且最终模型能够generalize到整个支持的target range,也就是所有目标值范围上。对于DIR我们考虑用一个在整个连续目标值范围内分布是平衡的测试集来测试模型的泛化能力,这样能够为DIR提供非常全面并且没有偏差的评估。这种setting也与不平衡的分类问题的setting保持一致。

深度不平衡回归问题,Deep Imbalanced Regression(DIR),即从具有连续目标值的不平衡数据中学习,同时需要处理某些目标区域的潜在缺失数据,并且使最终模型能够generalize到整个支持的所有目标值范围上。


2. 不平衡回归的难点与挑战


需要注意到的是,相比于不平衡的分类问题,DIR带来了以下全新的挑战。

    首先,给定连续的,并且可能无穷多的目标值,类与类之间的hard boundaries便不再存在。那么当直接应用传统的不平衡分类方法,例如重采样或重加权,因其是对于特定的离散的类别进行操作,这就导致了这些方法不直接适用于连续域的情况。

    此外,连续标签本质上在不同目标值之间的距离是具有意义的。这些目标值(标签)直接告诉了我们,哪些数据相隔更近,而哪些相隔更远;而这个有意义的距离,会进一步指导我们该如何理解这个连续区间上的数据不平衡的程度。例如,假设有两个目标标签和  ,它们在训练数据中具有同样的sample数量,然而,  位于一个具有高密度数据的邻域中(在该邻域范围内有许多样本),而位于一个低密度数据的邻域中。那么在这种情况下,并不具有相同程度的数据不平衡。

    最后,与分类问题不同,对于DIR,某些目标值可能就根本没有数据。而这也激发了对目标值做 extrapolation 以及 interpolation 的需求。

    总结上述的问题,我们可以看到DIR相比与传统的不平衡分类具有全新的难点与挑战。那么,我们应该如何进行深度不平衡回归呢?在接下来的两节,我们分别提出了两个简单且有效的方法,标签分布平滑(label distribution smoothing,LDS)和特征分布平滑(feature distribution smoothing,FDS),分别通过利用在标签空间特征空间中临近目标之间的相似性,来提升模型在DIR任务上的表现。


3. 标签分布平滑(LDS)


    我们首先从标签分布平滑(LDS)说起,通过一个简单且比较 motivating 的例子开始,来展示一下当数据不平衡出现的时候,分类和回归问题之间的区别。

    Motivating Example我们使用两个不同的数据集,(1) CIFAR-100[8],一个具有100类的分类数据集,以及 (2) IMDB-WIKI[9],一个大型图像数据集,用于根据人的视觉外观来估算其年龄。这两个数据集本质上具有完全不同的标签空间(label space):CIFAR-100是 categorical label space,也就是他的目标值是 class index;而IMDB-WIKI是 continuous label space,他的目标值则是年龄,age。我们将IMDB-WIKI的年龄范围限制为0〜99,以便让两个数据集具有相同的标签范围。此外,我们还对两个数据集进行了采样,用来模拟数据不平衡,同时确保它们具有完全相同的标签的密度分布,如下图所示。

    然后,我们分别在两个数据集上训练一个普通的ResNet-50模型,并画出了它们的测试error的分布。首先,如下左图所示,在CIFAR-100上,我们观察到测试误差的分布实际上与标签密度的分布非常相关,是highly correlated的。具体而言, 测试误差作为一个class index的函数,和categorical label space上的标签密度分布,具有一个很高的 (negative) Pearson correlation(皮尔森相关系数),这里是 −0.76。那么这个现象是在我们预料之中的,因为拥有更多样本的majority classes比 minority classes是能更容易的学好的。

    但是,有趣的是,即使标签密度分布与CIFAR-100相同,具有连续的标签空间的 IMDB-WIKI的测试误差分布也与CIFAR-100非常不同。尤其是,IMDB-WIKI的误差分布更加平滑,并且不再与标签密度分布很好地相关,这里的 Pearson correlation 只有 −0.47。

    这种现象表明,对于连续标签,其经验标签密度(empirical label density),也就是直接观测到的标签密度,不能准确反映模型或神经网络所看到的不平衡。因此,在连续的情况下,empirical label density是不能反映实际的标签密度分布。这是由于相临近标签(例如,年龄接近的图像)的数据样本之间是具有相关性,或是互相依赖的。

    标签分布平滑那么,基于这个观察,我们提出 Label Distribution Smoothing (LDS) ,来估计在连续标签情况下的有效label density distribution。我们的方法参考了在统计学习领域中的核密度估计,kernel density estimation的思路,来在这种情况下估计expected density。具体而言,给定连续的经验标签密度分布,LDS 使用了一个 symmetric kernel distribution 对称核函数  ,用经验密度分布与之进行卷积,来拿到一个 kernel-smoothed的版本,我们称之为 effective label density,也就是有效的标签密度,用来直观体现临近标签的数据样本具有的信息重叠的问题。那么我们也可以进一步验证,由LDS计算出的有效标签密度分布结果现已与误差分布良好相关,皮尔森相关系数为 −0.83。这表明了利用 LDS,我们能获得实际影响回归问题的不平衡的标签分布。

    那么有了用LDS估计出的有效标签密度,之前用来解决类别不平衡问题的方法,便可以直接应用于DIR。比如说,一种直接的可以adapted 的方法是利用重加权方法,具体来说就是,我们通过将损失函数乘以每个目标值的LDS估计标签密度的倒数来对其进行加权。之后在实验部分我们也会展示,利用LDS可以一致提升很多方法。


4. 特征分布平滑(FDS)


    我们现在已经知道,标签空间的连续性可以有效地用于解决DIR问题。那么进一步想,在目标空间上的连续性应该在特征空间中会产生相应的连续性。也就是说,如果模型正常工作并且数据是平衡,则我们可以预期label相近的sample,他们对应的feature的统计信息也应该是彼此接近的。同样,我们使用一个motivating的例子,来展示数据不平衡对DIR中feature的统计信息的影响。

Motivating Example同样,我们使用对IMDB-WIKI上训练的ResNet-50模型。我们主要focus在的学到的特征空间,即上图中的  。我们为标签空间引入了一种额外的结构以供分析,我们把label space分为了等间隔的区间。我们用  表示目标值的区间索引。在这个age estimation这个任务中,我们定义区间的长度为1,也即我们关注的最小的年龄差是1。现在,通过这种区间的结构,我们可以将具有相同目标区间的要素分组到同一组。然后,我们针对每个区间中的数据计算其相应的特征统计量(即均值和方差  )。

    接下来,我们可以开始可视化特征的统计量之间的相似性。首先,我们选择一个 anchor 区间,然后获得该区间的特征的统计信息 。同理,我们可以对其他所有区间也计算 mean 和 variance。最后,我们计算这个 anchor age 和其他所有 age 的 特征统计量的 cosine similarity,也就是余弦相似度,画在了图中。此外,我们还使用了紫色,黄色,和粉红色,分别显示了具有不同数据密度的区域。

  有趣的是,我们发现 anchor age 和其临近的区间的 特征统计量是高度相似的。特别是,在区间25-35之间,他们的mean 和 variance 的相似度都高达 90% 以上。需要要注意的是,Anchor age 30 刚好是在many-shot region,也就是他的训练数据是非常多的。因此,该图也证实了我们的直觉,即对于连续目标值,当有足够的数据时,特征的统计量在临近点是相似的

    不过,该图还显示了对于数据样本量很少的区域的问题,例如0至6岁的年龄范围。值得注意的是,在此范围内,特征的均值和方差显示出与30岁年龄段的特征统计量,具有出乎意料的高度相似性。这种不合理的相似性是由于数据不平衡造成的。具体来说,由于年龄0到6的图像数量很少,因此该范围的特征会从具有最大数据量的范围(即30岁左右的范围)继承其先验。这也就造成了图中所示的问题。

    特征分布平滑受这些观察的启发,我们提出了特征分布平滑,Feature Distribution Smoothing(FDS)。FDS对特征空间进行分布的平滑,本质上是在临近的区间之间来传递特征的统计信息。此过程主要作用是去校准特征分布的潜在的有偏差的估计,尤其是对那些样本很少的目标值而言。

    现在,利用估计的和平滑的统计量,我们遵循标准的 whitening and re-coloring[10] 过程来校准每个输入样本的特征表示。那么整个FDS的过程可以通过在最终特征图之后插入一个特征的校准层,来实现将FDS的集成到深度网络中。最后,我们在每个epoch 采用了对于 running statistics的 momentum update,也就是动量更新。这个是为了获得对训练过程中特征统计信息的一个更稳定和更准确的估计。

    那么就像之前提到的,FDS同样可以与任何神经网络模型以及之前类别不平衡的方法相集成。在接下来的实验中,我们可以观察到利用FDS同样能一致提升很多方法。


5. 基准DIR数据集及实验分析


    基准DIR数据集终于来到了激动人心的实验部分。为了方便对不平衡算法进行标准的测试,以及方便未来的research工作,我们在现有的大型数据集基础上,建立了五个DIR的基准数据集,涵盖了计算机视觉(computer vision),自然语言处理(natural language processing),和医疗(healthcare)的应用。这些任务涵盖了从单值(single value)预测(例如年龄,文本相似性得分,健康状况得分),到密集值(dense value)预测(例如深度)。这些数据集的训练数据分布如下图所示:

  • IMDB-WIKI-DIR(vision, age):从包含人面部的图像来推断估计相应的年龄。基于IMDB-WIKI[9]数据集,我们手动构建了验证集和测试集,使其保持了分布的平衡。

  • AgeDB-DIR(vision, age):同样是根据单个输入图像进行年龄估算,基于AgeDB[11]数据集。注意到与IMDB-WIKI-DIR相比,即使两个数据集是完全相同的task,他们的标签分布的不平衡也不相同。

  • NYUD2-DIR(vision, depth):除了single value的prediction, 我们还基于NYU2数据集[12]构建了进行depth estimation的DIR任务,是一个dense value prediction的任务。我们构建了NYUD2-DIR数据集来进行不平衡回归的评估。

  • STS-B-DIR(NLP, text similarity score):我们还在NLP领域中构建了一个叫STS-B-DIR的DIR benchmark,基于STS-B数据集[13]。他的任务是推断两个输入句子之间的语义文本的相似度得分。这个相似度分数是连续的,范围是0到5,并且分布不平衡。

  • SHHS-DIR(Healthcare, health condition score):最后,我们在healthcare领域也构建了一个DIR的benchmark,叫做 SHHS-DIR,基于SHHS数据集[14]。这项任务是推断一个人的总体健康评分,该评分在0到100之间连续分布,评分越高则健康状况越好。网络的输入是每个患者在一整晚睡眠过程中的高维PSG信号,包括ECG心电信号,EEG脑电信号,以及他的呼吸信号。很明显可以看到,总体健康分数的分布也是极度不平衡的,并存在一定的target value是没有数据的。

    在评估过程中,我们在平衡的测试集上评估每种方法的性能。我们进一步将目标空间划分为几个不相交的子集:称为many-shot,medium-shot,few-shot,还有zero-shot region,来反映训练数据中样本数量的不同。比如,many-shot代表对于这个固定的区间,有超过100个training data sample。对于baseline方法,由于文献中只有很少的不平衡回归的方法,除了之前的使用合成样本进行不平衡回归的工作[15][16]外,我们也提出了一系列不平衡回归的baseline,包含了不同种类的学习方法(例如Focal loss[17]的regression版本Focal-R),具体详见我们的文章。

    实验由于实验较多,这里仅展示在IMDB-WIKI-DIR上的部分结果,所有的结果请详见论文。如下图所示,我们首先根据使用的基本策略的不同,将不同的方法分为4个部分,在每个部分里,我们进一步将LDS,FDS以及LDS和FDS的组合应用于基线方法。最后,我们报告了LDS + FDS相对于Vanilla模型的performance提升。如表所示,无论使用哪一类训练方法,LDS和FDS均具有非常出色的表现,特别是在few-shot region上能达到相对误差近40%的提升


01


为什么FDS能work?


    我们进一步来对提出的方法做一些进一步的分析。首先是对FDS分析它是如何影响网络的训练过程的。与先前的设置类似,我们展示出了anchor age 0的特征统计的相似度图。如图所示,由于目标区间age 0中的样本很少,因此特征统计量可能具有较大的偏差,例如0岁的统计量反而与40-80岁之间的区间最相似。相反,当添加FDS时,统计数据会得到更好的校准,从而仅在其附近具有较高的相似性,并且随着目标值变大,相似度会逐渐降低。我们进一步可视化训练期间 running statistics 和 smoothed statistics之间的距离。有趣的是,随着训练的发展,平均距离是逐渐减小并趋于0的。这表明该模型学会了即使不进行平滑操作,也可以生成更准确的特征,最后可以在inference过程中,我们即可去掉平滑模块,也能得到很好的结果。


02


Extrapolation & Interpolation


    最后,在实际的DIR任务中,某些目标值可能根本没有数据(例如之前看到的SHHS-DIR和STS-B-DIR上的标签分布)。这激发了对 target extrapolation 和 interpolation 的需求。如下图所示,我们从IMDB-WIKI-DIR的训练集中建立了不同的子集,涵盖了不同peak的标签分布,并且这些训练子集在某些区域中是没有训练数据的,但是我们对训练的模型会在原始的测试集进行评估,来分析zero-shot的generalization。下图我们可视化了我们的方法相对于原始模型,在所有target value上的绝对的MAE的提升(子图上半部分蓝色是训练的标签分布,下半部分橙色是相对误差的增益)。如前所述,我们的方法可以对所有区间得到显着的性能提升,特别是对于zero-shot范围,能够更好的进行Extrapolation & Interpolation。


6. 结语


    最后总结一下本文,我们提出了一个新的任务,称为深度不平衡回归(DIR),同时我们系统性地研究了DIR,并提出了对应的简单而有效的新方法LDS和FDS,以解决具有连续目标的学习不平衡数据的问题,最后我们建立了五个新的benchmark来方便未来在不平衡数据上的回归研究。本文有很直观的问题分析与解释,以及用非常简洁并且通用的框架去提升连续域下的不平衡学习任务。   

     我个人还是挺喜欢这篇文章的,因为本文的出发点其实是另一个我们正在做的医疗AI相关项目,在过程中的一个环节我们遇到了头疼的问题---即想要用深度模型做一个连续variable的回归,但是此variable的标签分布非常sparse且及其不平衡,而这恰恰是healthcare数据的常态。经过一番调研我们发现目前并没有很好解决这类问题的方法,于是我们最终develop了LDS和FDS,并发现相比与baseline模型能极大的提升performance,算是验证了其在现实的任务上的有效性和实用性 ;) 希望我们的方法不仅局限于academic datasets,而是对其他实际的不平衡回归问题也有帮助。

    当然,我们的工作还是存在其局限性,也留了一些坑。首先,无论是LDS还是FDS,虽然想法直观,但都存在超参数的问题(因引入了对称核函数做smoothing),而不同任务的最优参数可能不尽相同,需要根据特定任务的标签空间来测试决定合适值。其次,我们提出的方法虽能提升现有的模型表现,但不平衡回归问题本身仍未完全解决,甚至还有很大的提升空间。最后,作为比较早的系统研究这个问题的文章,我们并没有给出理论上的探索与推导,而这也是后续工作可以继续挖掘的。希望本文能抛砖引玉,也非常欢迎大家follow我们的工作!如果大家有任何想要交流的技术问题,欢迎留言多多交流。参考文献附上我们论文的相关链接。


参考文献


  1. Chawla, N. V., et al. SMOTE: Synthetic minority over-sampling technique. JAIR, 2002.

  2. Deep Imbalanced Learning for Face Recognition and Attribute Prediction. TPAMI, 2019.

  3. Learning imbalanced datasets with label-distribution-aware margin loss. NeurIPS, 2019.

  4. Liu, Z., et al. Large-scale long-tailed recognition in an open world. CVPR 2019.

  5. Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting. NeurIPS, 2019.

  6. Decoupling representation and classifier for long-tailed recognition. ICLR, 2020.

  7. Learning from imbalanced data: open challenges and future directions. 2016.

  8. Krizhevsky, A., Hinton, G., et al. Learning multiple layers of features from tiny images. 2009.

  9. abRothe, R., et al. Deep expectation of real and apparent age from a single image without facial landmarks. IJCV, 2018.

  10. Sun, B., Feng, J., and Saenko, K. Return of frustratingly easy domain adaptation. AAAI, 2016.

  11. Agedb: The first manually collected, in-the-wild age database. CVPR Workshop, 2017.

  12. Indoor segmentation and support inference from rgbd images. ECCV, 2012.

  13. Semeval-2017 task 1: Semantic textual similarity multilingual and crosslingual focused evaluation. International Workshop on Semantic Evaluation, 2017.

  14. The sleep heart health study: design, rationale, and methods. Sleep, 20(12):1077–1085, 1997.

  15. Branco, P., Torgo, L., and Ribeiro, R. P. Smogn: a preprocessing approach for imbalanced regression. 2017.

  16. Torgo, L., Ribeiro, R. P., Pfahringer, B., and Branco, P. Smote for regression. In Portuguese conference on artificial intelligence, 2013.

  17. Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal loss for dense object detection. ICCV, 2017.

  18. https://www.zhihu.com/people/yuconan

  19. https://zhuanlan.zhihu.com/p/369627086


END



双一流大学研究生团队创建,专注于目标检测与深度学习,希望可以将分享变成一种习惯!

整理不易,点赞三连↓

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报