深度网络对类别不平衡的鲁棒性如何?

人工智能 神经网络 深度学习 数据集 数据预处理 不平衡数据集
2021-10-25 06:27:23

在深度学习之前,我处理过机器学习问题,其中数据有很大的类不平衡(30:1 或更差的比率)。在那个时候,所有的分类器都在挣扎,即使在对代表类进行了欠采样并创建了代表不足的类的合成示例之后——除了随机森林,它比其他分类器更健壮,但仍然不是很好。

在深度学习(CNN、ResNet、transformers 等)方面,类分布的指导方针是什么?每个班级的代表必须是 1:1 吗?或者,只要它低于 2:1 之类的比例,它就“足够好”了?或者,只要我们有足够的训练数据,深度学习就完全不受类不平衡的影响吗?

此外,作为一般准则,每个类是否应该有一定的最小训练样本数量(可能是网络权重数量的倍数)?

1个回答

@nbro 指出了关于卷积神经网络中类不平衡问题的系统研究,该论文测试了 MNIST 的类不平衡 LeNet、CIFAR-10 的自定义 CNN 和 ImageNet 的 ResNet。该论文发现,通过在这些数据集上人为地创建类别不平衡,神经网络会显着恶化。ROC AUC 下降 5-10%,准确率下降 20-30%。这些影响在更复杂的任务上更加严重。

有 3 种值得注意的类不平衡方法可以部分缓解这种情况:

  • 采样:不经常对过度代表的类进行采样
  • 过采样:更频繁地对代表性不足的类进行采样
  • Thresholding:神经网络学习权重后,在推理过程中,将输出类概率乘以权重(类先验,每个类不同)。权重是数据集的类表示的倒数(即numInstances(c)inumInstances(i), 在哪里c是当前类和numInstances(i)是类的唯一实例数i在训练集中。

本文总结了以下最佳实践:

关于在不平衡数据集上处理 CNN 训练的方法的选择,我们得出以下结论。

  • 在大多数情况下,在多类 ROC AUC 方面优于所有其他方法的方法是过采样。

  • 对于极端比例的不平衡和大部分类别是少数,欠采样的性能与过采样相当。如果训练时间是一个问题,那么在这种情况下欠采样是一个更好的选择,因为它大大减少了训练集的大小

  • 为了达到最好的准确性,应该应用阈值来补偿先前的类别概率。阈值与基线和过采样的组合是最可取的,但不应与欠采样组合。

  • 过采样应该应用于完全消除不平衡的水平,而最佳的欠采样率取决于不平衡的程度。不平衡训练集中少数类的比例越高,应降低的不平衡率越多。

  • 与一些经典的机器学习模型相反,过采样不会导致卷积神经网络的过拟合。

最后一点非常有趣,因为众所周知,过采样会导致经典机器学习模型中的过拟合,并且许多人建议不要这样做。