在深度学习中,是否应该打破正负样本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

相关推荐
小天努力学java4 分钟前
AI赋能传统系统:Spring AI Alibaba如何用大模型重构机票预订系统?
人工智能·spring
Fuweizn21 分钟前
在工业生产中,物料搬运环节至关重要,搬运机器人开启新篇章
人工智能·智能机器人·复合机器人
AL.千灯学长2 小时前
DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署
人工智能·gpt·ios·ai·苹果vision pro
LCG元2 小时前
大模型驱动的围术期质控系统全面解析与应用探索
人工智能
lihuayong2 小时前
计算机视觉:主流数据集整理
人工智能·计算机视觉·mnist数据集·coco数据集·图像数据集·cifar-10数据集·imagenet数据集
政安晨3 小时前
政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成
人工智能·大模型·多模态·deepseek·janus-pro-7b
一ge科研小菜鸡3 小时前
DeepSeek 与后端开发:AI 赋能云端架构与智能化服务
人工智能·云原生
冰 河3 小时前
‌最新版DeepSeek保姆级安装教程:本地部署+避坑指南
人工智能·程序员·openai·deepseek·冰河大模型
维维180-3121-14553 小时前
AI赋能生态学暨“ChatGPT+”多技术融合在生态系统服务中的实践技术应用与论文撰写
人工智能·chatgpt
終不似少年遊*3 小时前
词向量与词嵌入
人工智能·深度学习·nlp·机器翻译·词嵌入