在深度学习中,是否应该打破正负样本1:1的迷信思想?

  • Q:是否应该打破正负样本 1:1 的迷信思想?
    A:是的,类别不平衡的比例只是表象,并非本质。

  • Q:当训练集和测试集分布匹配,但正负样本比例仍然悬殊,是否有必要再引入处理不平衡样本的策略?
    A:通常需要,除非你只关心 overall accuracy,但这意味着你几乎不关心模型分类少数类的能力。

1.是否应该打破正负样本1:1的迷信思想?

长话短说,正负样本并不需要是 1:1,因为类别不平衡的比例一直只是表象,问题的本质从来都是如何帮助模型对每个类(尤其是少数类)都学习到合理的表示。 而后者和正负样本比例之间并没有直接的关系。

**理论上如果任务足够简单(如完全线性可分,且满足 train/test i.i.d),那么无论正负样本比例多悬殊,模型都能够对测试数据进行完美分类。**当然这只对一些直接使用全量数据学习的模型成立,比如决策树、SVM 等。在实际中训练 NN 需要进行 batch-wise 的随机梯度下降训练,连续多个 batch 都只有来自负类的数据会让模型很快收敛到一个 local optimal solution,将所有数据全部预测为负类。

因此出现了其他答案所提到的一些经验结果(如 1:10 等比例),这些比例应该是在特定场景下能够避免模型训练过程 collapse 的比例。

具体在特定场景下,采用什么正负比例还是需要根据实际的 task、model,和 metric 决定。我不认为这个问题存在一个可以解决一切的 magic number。

为什么正负样本比例不一定重要:一个 toy example

见下图,用一个 toy example 就可以从直觉上解释为什么正负样本的比例并不是唯一决定任务难度的因素。

▲ 从左到右:类别比例(imbalance ratio/IR)逐渐增长。第一行:一个线性可分的简单任务。第二行:一个相对困难的复杂任务。

如果任务很简单(如上图第一行的数据分布,线性可分) ,那么即便有很悬殊的正负样本数量比例(如最右侧,正负样本 1:100),也不影响模型可以直接在原始数据上学习得到一个完美的分类边界,并实现 0 错误率:见下图第一行,即使 IR=100 模型也可以实现 0 分类错误(分类错误的 sample 由红色表示)。

而如果任务本身就很困难(如上图第二行,不同类别的 underlying distribution 有较大 overlap 且在 feature space 中有复杂的 pattern),那么即便正负样本比例差距不大,同样的模型也很难学到合理的边界(见下图第二行)。

▲ 第一列:任务示例。第二/三列:KNN/AdaBoost 分类器在每个任务上的结果。红色的点被误分类。

2.当训练集和测试集分布匹配,但正负样本比例仍然悬殊,是否有必要再引入处理不平衡样本的策略?

A:通常需要,除非你只关心 overall accuracy,但这意味着你几乎不关心模型分类少数类的能力。

如上所述,如果两类样本数量悬殊且不做任何处理,模型会连续很多 batch 都只遇到来自负类的样本,这容易使其收敛到 trivial solution。将所有样本预测为负类的 trivial solution 会有很高的 overall accuracy(例如正负比 1:10000,那其 acc=99.99%)。

但通常我们都更加关心少数类样本(positive cases,例如医疗诊断中的病人、欺诈/攻击检测中的恶意用户等)并使用 balanced accuracy,macro-f1 等 metric。优化这些更加合理的 metric 就需要引入处理不平衡样本的策略

3.重采样之余,还有哪些方式处理类别不平衡?

重新采样改变正负样本比例只是其中一种从数据出发的方式。 我开发的 imbens package 实现了为类别不平衡设计的十几种重采样技术 与 ensemble 学习方法,具有与 sklearn-style 的易用 API 设计和详细的文档及示例,并已在 github 收获近 300 星,每月下载逾 2000 次

https://github.com/ZhiningLiu1998/imbalanced-ensemble

https://zhuanlan.zhihu.com/p/376572330

▲ 一些 IMBENS 官方文档中提供的使用示例

在重采样之余,处理深度学习的不平衡有很多从其他方面入手的经典例子:

  • **类别重加权:**Class-Balanced Loss Based on Effective Number of Samples(CVPR 2019)

  • **难例挖掘:**Focal loss for dense object detection(ICCV 2017)

  • **margin-based loss:**Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss(NIPS 2019)

  • meta-learning 自动学习加权/采样策略:

    • MESA: Boost Ensemble Imbalanced Learning with MEta-SAmpler(NeurIPS 2020)

    • Meta-weight-net: Learning an explicit mapping for sample weighting(NIPS 2019)

  • **设计特殊模型架构:**BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition(CVPR 2020)

  • **改变训练过程/策略:**Decoupling Representation and Classifier for Long-tailed Recognition(ICLR 2020)

  • **后验概率校正:**Posterior Re-calibration for Imbalanced Datasets(NeurIPS 2020)

更多相关的技术和论文,请见我们的 awesome-imbalanced-learning 项目,已在 github 上收获逾 1.3k 星:

https://github.com/ZhiningLiu1998/awesome-imbalanced-learning

https://zhuanlan.zhihu.com/p/111460698

相关推荐
艾思科蓝-何老师【H8053】11 分钟前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
weixin_4526006939 分钟前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
学术搬运工39 分钟前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
右恩1 小时前
AI大模型重塑软件开发:流程革新与未来展望
人工智能
图片转成excel表格1 小时前
WPS Office Excel 转 PDF 后图片丢失的解决方法
人工智能·科技·深度学习
ApiHug2 小时前
ApiSmart x Qwen2.5-Coder 开源旗舰编程模型媲美 GPT-4o, ApiSmart 实测!
人工智能·spring boot·spring·ai编程·apihug
哇咔咔哇咔2 小时前
【科普】简述CNN的各种模型
人工智能·神经网络·cnn
李歘歘2 小时前
万字长文解读深度学习——多模态模型CLIP、BLIP、ViLT
人工智能·深度学习
Chatopera 研发团队2 小时前
机器学习 - 为 Jupyter Notebook 安装新的 Kernel
人工智能·机器学习·jupyter