回归问题数据不平衡

一,背景

机器学习中数据不平衡是一种常见问题,数据集不平衡分为分类(离散)数据的失衡和回归(连续)数据的失衡,目前绝大部分的解决方案都是针对分类失衡而提出的,回归问题的失衡指的是连续数据比例分布不均匀,如在图片美学数据集的场景下,AADB的数据统计分布为正太分布,两端得分分布较少,用不均衡的数据拟合训练得到的模型,会导致很多意想不到的问题。

二,方法

数据不平衡问题的解决方法基本上可以分为基于数据层面的解决方案,基于算法层面的解决方案,以及一些其他比较小众的方案。

2.1 分类问题的数据不平衡

2.1.1 基于数据的解决方案
  1. 下采样,对样本数量比较多的类别数据进行下采样[17]。
  2. 上采样,对样本数量比较少的类别数据进行上采样[16]。
  3. 生成新的数据样本,[2][3]对数量少的类别进行线性插值的操作,使数量少的类别的数据变多,缓解数据不平衡。
2.2.2 基于算法层面的解决方案
  1. 修改模型损失函数,如对样本数量比较少的类别赋予更重的损失权重,focal loss[9]同时调整正负样本权重和难易分类样本的权重来提升模型的性能。对于分类问题,很多算法努力扩大类之间的margin,各个类别设置的margin通常是一样的,[5]设计了一种能使各个类别使用不同margin的loss。[6][7][8]基于数据,设计不同的损失函数,提升失衡类别或整体类别的性能。
  2. 使用学习技巧,使用决策树,boost, bagging,transfer learning, meta learning, two stage learning,[10]通过调整UR(Under Representation,即失衡类别)类的特征分布,使UR类特征分布像常规类特征分布,从而提升整体模型性能,[1]中作者使用了元学习来解决类别失衡问题,除了抽取图片特征,作者使用了一个额外的memory模块来表示类内与类间距离,对于长尾类别,模型从memory模块获取有效信息来提升模型性能。[11]通过度量学些,将长尾数据映射到更高维空间,扩大类间距离,防止样本少的类别被样本多的类别所淹没,提升模型性能。[12]将特征表达和分类解耦,通过两阶段学习来提升长尾问题的性能。
  3. 自监督/半监督学习提升性能表现,[4]使用自监督与半监督学习提升模型在长尾数据的性能,作者通过理论分析了自监督与半监督可以提升长尾数据的性能,随后做了实验证明了在标准训练方法之前插入自监督和半监督的预训练,可以提升模型的性能。
2.2.3 改变模型评价
  1. 选择合适的评价方式[18],如不使用准确率,如1)ROC曲线下面积,2)mean Average Precesion,指的是在不同召回下的最大精确度的平均值,3)假设共有n个点,假设其中k个点是少数样本时的Precision,这个评估方法在推荐系统中也常常会用。
  2. 调整阈值,大部分默认阈值为输出值的中位数,如逻辑回归输出0-1,正常阈值取0.5,解决办法之一是提高阈值。
  3. 转换问题定义,将少分类的问题定义为异常检测,使用无监督学习检测异常类别。

2.2 回归问题的数据不平衡

回归问题的数据不平衡目前还研究的比较少,主要是直接将部分分类问题的数据不平衡解决办法迁移到回归问题。

2.2.1 基于数据的解决方案
  1. 下采样,对样本数量比较多的区间进行下采样,评判的标准比较模糊。
  2. 上采样,对样本数量比较少的区间进行上采样,评判的标准比较模糊。
  3. 生成新的数据样本,[14]对样本数量比较少的区间进行插值生成新的样本, 该方法的缺点是比较难生成高维的数据,如图片。
2.2.2 基于算法层面的解决方案
  1. 修改损失函数,对不同区间样本re-weight,修改特征等。[13]通过损失函数对不同的区间样本赋予不同的损失权重,这篇论文利用连续数据之间的相关性,对数据的统计值进行平滑,然后对数据的损失函数赋予统计函数的倒数权重。[13]调整高维数据特征,该方法是针对图片的方法,原理是基于一个假设,即数据的输入特征分布应该和输出特征分布类似,通过调整输出特征分布来提高模型的表现性能
  2. 使用学习技巧,boost, bagging,[15]采用集成学习的方式,多次采样,使用多个模型,最终取各个模型得分的平均值。

三, 总结

目前大部分的研究都集中于分类问题的数据不均衡,回归问题的数据不均衡被研究的比较少,同时相应的解决方案也比较少。这样的原因一方面是分类问题比较常见,是各种其他任务如检测的基础模块,其被研究的时间更长,另一方面的原因是回归的长尾部分可以转化为其他问题,如异常检测等。

对于分类问题,通常我们应该根据不同的具体情况采取不同的解决放啊:

1、在正负样本都非常之少的情况下,应该采用数据合成的方式。

2、在负样本足够多,正样本非常之少且比例及其悬殊的情况下,应该考虑一分类方法。

3、在正负样本都足够多且比例不是特别悬殊的情况下,应该考虑采样或者加权的方法。

4、采样和加权在数学上是等价的,但实际应用中效果却有差别。尤其是采样了诸如Random Forest等分类方法,训练过程会对训练集进行随机采样。在这种情况下,如果计算资源允许过采样往往要比加权好一些。

5、另外,虽然过采样和欠采样都可以使数据集变得平衡,并且在数据足够多的情况下等价,但两者也是有区别的。实际应用中,我的经验是如果计算资源足够且小众类样本足够多的情况下使用过采样,否则使用欠采样,因为过采样会增加训练集的大小进而增加训练时间,同时小的训练集非常容易产生过拟合。

6、对于欠采样,如果计算资源相对较多且有良好的并行环境,应该选择Ensemble方法。

对于回归问题,大部分分类问题的解决办法都可以迁移到回归问题上,回归问题的数据不平衡由分类数据不均衡发展而来,单目前解决方案并不充分。

参考文献

[1] Ziwei Liu, Zhongqi Miao, Xiaohang, Large-Scale Long-Tailed Recognition in an Open World, CVPR, 2019

[2] Chawla, N. V., Bowyer, K. W., Hall, L. O., and Kegelmeyer, W. P. Smote: synthetic minority over-sampling technique. Journal of artificial intelligence research, 16:321–357, 2002

[3] He, H., Bai, Y., Garcia, E. A., and Li, S. Adasyn: Adaptive synthetic sampling approach for imbalanced learning. In IEEE international joint conference on neural networks, pp. 1322–1328, 2008

[4] Yuzhe Yang, Zhi Xu,Rethinking the Value of Labels for Improving Class-Imbalanced Learning, CVPR, 2020

[5] Kaidi Cao, Colin Wei, Adrien Gaidon, Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss, NeurIPS, 2019

[6] Yin Cui, Menglin Jia, Class-Balanced Loss Based on Effective Number of Samples, CVPR, 2019

[7] Dong, Q., Gong, S., and Zhu, X. Imbalanced deep learning by minority class incremental rectification. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019

[8] Huang, C., Li, Y., Chen, C. L., and Tang, X. Deep imbal- anced learning for face recognition and attribute predic- tion. IEEE transactions on pattern analysis and machine intelligence, 2019

[9] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Focal Loss for Dense Object Detection, CVPR, 2017

[10] Xi Yin, Xiang Yu, Kihyuk Sohn, Feature Transfer Learning for Face Recognition with Under-Represented Data, CVPR, 2019

[11] Zhang, X., Fang, Z., Wen, Y., Li, Z., and Qiao, Y. Range loss for deep face recognition with long-tailed training data. In Proceedings of the IEEE International Conference on Computer Vision, 2017

[12] Kang, B., Xie, S., Rohrbach, M., Yan, Z., Gordo, A., Feng, J., and Kalantidis, Y. Decoupling representation and classifier for long-tailed recognition. ICLR, 2020

[13] Yuzhe Yang Kaiwen Zha Ying-Cong Chen, Delving into Deep Imbalanced Regression, arxiv, 2021

[14] Paula Branco, Luıs Torgo, Rita P. Ribeiro, SMOGN: a Pre-processing Approach for Imbalanced Regression, PMLR, 2017

[15] Branco, P., Torgo, L., and Ribeiro, R. P. Rebagg: Resampled bagging for imbalanced regression.PMLR, 2018

[16] Samira Pouyanfar, et al. Dynamic sampling in convolutional neural networks for imbalanced data classification

[17] He, H. and Garcia, E. A. Learning from imbalanced data. TKDE, 2008.

After pre-training, natural language is used to reference learned visual concepts (or describe new ones) enabling zero-shot transfer of the model to downstream tasks

[18] Jason Brownlee, https://machinelearningmastery.com/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/, blog, 2019