机器学习-10:MachineLN之样本不均衡

作者: MachineLP | 来源:发表于2018-01-12 09:36 被阅读61次

我想说:

其实很多时候,有竞争是好的事情,可以促进你的成长,可以磨练你的耐性,可以提升你的魅力,可以表现你的豁达,可以体验成功的喜悦,可以感受失败其实并不可怕,可怕的是你没有面对失败的勇气;而今天的社会达尔文的进化论其实从来没有变过,唯一不变的事情想必就是变了,做慈善的是慈善机构,做教育的是学校,百依百顺的是父母,只要踏上社会,那么对不起,优胜劣汰,适者生存,你必须面对,并且你面对的都是高手,是多个依依东望的诸葛亮,你要脱颖而出除了变的更优秀没有出路! 那么你打算怎么做呢?

说到样本不均衡,感觉平时大家不太重视,下面来一起讨论一下!

那么我的问题是:

1. 什么是样本不均衡?

2. 为什么要解决样本不均衡?

3. 解决样本不均衡有哪些方法?

看到这里你的答案是什么?下面是我的答案:

1. 什么是样本不均衡?

样本不均衡:在准备训练样本的时候,各类别样本比例不等,有的差距可能比较小,有的差距则会比较大,以CIFAR-10为例:

CIFAR-10是一个简单的图像分类数据集。共有10类(airplane,automobile,bird,cat,deer,dog, frog,horse,ship,truck),每一类含有5000张训练图片,1000张测试图片。如下图:Dist. 1:类别平衡,每一类都占用10%的数据。Dist. 2、Dist. 3:一部分类别的数据比另一部分多。Dist. 4、Dist 5:只有一类数据比较多。Dist. 6、Dist 7:只有一类数据比较少。Dist. 8: 数据个数呈线性分布。Dist. 9:数据个数呈指数级分布。Dist. 10、Dist. 11:交通工具对应的类别中的样本数都比动物的多。

image

2. 为什么要解决样本不均衡?

训练网络使用的是CIFAR-10的结构,下面是测试结果:可以看出总的准确率表现不错的几组1,2,6,7,10,11都是大部分类别平衡,一两类差别较大;而表现很差的,像5,9可以说是训练失败了,他们的不平衡性也比前面的要强。

image.png

那么再看一下,对样本少的数据进行过采样之后,测试结果:可以看到经过过采样将类别数量平衡以后,总的表现基本相当。(过采样虽然是一个很简单的想法,但是很OK,3中还将介绍海康威视ImageNet2016竞赛经验)

image

想必到这里可以看到样本均衡的重要性了吧。

3. 解决样本不均衡有哪些方法?

解决不均衡问题的方式有很多:

(1)可以将数据进行扩增: (这些方法有时候也可以勉强做为数据不均衡的增强方法,如果训练时候各类样本都已经用了以下的方法进行data augmentation,那么样本不均衡就选其他方法来做吧)

  • 原图:
image
  • 图像旋转;
image
  • 图像crop;
image.png
  • 图像平移;
image
  • 图像flip;(左右镜像,有的可以上下)
image.png
  • (5)图像光照;
image
  • 还有一些像添加噪声; 透视变换等;

(2) 可以借鉴一下海康威视的经验:

image.png

以图中的例子来说,步骤如下:首先对原始的图像列表,按照标签顺序进行排序;然后计算每个类别的样本数量,并得到样本最多的那个类别的样本数。根据这个最多的样本数,对每类随机都产生一个随机排列的列表;然后用每个类别的列表中的数对各自类别的样本数求余,得到一个索引值,从该类的图像中提取图像,生成该类的图像随机列表;然后把所有类别的随机列表连在一起,做个Random Shuffling,得到最后的图像列表,用这个列表进行训练。每个列表,到达最后一张图像的时候,然后再重新做一遍这些步骤,得到一个新的列表,接着训练。Label Shuffling方法的优点在于,只需要原始图像列表,所有操作都是在内存中在线完成,非常易于实现。

另外也可以按照同样的方式对多的样本进行欠采样;

(3)还可以用Weighted samples,给每一个样本加权重,样本多的类别每个的权重就小些,样本少的类别每个的权重就大些,这样无论样本是否均衡,在Loss Function中每类的影响力都一样的。

(4)还可以:再过采样之后使用K-fold交叉验证,来弥补一些特殊样本造成的过拟合问题,(K-fold交叉验证就是把原始数据随机分成K个部分,在这K个部分中选择一个作为测试数据,剩余的K-1个作为训练数据。交叉验证的过程实际上是将实验重复做K次,每次实验都从K个部分中选择一个不同的部分作为测试数据,剩余的数据作为训练数据进行实验,最后可以把得到的K个实验结果平均。)

推荐阅读:

  1. 机器学习-1:MachineLN之三要素

  2. 机器学习-2:MachineLN之模型评估

  3. 机器学习-3:MachineLN之dl

  4. 机器学习-4:DeepLN之CNN解析

  5. 机器学习-5:DeepLN之CNN权重更新(笔记)

  6. 机器学习-6:DeepLN之CNN源码

  7. 机器学习-7:MachineLN之激活函数

  8. 机器学习-8:DeepLN之BN

  9. 机器学习-9:MachineLN之数据归一化

  10. 机器学习-10:MachineLN之样本不均衡

  11. 机器学习-11:MachineLN之过拟合

  12. 机器学习-12:MachineLN之优化算法

  13. 机器学习-13:MachineLN之kNN

  14. 机器学习-14:MachineLN之kNN源码

  15. 机器学习-15:MachineLN之感知机

  16. 机器学习-16:MachineLN之感知机源码

  17. 机器学习-17:MachineLN之逻辑回归

  18. 机器学习-18:MachineLN之逻辑回归源码

image.png

版权声明:本文为博主原创文章,未经博主允许不得转载。有问题可以加微信:lp9628(注明CSDN)。

相关文章

  • 机器学习-10:MachineLN之样本不均衡

    我想说: 其实很多时候,有竞争是好的事情,可以促进你的成长,可以磨练你的耐性,可以提升你的魅力,可以表现你的豁达,...

  • R语言--不均衡问题处理

    在机器学习分类任务中,常常会碰到样本不均衡问题,正确处理样本不均衡会提高模型的实用性和准确率,本文介绍不均衡问题以...

  • 如何解决机器学习中样本不均衡问题?

    样本不均衡:正样本和负样本的数目相差很大。 在一个极度不平衡的样本中,由于机器学习会每个数据进行学习,那么多数数据...

  • 机器学习-3:MachineLN之dl

    开篇废话: 嫌废话太多可以直接跳到正文哦。 对外人提起人工智能感觉很牛逼很了不起、高大上或者一些其他的吹捧、羡慕的...

  • 机器学习-22:MachineLN之RL

    我想说: 其实很多事情找对方法很重要,可以事半功倍,就好比学习; 原本打算将机器学习基础写完以后再写深度学习、强化...

  • 机器学习-13:MachineLN之kNN

    我想说: 其实训练模型是个力气活,有人说训练模型很简单,把数据塞进去,然后跑完就好了,哦,这样的话谁都会,关键的也...

  • 机器学习样本不均衡问题

    解决方案1:上采样或者下采样解决方案2:给样本配置比例系数,样本比例大的比例系数小,样本比例小的比例系数大。解决方...

  • 机器学习-7:MachineLN之激活函数

    很长一段时间都在想,有些问题不去弄明白为什么,遇到瓶颈就傻逼了,一个bug整你一个月,原来只是一个细节问题,就好如...

  • 机器学习-2:MachineLN之模型评估

    开篇废话: 很多文章其实都是将书中的东西、网上课程、或者别人的论文的东西总结一下,发出来,但是个人感觉还是加入个人...

  • 机器学习-12:MachineLN之优化算法

    我想说: 其实很多时候应该审视一下自己,知道自己的不足和长处,然后静下来去做一些事情,只有真正静下来才能深下去,只...

网友评论

    本文标题:机器学习-10:MachineLN之样本不均衡

    本文链接:https://www.haomeiwen.com/subject/atbxoxtx.html