转自:watersink

1, Bootstrapping,hard negative mining
最原始的一种方法,主要使用在传统的机器学习方法中。
比如,训练cascade类型分类模型的时候,可以将每一级分类错误的样本继续添加进下一层进行训练。

比如,SVM分类中去掉那些离分界线较远的样本,只保留离分界线较近的样本。

2, heuristic sampling

标准的faster-RCNN中,假设正样本IOU(0.7~1.0)。负样本IOU(0.1~0.3),hard 负样本IOU(0.0~0.1)。比如实际的RPN网络中,实际最后的anchor经过NMS处理后的负样本是很多的,假如有100000个。而实际训练的正负样本比例为1:3,负样本大概只需要2000-3000个。这时就只选择那些hard负样本,这样实际训练出来的效果最好。

3, online hard example mining(OHEM)

出自,Training Region-based Object Detectors with Online Hard Example Mining这篇文章,

在faster RCNN这样的框架下,在原始的网络基础上,新接入了一个绿色的Read-only Layer,该网络对所有的ROI进行前向传播,并计算最后的loss,然后红色的网络对其中loss较大的ROI进行前向和后向传播,可以说是一种动态的选择性的传播梯度。优势也就显而易见,比原始的faster RCNN可以节省很大的运算量,训练速度回提升,最终模型准确性也提升。
其中,一个trick就是,在绿色的网络进行前向传播完,其中出来的好多ROI会存在一些Loss较高,但是这些ROI有很大的IOU的情况,这样就会使得梯度重复计算和传播,因此,这里,作者加入了NMS进行IOU的过滤。

4,Focal Loss
出自Focal Loss for Dense Object Detection这篇文章,
文章重点就是提出了focal loss这个cross entropy (CE) loss的改进版,实现了对于正负样本不平衡的调整。具体思路就是其公式,

从这个公式就可以分析出,
假设r=2,pt分数为0.9,那么这个easy example的loss将会被缩小0.01a倍
假设r=2,pt分数为0.968,那么这个easy example的loss将会被缩小0.001a倍
假设r=2,pt分数为0.1,那么这个hard example的loss将会被缩小0.81a倍
同样所有样本的loss都会缩小,但是hard example要不easy example缩小的小,从而取得好的训练效果。

从上图也可以反映出,r>0的曲线的loss要比r=0的曲线的更低,loss更小。

当然文章还提出了一个RetinaNet

RetinaNet以Resnet为基础结构,通过Feature Pyramid Network (FPN)产生多尺度的输出特征图,然后分别级联一个分类和回归的子网络。这点和faster RCNN有点区别,在faster中是只使用一个网络进行分类和回归操作,RetinaNet将2个任务分离后,也许会在精度上有一定提高吧,也更容易训练。
这里一个trick是RetinaNet的初始化,
(1)除了分类子网络的最后一层,其余层w全部初始化为u=0, σ = 0:01的高斯分布,b初始化为0。
(2)最后一个分类的卷积层,b初始化为- log((1 - π)/π),文中使用π = 0.01,这样初始化使得每个anchor被标记为前景的概率为0.01,
这里b的这个公式是怎么得出的呢?
最终的分类得分是一个逻辑回归,公式为,

这里的z=wx+b,由于w初始化为u=0, σ = 0:01的高斯分布,所以,z=b,最终的概率设为π,从而得出公式,

从而解出,b=- log((1 -π)/π)

这个初始化对于focal loss的训练很重要。

5,class balanced cross-entropy

出自Holistically-nested edge detection这篇文章, 主要用于FCN,U-net等分割,边缘检测的网络,用于对像素级别的2分类样本不平衡进行优化。

sigmoid_cross_entropy公式:

-y_hat* log(sigmoid(y)) - (1 - y_hat) * log(1 - sigmoid(y))

class_balanced_sigmoid_cross_entropy公式:

-β*y_hat* log(sigmoid(y)) -(1-β) * (1 - y_hat) * log(1 - sigmoid(y))

思想就是引入新的权值β,实现正负样本loss的平衡,从而实现对不同正负样本的平衡。

References:

https://github.com/abhi2610/ohem

转载于:https://www.cnblogs.com/demian/p/9575735.html

正负样本不平衡处理方法总结【转】相关推荐

  1. 正负样本不平衡处理方法总结

    转载链接: https://blog.csdn.net/qq_14845119/article/details/78930091 1, Bootstrapping,hard negative mini ...

  2. 关于正负样本不平衡问题的解决方法收集整理

    参考文献 1.如何解决机器学习中数据不平衡问题 2.Learning from imbalanced data 原文 3.对于正负样本不均衡的解决方法 4.2中论文的翻译总结 一. 问题背分析 1.背 ...

  3. 目标检测中的样本不平衡处理方法——OHEM, Focal Loss, GHM, PISA

    GitHub 简书 CSDN 文章目录 1. 前言 2. OHEM 3. Focal Loss 3.1 Cross Entropy 3.2 Balanced Cross Entropy 3.3 Foc ...

  4. python样本不均衡_使用Python中的smote处理正负样本之间的不平衡,python,实现,失衡,问题...

    机器学习中难免遇到正负样本不平衡问题,处理办法通常有梁总,一:过采样,增加正样本数据:二:欠采样,减少负样本数据,缺点是会丢失一些重要信息.smote属于过采样. 代码 # from imblearn ...

  5. 目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用

    如何定义正负样本,和正负样本在学习过程中loss计算起的作用 正负样本定义 分类和回归head如何学习和利用划分后的正负样本(loss如何计算) 正负样本在分类中loss计算的处理 正样本在bbox ...

  6. 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法

    训练目标检测模型的一个难点是样本不均衡,特别是正负样本比例严重失衡.目前解决这类问题主要是两种方案(见综述Imbalance Problems in Object Detection: A Revie ...

  7. 2019 sample-free(样本不平衡)目标检测论文阅读笔记

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...

  8. [机器学习] focal loss:解决样本不平衡的一种通用方案

    文章目录 focal loss 提出的场景和针对的问题 focal loss 提出的场景:目标检测 focal loss 针对的问题:类别不平衡 如何处理目标检测下的类别不平衡 如何理解目标检测场景下 ...

  9. 寻找解决样本不均衡方法之Focal Loss与GHM

    寻找解决样本不均衡方法之Focal Loss与GHM 主要参考资料:5分钟理解Focal Loss与GHM--解决样本不平衡利器 - 知乎 (zhihu.com) Focal Loss的引入主要是为了 ...

  10. yolo 负样本_目标检测正负样本区分策略和平衡策略总结(二)

    0 简介 本文抛弃网络具体结构,仅仅从正负样本区分和正负样本平衡策略进行分析,大体可以分为正负样本定义.正负样本采样和平衡loss设计三个方面,主要是网络预测输出和loss核心设计即仅仅涉及网络的he ...

最新文章

  1. 在线绘图|2分钟轻松搞定桑基图(Sankey diagrams)
  2. 在python中、下列代码的输出是什么-python期末考试试题汇总
  3. 机器学习java_Java机器学习,第1部分
  4. 用QXmlStreamWriter写入xml
  5. 提高电脑反应速度_如何组装一台4000元左右的台式电脑?
  6. maven解析xml+测试test+注解
  7. conan入门(六):conanfile.txt conanfile.py的区别
  8. selenium 确实是好东西,使用selenium-server 加快执行速度,对速度有很大提升,同时可以拆分服务,进行集群部署。
  9. 诗字辈大全:诗仙、诗圣、诗魔、诗佛、诗神、诗鬼、诗杰、诗狂、诗骨、诗家夫子、诗豪、诗囚、诗奴...
  10. 【Try to Hack】veil-evasion免杀
  11. node之cookie-parser
  12. Chtholly Nota Seniorious
  13. 锐起无盘精华100问!(包括3.1,3.0版本)
  14. Matlab读取和显示图像
  15. JFinal配置说明
  16. 使用OpenConnect替代Cisco AnyConnect
  17. 速学堂 JAVA300 第四章 作业
  18. jira是干什么_JIRA简介及基本概念
  19. 【Keil5 C51】AT89C52 数码管的动态显示
  20. 机器人离线编程软件AUTOMAPPPS与DELMIA对比

热门文章

  1. 验证空间变形:电子在测地线的圆形轨道上辐射行为
  2. 美女的大眼睛远看才美
  3. 从两个应用突然流行来看,机会永远存在
  4. 手机后盖透明并不美观
  5. Singleton(单件)
  6. php readfile cookie,python处理cookie详解
  7. web的标准网页设计与php课后,第3章web标准与html
  8. 职业计算机试题,职业高中计算机专业综合练习试题一
  9. 表情库 android,Emojicon
  10. mysql5建函数报1064错误_Mysql创建表过程中报1064错误