【深度学习-CNN】训练样本不平衡对训练结果的影响

今天在网上看到这篇文章The Impact of Imbalanced Training Data for Convolutional Neural Networks,里面做了一系列实验讨论训练样本对CNN的影响。

作者前面先是介绍了CNN和深度学习的相关知识,然后介绍了几个流行的数据集,ImageNet、mnist、CIFAR-10 and CIFAR-100。

然后利用较小的CIFAR-10来做验证。所谓的样本不平衡指的是各个类别的样本数量差别很大。一般的机器学习算法在这样的数据下表现都不好,那么对CNN有什么影响呢。

CIFAR-10是一个简单的图像分类数据集。共有10类(airplane,automobile,bird,cat,deer,dog, frog,horse,ship,truck),每一类含有5000张训练图片,1000张测试图片。网络使用的是CIFAR-10的结构。

                                          

第一个实验:

                                    

上图中,每一行是一组数据,共十种类别,其中的数字是指每类占总数的比例。可以看到dist.1是完全平衡的,后面的不平衡性越来越大。

Dist. 1:类别平衡,每一类都占用10%的数据。


Dist. 2、Dist. 3:一部分类别的数据比另一部分多。


Dist. 4、Dist 5:只有一类数据比较多。


Dist. 6、Dist 7:只有一类数据比较少。


Dist. 8: 数据个数呈线性分布。


Dist. 9:数据个数呈指数级分布。


Dist. 10、Dist. 11:交通工具对应的类别中的样本数都比动物的多


对每一份训练数据都进行训练,测试时用的测试集还是每类1000个的原始测试集,保持不变。

下面我们来看看训练结果:

                           

上表的每一列代表这种类别在十一次实验中的准确率,最左边的一列是总的准确率。可以看出总的准确率表现不错的几组1,2,6,7,10,11都是大部分类别平衡,一两类差别较大;而表现很差的,像5,9可以说是训练失败了,他们的不平衡性也比前面的要强。

下面是经过过采样的样本训练的结果:

                           

可以看到经过过采样将类别数量平衡以后,总的表现基本相当。

                                            

上图是过采样前后的训练结果对比,深色是未经过过采样的,浅色的经过过采样的。所以得到的结论是在训练之前需要将数据库平衡化,可以采取过采样的方式。

这个结论也是实验得出的,在实际应用中是个经验公式。


  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
km-svmsmote-cnn是一种结合了km算法、SVMSMOTE算法和CNN模型的代码。该代码主要用于解决分类不平衡问题,特别是针对图像数据的情况。 首先,km算法(KMeans)是一种常用的聚类算法,它将数据集分为K个簇,通过迭代优化簇的质心来达到聚类效果。在km-svmsmote-cnn代码中,km算法被用来对原始图像数据进行聚类分析,以便对每个类别的样本进行过采样。 其次,SVMSMOTE算法是一种基于支持向量机(SVM)的合成少数类过采样方法。它通过在样本空间里合成新的少数类样本,从而解决分类不平衡问题。在km-svmsmote-cnn代码中,SVMSMOTE算法被引入,用于生成合成的少数类样本,以增加样本的数量。 最后,CNN模型(卷积神经网络)是一种广泛应用于图像处理的深度学习模型。在km-svmsmote-cnn代码中,CNN模型被用于对经过过采样的图像样本进行分类任务。CNN模型通过多层卷积和池化操作,提取图像特征,并通过全连接层进行分类。 整个km-svmsmote-cnn代码的流程如下:首先,使用km算法对原始图像数据进行聚类分析;然后,对每个类别的样本使用SVMSMOTE算法进行过采样,生成合成的样本;最后,将生成的过采样样本输入到CNN模型中进行训练和分类任务。 通过km-svmsmote-cnn代码,我们可以有效地处理图像分类不平衡问题,提高模型在少数类别上的表现,使得模型更具鲁棒性和泛化能力。不过,需要注意的是,对于不同的数据集和问题,km-svmsmote-cnn代码的效果可能有所不同,需要根据具体情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值