来源:深度学习这件小事
本文约1500字,论文复现了一遍建议阅读5分钟
本文为你介绍关于难分样本的挖掘,如何将难分样本抽取出来。

最近看了几篇文章关于难分样本的挖掘,如何将难分样本抽取出来,通过训练,使得正负样本数量均衡。一般用来减少实验结果的假阳性问题。

Training Region-based Object Detectors with Online Hard Example Mining

论文:https://arxiv.org/pdf/1604.03540.pdf

代码:https://github.com/abhi2610/ohem

01、概念

对于分类来说:

正样本:我们想要正确分类出的类别所对应的样本,例如,我们需要对一张图片分类,确定是否属于猫,那么在训练的时候,猫的图片就是正样本。

负样本:根据上面的例子,不是猫的其他所有的图片都是负样本。

难分正样本(hard positives):错分成负样本的正样本,也可以是训练过程中损失最高的正样本。

难分负样本(hard negatives):错分成正样本的负样本,也可以是训练过程中损失最高的负样本。

易分正样本(easy positive):容易正确分类的正样本,该类的概率最高。也可以是训练过程中损失最低的正样本。

易分负样本(easy negatives):容易正确分类的负样本,该类的概率最高。也可以是训练过程中损失最低的负样本。

02、核心思想

用分类器对样本进行分类,把其中错误分类的样本(hard negative)放入负样本集合再继续训练分类器。

关键是找出影响网络性能的一些训练样本,针对性的进行处理。

简单来说就是把难分的样本,剔除出来,放到另外一个地方里面。最后将难分样本,给负样本,加强训练分类器。但是,这样又会造成数据不平衡的问题,下面会讲到。

03、方法:离线和在线

  • 离线:

在样本训练过程中,会将训练结果与GroundTruth计算IOU。通常会设定一个阈值(0.5),结果超过阈值认为是正样本,低于一定阈值的则认为是负样本,然后扔进网络中训练。

但是,随着训练的进行,这样的策略也许会出现一个问题,那就是正样本的数量会远远小于负样本,这样会导致数据的分布不平衡,使得网络的训练结果不是很好。

当然有些论文作者针对这种导致不平衡的数据,提出了一种对称的模型。就是类似上图,将Hard Posiotive也重新赋给正样本。

  • 在线:

CVPR2016的Training Region-based Object Detectors with Online Hard Example Mining(oral)将难分样本挖掘(hard example mining)机制嵌入到SGD算法中,使得Fast R-CNN在训练的过程中根据region proposal的损失自动选取合适的Region Proposal作为正负例训练。

上面的论文就是讲的在线的方法:Online Hard Example Mining,简称OHEM

实验结果表明使用OHEM(Online Hard Example Mining)机制可以使得Fast R-CNN算法在VOC2007和VOC2012上mAP提高 4%左右。

即:训练的时候选择hard negative来进行迭代,从而提高训练的效果。

简单来说就是从ROI中选择hard,而不是简单的采样。

Forward: 全部的ROI通过网络,根据loss排序;

Backward:根据排序,选择B/N个loss值最大的(worst)样本来后向传播更新model的weights.

这里会有一个问题,即位置相近的ROI在map中可能对应的是同一个位置,loss值是相近的,所以针对这个问题,提出的解决方法是:对hard做nms,然后再选择B/N个ROI反向传播,这里nms选择的IoU=0.7。

在后向传播时,直觉想到的方法就是将那些未被选中的ROI的loss直接设置为0即可,但这实际上还是将所有的ROI进行反向传播,时间和空间消耗都很大,所以作者在这里提出了本文的网络框架,用两隔网络,一个只用来前向传播,另一个则根据选择的ROIs进行后向传播,的确增加了空间消耗(1G),但是有效的减少了时间消耗,实际的实验结果也是可以接受的。

给定图像和选择性搜索RoI,卷积网络计算转换特征映射。在(a)中,只读RoI网络在特征映射和所有RoI上运行正向传递(以绿色箭头显示)。然后Hard RoI模块使用这些RoI损失来选择B个样本。在(b)中,RoI网络使用这些硬性示例来计算前向和后向通道(以红色箭头示出)。

想法很类似于新扩展一个空间,错放错误样本,然后单独训练这些样本,更新权重。

04、扩展idea

难分样本挖掘的思想同样可以利用到图像的语义分割上。

可以对难以分割的样本,或者无法分割的样本,单独建立字典或者模型来训练,更新网络权重。

用于不平衡数据的扩增也是一个不错的选择。

文中图片中的思想可以借鉴哦。读者可以自定义一个自己的Hard ROI模块哟~

【参考】

https://blog.csdn.net/u014381600/article/details/79161261

https://blog.csdn.net/qq_29981283/article/details/83350062

https://blog.csdn.net/u013608402/article/details/51275486

编辑:于腾凯

校对:林亦霖

深度学习难分样本挖掘(Hard Mining)相关推荐

  1. ECCV18 | 无监督难分样本挖掘改进目标检测

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 大量训练数据有助于目标检测系统性能的提升,对于已经训练好的系统而言,有研究发现,那些被系统误分类的少量" ...

  2. 剖析Focal Loss损失函数: 消除类别不平衡+挖掘难分样本 | CSDN博文精选

    作者 | 图像所浩南哥 来源 | CSDN博客 论文名称:< Focal Loss for Dense Object Detection > 论文下载:https://arxiv.org/ ...

  3. 【深度学习】深度学习之对抗样本问题和知识蒸馏技术

    文章目录 1 什么是深度学习对抗样本 2 深度学习对于对抗样本表现的脆弱性产生的原因 3 深度学习的对抗训练 4 深度学习中的对抗攻击和对抗防御 5 知识蒸馏技术5.1 知识蒸馏介绍5.2 为什么要有 ...

  4. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录

    利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...

  5. 基于深度学习的岩石样本智能识别研究——第九届“泰迪杯”挑战赛B题优秀作品

    1 前言 1.1 研究背景 岩石是现代建筑业和制造业的重要原材料,除了作为原材料使用以外,还可以对其进行勘探开发挖掘岩油气藏,若能智能且准确地识别岩石岩性.计算岩石含油量,这将会是一笔巨大的社会财富. ...

  6. 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类...

    from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...

  7. 深度学习中的样本采样

    深度学习是利用一个流形分布上的部分样本(训练样本)训练网络,使网络可以学到流形分布的过程. 训练样本的采集好坏对网络的学习效果影响很大. 我们在整个流形分布上均匀采样获得训练样本,从而可以使网络较好的 ...

  8. 深度学习难,这本书让你轻松学深度学习

    深度学习在短短几年之内便让世界大吃一惊. 它非常有力地推动了计算机视觉.自然语言处理.自动语音识别.强化学习和统计建模等多个领域的快速发展. 随着这些领域的不断进步,人们现在可以制造自动驾驶的汽车,基 ...

  9. 小样本点云深度学习库_2019-01-07-小样本深度学习

    小样本数据通常不建议用深度学习的理由: 对于classification model,有如下结论 训练样本N,h为Vc维数,详见https://www.cnblogs.com/HappyAngel/p ...

最新文章

  1. Android开发效率—Eclipse快捷键
  2. 三、初识Socket套接字结构体
  3. echart 圆饼图 显示单位_玩转ECharts之实现“1/2圆的玫瑰图”
  4. 面向对象知识点之statickeyword的使用
  5. [vue] 你有使用过babel-polyfill模块吗?主要是用来做什么的?
  6. Cheatsheet: 2010 12.13 ~ 12.23
  7. 基于jQuery/zepto的单页应用(SPA)搭建方案
  8. 摄影测量--点位精度评定
  9. Tensorflow学习笔记2----文本分类模型
  10. John the Ripper 著名密码破解工具
  11. python 主函数传参_Python函数传参方法超级大汇总
  12. SharePoint365 接入简要笔记
  13. 颜色的前世今生10·HSB拾色器详解
  14. Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(一)
  15. 善领dsa2020最新车机ce版_小米MIX 3 5G版成为首款获欧盟5G认证的骁龙855手机
  16. uniapp浏览pdf文件
  17. datatables加载表格数据入门
  18. 3dmax贴图出现白边解决方法
  19. ECC加密;easy_ECC
  20. 一种通过篡改特定代码数据修复嵌入式产品BUG的方法

热门文章

  1. linux系统最大支持多大硬盘容量,LINUX操作系统对硬件支持有上限么?最大多少内存?多大硬盘容量?...
  2. 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码
  3. 【c语言】蓝桥杯算法提高 c++_ch02_02
  4. 挡d挡切换_吉行贴士 | 从N-D换挡,就是如此轻松
  5. java mvc 绑定_关于Java:Spring MVC:将请求属性绑定到控制器方法参数
  6. [转帖]在SQL SERVER中实现RSA加密算法
  7. rsync文件同步的两种方式——ssh协议和守护进程(端口873)
  8. 深入浅出Unix IO模型
  9. Delphi基础必记-快捷键
  10. 原生YII2 增删改查的一些操作(非ActiveRecord)