选自arXiv
作者:Mateusz Buda等
参与:Nurhachu Null、刘晓坤
该论文的作者以两种典型的不均衡为例,系统地研究并比较了解决 CNN 中类别不均衡问题的各种方法,在三个常用数据集MINIST、CIFAR-10 和 ImageNet上用统一标准进行实验,得出了综合性的结果,富有参考和指导意义。
论文链接:https://arxiv.org/abs/1710.05381
摘要:在这篇论文中,我们系统地研究了卷积神经网络中类别不均衡会给分类性能带来的影响,并且对比了常用于解决该问题的一些方法。类别不均衡是一个普遍的问题,虽然这个问题在分类机器学习中被广泛地研究,然而在深度学习领域很少有可用的系统性研究。在我们的研究中,我们用了三个复杂度依次递增的基准测试集来研究类别不均衡对性能的影响,并对用来解决这个问题的几种方法做了广泛对比,这三个数据集分别是:MINIST、CIFAR-10 和 ImageNet,这 4 种常用解决方法分别是:过采样(oversampling,相当于插值),下采样(downsampling,相当于压缩),两阶段训练(two-phase training),以及阈值化(threholding),阈值化可以补偿先验的类别概率。因为全局准确率在不均衡的数据中是很难确定的,所以我们的主要评价指标是 ROC 曲线下面的面积(ROC AUC)。从我们的实验可以得出以下结论:(i) 不均衡数据会给分类性能带来损害;(ii) 解决不均衡数据问题的方法中,占主导地位的是过采样,它几乎存在于所有的分析场景中; (iii) 过采样应该被用在那些需要完全消除不均衡的情况中,而下采样在只需要从一定程度消除不均衡的情况中的效果可能更好;(iv) 与一些传统的机器学习模型不同的是,过采样也不一定会造成卷积神经网络的过拟合;(v) 当对被正确分类的例子的总数感兴趣的时候,为了补偿先验类别概率,就应该使用阈值化方法。
1 引言
卷积神经网络(CNN)在很多机器学习应用领域都被越来越重视,目前在最近为计算机视觉贡献了很多当前最先进的技术成果,包括目标检测、图像分类、图像分割等等。卷积神经网络也被广泛地应用在自然语言处理和语音识别领域,在这些领域里,CNN 要么替代传统技术,要么帮助改善传统机器学习模型 [1]。卷积神经网络在模型中集合了自动特征提取器和分类器,这是它和传统机器学习技术之间最大的不同。这个特性让卷积神经网络能够学习分层表征 [2]。标准的卷积神经网络由全连接层、多个包含卷积层、激活函数层以及最大池化层的模块组成 [3,4,5]。卷积神经网络本质上就是很复杂的,所以训练和测试网络的时候需要很大的计算量,这通常都是借助于现代的 GPU 来解决的。
在现实生活的应用中,基于深度学习的一个常见问题是:在训练集中,一些类的样本量远大于其他类。这种差别被称为类别不均衡。在以下领域中有很多这种例子:比如计算机视觉 [6,7,8,9,10],医疗诊断 [11,12],欺诈检测 [13] 以及其他领域 [14,15,16],在这些领域中这个问题非常重要,某个类别(比如癌症患者)的样本频率可以比其他类别(比如非癌症患者)小 1000 倍。已经确定的是,类别不均衡问题可以给传统分类器 [17] 带来严重的性能损害,包括多层感知机在内 [18]。它既影响了在训练模型阶段的收敛,也影响到在测试集上的泛化能力。尽管这个问题也同样影响着深度学习,但是,并没有关于这个问题的可用的系统性研究。
应对不均衡问题的方法在传统机器学习模型上已经有了一些研究成果 [19,17,20,18]。最直接最通用的就是使用一些采样方法,这些方法直接对数据本身(而不是针对模型)进行处理,以提升数据的均衡性。最广泛使用的,也被证明是比较鲁棒的一种方法就是过采样(oversampling)[21]。另一个就是下采样(downsampling)。一个比较朴素的版本就是简单地把多数类中的样本随机移除 [17],这个方法被称为随机多数下采样(random majority downsampling)。类别不均衡问题也可以在分类器的层面处理。在这种情况下,学习算法应该被修正,例如,给误分类的样本引入不同的权重系数 [22],或者具体地调节先验类别概率 [23]。
之前的研究证展示了深度神经网络中与敏感学习(cost sensitive learning)相关的一些结果 [24,25,26]。用于神经网络训练的新的损失函数也被开发出了 [27]。最近,有人提出了一种用于卷积神经网络的新方法,就是分两阶段去训练网络,首先在均衡数据上训练神经网络,然后再微调输出层 [28]。尽管在深度学习方面还没有对不均衡性进行系统性的分析,也没有可用的能够处理这种问题的方法,但是基于直觉、一些中间测试结果以及在传统机器学习上可用的一些系统性结果来看,研究者们采用的一些方法可能正在解决这个问题。根据我们对文献的调研,深度学习中使用最广泛的方法是过采样。
本文其他内容组织如下:第 2 节总结了解决不均衡问题的一些方法;第 3 节描述了我们的实验设置,给出了关于比较方法、数据集和所用测试模型的细节内容;第 4 节展示了实验结果和比较方法;最后,在第 5 节总结了整篇论文的工作。
2 解决不均衡问题的方法
解决类别不均衡问题的方法可以被分为两大类 [29]。第一大类是数据层面的方法,这类方法对训练数据进行处理,改变它的类别分布。这类方法的目标就是朝着使标准训练算法能够起作用的目标去改变数据集。另一大类则包括分类器(算法)层面的。这些方法保持训练数据集不变,仅仅调整训练(或者推理)算法。另外,结合这两类的方法也是可以使用的。在这一部分我们会概述常常被使用的这两类方法,既包含在经典机器学习模型,也包括在深度神经网络中使用的。
图 1:不均衡数据集的示例分布,包含对应的参数值。(a、 b):阶跃式不均衡,参数:ρ 和 µ;(c):线性不均衡,参数:ρ。
表 1:所用数据集总览,每类图像的数量指的是实验中用到的子数据集中完美均衡的一个。ImageNet 的图像维度是缩放之后的结果。
3 实验
3.2 这篇论文中所比较的解决不均衡问题的方法
我们总共试验了 7 种用来解决卷积神经网络中类别不均衡问题的方法,这 7 种方法包含了深度学习中使用的大多数方法:1. 随机少数过采样;2. 随机多数下采样;3. 两阶段训练,在随机过采样的数据集上进行预训练;4. 两阶段训练,在随机下采样的数据集上进行预训练;5. 使用先验概率的阈值化方法;6. 使用阈值化方法的过采样;7. 使用阈值化方法的下采样。
3.3 数据集和模型
在我们的研究中,总共使用了 3 个基准测试数据集: MNIST [52],CIFAR-10 [53],以及 ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 [54]。所有的数据集都被划分成了具有标签的训练集和测试集。对于每一个数据集,我们选择了不用的模型,每个模型都具有一个超参数集,这些超参数集都是在一些相关文献中使用过并且表现良好的。数据集的复杂程度和模型的复杂程度是正相关的。这使得我们在一些简单的任务上得出了一些结论,并验证了这些结论是如何推广到更加复杂的任务上的。
表 2: 在 MNIST 数据集实验中使用的 LeNet-5 卷积神经网络的架构。
表 3: 在 CIFAR-10 数据集实验中使用的 All-CNN 网络结构。
图 2: 在 ILSVRC-2012 实验中使用的 ResNet 中的单残差模块网络架构。
4. 结果
4.1 类别不均衡对分类性能的影响,以及几种解决这个问题的方法的比较
图 3: 每种方法对应的多类 ROC AUC 对比:(a - c).MNIST,(d - f).CIFAR-10,(d - f). 具有固定少数类别数目的阶跃式不均衡数据。
图 4: 每种方法对应的多类 ROC AUC 对比:(a - c).MNIST,(d - f).CIFAR-10,(d - f). 具有固定少数类别比例的阶跃式不均衡数据。
图 5:线性不均衡下每种方法对应的多类 ROC AUC 对比。
4.2 ImageNet 数据集上的结果
表 4 : ImageNet 上多类 ROC AUC 对比。
4..4 使用多类阈值化来提升准确度分数
图 6: 各种方法的准确率比较:(a - c).MNIST,(d - f).CIFAR-10,(d - f). 具有固定少数类别数目的阶跃式不均衡数据。
4.5 通过下采样和过采样减小数据集的不均衡率
图 7: MNIST 数据集中,原始不均衡度为 1000(最多和最少类别的数目比)时,通过过采样和下采样来减小不均衡度后 ROC AUC 对比。
4.6 采样方法的泛化
图 8: 分别使用基线和采样方法之后,模型收敛的对比。使用 CIFAR-10 数据集,阶跃不平衡,5 个类别,不平衡比率为 50。
5. 结论
在这篇论文中,我们研究了类别不均衡问题对卷积神经网络分类性能的影响,并对比研究了解决该问题的不同的方法的效果。我们定义了两种不同类型的不均衡,并将它们参数化,也就是阶跃性不均衡和线性不均衡。然后在 MNIST,CIFAR-10 和 ImageNet (ILSVRC-2012) 数据集中分出子数据集,人为地让它们产生不均衡性。我们对比了常用采样方法、基本阈值化方法和两阶段训练方法。
与类别不均衡有关的实验结论如下:
根据在处理卷积神经网络中类别不均衡数据集时对各种不同方法的选择,我们得到以下结论:
本文为机器之心编译,转载请联系本公众号获得授权。