欢迎大家来到图像分类专栏,类别不平衡时是很常见的问题,本文介绍了类别不平衡图像分类算法的发展现状,供大家参考学习。

作者&编辑 | 郭冰洋

1 简介

小伙伴们在利用公共数据集动手搭建图像分类模型时,有没有注意到这样一个问题呢——每个数据集不同类别的样本数目几乎都是一样的。这是因为不同类别的样例数目差异较小,对分类器的性能影响不大,可以在避免其他因素的影响下,充分反映分类模型的性能。反之,如果类别间的样例数目相差过大,会对学习过程造成一定的影响,从而导致分类模型的性能变差。这就是本篇文章将要讨论的类别不平衡问题(Class Imbalance)。

类别不平衡是指分类任务中不同类别的训练样本数目相差较大的情况,通常是由于样本较难采集或样本示例较少而引起的,经常出现在疾病类别诊断、欺诈类型判别等任务中。

尽管在传统机器学习领域内,有关类别不平衡的问题已经得到了详尽的研究,但在深度学习领域内,其相关探索随着深度学习的发展,经历了一个先抑后扬的过程。

在反向传播算法诞生初期,有关深度学习的研究尚未成熟,但仍有相关科研人员研究过类别样例的数目对梯度传播的影响,并得出样例数目较多的类别在反向传播时对权重占主导地位。这一现象会使网络训练初期,快速的降低数目较多类别的错误率,但随着训练的迭代次数增加,数目较少类的错误率会随之上升[1]。

随后的十余年里,由于深度学习受到计算资源的限制、数据集采集的难度较大等影响,相关研究并没有得到进一步的探索,直到近年来才大放异,而深度学习领域内的类别不平衡问题,也得到了更加深入的研究。

本篇文章将对目前涉及到的相关解决方案进行汇总,共分为数据层面、算法层面、数据和算法混合层面三个方面,仅列举具有代表性的方案阐述,以供读者参考。

2 方法汇总

1、基于数据层面的方法


基于数据层面的方法主要对参与训练的数据集进行相应的处理,以减少类别不平衡带来的影响。

Hensman等[2]提出了提升样本(over sampling)的方法,即对于类别数目较少的类别,从中随机选择一些图片进行复制并添加至该类别包含的图像内,直到这个类别的图片数目和最大数目类的个数相等为止。通过实验发现,这一方法对最终的分类结果有了非常大的提升。

Lee等[3]提出了一种两阶段(two-phase)训练法。首先根据数据集分布情况设置一个阈值N,通常为最少类别所包含样例个数。随后对样例个数大于阈值的类别进行随机抽取,直到达到阈值。此时根据阈值抽取的数据集作为第一阶段的训练样本进行训练,并保存模型参数。最后采用第一阶段的模型作为预训练数据,再在整个数据集上进行训练,对最终的分类结果有了一定的提升.

Pouyanfar等[4]则提出了一种动态采样(dynamic sampling)的方法。该方法借鉴了提升样本的思想,将根据训练结果对数据集进行动态调整,对结果较好的类别进行随机删除样本操作,对结果较差的类别进行随机复制操作,以保证分类模型每次学习都能学到相关的信息。

2、基于算法层面的方法

基于算法层面的方法主要对现有的深度学习算法进行改进,通过修改损失函数或学习方式的方法来消除类别不平衡带来的影响。

Wang等[5]提出mean squared false error (MSFE) loss。这一新的损失函数是在mean false error (MFE) loss的基础上进行改进,具体公式如下图所示:

MSFE loss能够很好地平衡正反例之间的关系,从而实现更好的优化结果。

Buda等[6]提出输出阈值(output thresholding)的方法,通过调整网络结果的输出阈值来改善类别不平衡的问题。模型设计者根据数据集的构成和输出的概率值,人工设计一个合理的阈值,以降低样本数目较少的类别的输出要求,使得其预测结果更加合理。

3、基于数据和算法的混合方法

上述两类层面的方法均能取得较好的改善结果,如果将两种思想加以结合,能否有进一步的提升呢?

Huang等[7]提出Large Margin Local Embedding (LMLE)的方法,采用五倍抽样法(quintuplet sampling )和tripleheader hinge loss函数,可以更好地提取样本特征,随后将特征送入改进的K-NN分类模型,能够实现更好的聚类效果。除此之外,Dong等[8]则融合了难例挖掘和类别修正损失函数的思想,同样是在数据和损失函数进行改进。

由于篇幅和时间有限,本文只列取了每个类别的典型解决方案。同时也搜集了关于解决类别不平衡问题的相关综述文献,截图如下:

具体名称可以借鉴参考文献[9]。

3 参考文献

[1] Anand R, Mehrotra KG, Mohan CK, Ranka S. An improved algorithm for neural network classification of imbalanced training sets. IEEE Trans Neural Netw. 1993;4(6):962–9.

[2] Hensman P, Masko D. The impact of imbalanced training data for convolutional neural networks. 2015.

[3] Lee H, Park M, Kim J. Plankton classification on imbalanced large scale database via convolutional neural networks with transfer learning. In: 2016 IEEE international conference on image processing (ICIP). 2016. p. 3713–7.

[4] Pouyanfar S, Tao Y, Mohan A, Tian H, Kaseb AS, Gauen K, Dailey R, Aghajanzadeh S, Lu Y, Chen S, Shyu M. Dynamic sampling in convolutional neural networks for imbalanced data classification. In: 2018 IEEE conference on multimedia information processing and retrieval (MIPR). 2018. p. 112–7.

[5] Wang S, Liu W, Wu J, Cao L, Meng Q, Kennedy PJ. Training deep neural networks on imbalanced data sets. In: 2016 international joint conference on neural networks (IJCNN). 2016. p. 4368–74.

[6] Buda M, Maki A, Mazurowski MA. A systematic study of the class imbalance problem in convolutional neural

networks. Neural Netw. 2018;106:249–59.

[7] Huang C, Li Y, Loy CC, Tang X. Learning deep representation for imbalanced classification. In: 2016 IEEE conference on computer vision and pattern recognition (CVPR). 2016. p. 5375–84.

[8] Dong Q, Gong S, Zhu X. Imbalanced deep learning by minority class incremental rectification. In: IEEE transactions on pattern analysis and machine intelligence. 2018. p. 1–1

[9] Justin M. Johnson and Taghi M. Khoshgoftaar.Survey on deep learning with class imbalance.Johnson and Khoshgoftaar J Big Data.(2019) 6:27

总结

以上就是关于类别不平衡问题的相关解决方案,详细内容可以阅读参考文献综述9,相信通过更加详细的文章阅读,你会收获更多的经验!

有三AI夏季划

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

往期精选

  • 【技术综述】你真的了解图像分类吗?

  • 【技术综述】多标签图像分类综述

  • 【图像分类】分类专栏正式上线啦!初入CV、AI你需要一份指南针!

  • 【图像分类】从数据集和经典网络开始

  • 【图像分类】 基于Pytorch的多类别图像分类实战

  • 【图像分类】细粒度图像分类是什么,有什么方法,发展的怎么样

  • 【图像分类】 基于Pytorch的细粒度图像分类实战

  • 【图像分类】简述无监督图像分类发展现状

【图像分类】 关于图像分类中类别不平衡那些事相关推荐

  1. 深度学习分类类别不平衡_「图像分类」 关于图像分类中类别不平衡那些事

    作者&编辑 | 郭冰洋 1 简介 小伙伴们在利用公共数据集动手搭建图像分类模型时,有没有注意到这样一个问题呢--每个数据集不同类别的样本数目几乎都是一样的.这是因为不同类别的样例数目差异较小, ...

  2. 类别不平衡问题 —— 各种评估指标

    类别不平衡问题 在二分类问题中,通常假设正负类别相对均衡(混淆矩阵),然而实际应用中类别不平衡的问题,如100, 1000, 10000倍的数据偏斜是非常常见的,比如疾病检测中未患病的人数远超患病的人 ...

  3. 分类中常见的类别不平衡问题解决方法

    常见的类别不平衡问题解决方法 常见的类别不平衡问题解决方法 那么,什么是"类别不平衡"? 解决方法 1.扩大数据集 2.欠采样 3.过采样 4.使用新评价指标 5.尝试不同的分类算 ...

  4. [转]如何处理机器学习中的不平衡类别

    如何处理机器学习中的不平衡类别 原文地址:How to Handle Imbalanced Classes in Machine Learning 原文作者:elitedatascience 译文出自 ...

  5. 基于标记不确定性和类别不平衡的语义分割在植被制图中的应用(soybean+FCN_segNet+newloss)

    近年来,卷积神经网络(CNN)方法在语义分割任务中取得了显著的成功.然而,围绕样本的类别不平衡和人类像素标记的不确定性等挑战并没有完全解决.在这里,我们提出了一种方法,计算每个像素的权重,考虑其类别和 ...

  6. 分类任务中的类别不平衡问题

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. 目录 一.问题定义 二.问题的解决方案 1.解决方法引入 2.理想解决方案 3.实际解决方案 ...

  7. 分类中解决类别不平衡问题

    关注微信公众号[Microstrong],我现在研究方向是机器学习.深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧! 本文同步更新在我的微信公众号里面,公众号文章地址: ...

  8. 类别不平衡学习:论文/代码/框架/库

    作者:ZhiningLiu1998 编译:CV君 今天向大家介绍一个跟踪不平衡学习问题的Github资源仓库,文末附其中 7 篇相关综述论文下载. Github地址: https://github.c ...

  9. CVPR 2021|一个绝妙的想法:在类别不平衡的数据上施展半监督学习

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨kid丶@知乎(已授权) 来源丨https://zhuanla ...

最新文章

  1. gsoap 学习 1-由wsdl文件生成h头文件
  2. hdu1542 线段树扫描线求矩形面积的并
  3. 取IDE当前文档所在项目的目录[vs.net2008]
  4. C++Heap Sort堆排序的实现算法(附完整源码)
  5. Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
  6. 开源数据库Neo4j获8000万美元E轮融资,One Peak Partners、摩根士丹利领投
  7. [Head First Java] - Swing做一个简单的客户端
  8. Gdb 调试core文件详解
  9. python装饰器哪个好用变女生_Python女神分享教程之Python 装饰器
  10. 【Flink】Flink 源码之时间处理
  11. base | 数值运算符和逻辑运算符
  12. linux java.policy_Linux部署Java环境
  13. windows :32位到64 位
  14. Tomcat 加载外部dll时如何配置
  15. 番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的
  16. vue中使用dragdrop
  17. 机器学习 | 牛顿冷却定律
  18. Go语言核心之美 2.6-常量
  19. MSYS是什么,他与CYGWIN有什么区别?
  20. 虚拟主播是什么,有什么技术原理?- 沉睡者IT

热门文章

  1. java基础(九) 可变参数列表介绍
  2. Java8 ConcurrentHashMap详解
  3. 阿里云服务器Tomcat无法从外部访问
  4. hibernate教程--抓取策略详解
  5. Java数据库连接(JDBC)之二:Statement对象和PreparedStatement对象的使用
  6. JSON与XML的区别比较(非常全面)
  7. 两个形状不同的长方形周长_“解决问题——怎样围周长最短”教学思考与设计...
  8. LeetCode 97交错字符串(动态规划)
  9. Struts2标签 逻辑标签和UI标签
  10. ZooKeeper 3.4.5 分布式环境搭建详解