Online Negative Example Mining

论文链接

背景:

在模型训练中,大量的训练数据中会存在一些难以区分的负样本,找到这样的负样例再进行针对性地训练,能够对模型精度有一定的提升。在 two-stage 的目标检测方法中,经过区域生成算法或者网络生成的 region proposals 通常会经过正负样本的筛选和比例平衡后,才送入之后的检测网络进行训练。但是正负样本的定义和训练的比例是需要人为定义的。如果要筛选 hard mining。通常使用的都是 hard negative mining 的方法。但是此方法不适用于 end-to-end 的模型。因为会大大降低模型的训练速度。OHEM是一种线上的困难负样例挖掘解决方案,可以自动地选择 had negative 来进行训练,不仅效率高而且性能好。

简单介绍:

  1. 传统 hard negative mining method:
    传统算法需要迭代训练,放入巻积神经网络,每次都需要冻结网络生成困难负样例,很难应用在端-端的检测模型。(SVM + 传统 hard negative mining method)

  2. OHEM的基准算法是Fast R-CNN,可以把交替训练的步骤和 SGD 结合起来。之所以可以这样,作者认为虽然 SGD 每迭代一次只用到少量的图片,但每张图片都包含上千个 RoI,可以从中选择 hard examples,这样的策略可以只在一个 mini-batch 中固定模型,因此模型参数是一直在更新的。
      更具体的,在第 t 次迭代时,输入图片到卷积网络中得到特征图,然后把特征图和所有的 RoIs 输入到 RoI 网络中并计算所有 RoIs 的损失,把损失从高到低排序,然后选择 B / N (B 为 Roi 总个数,N 为输入图片个数)个 RoIs。这里有个小问题,位置上相邻的 RoIs 通过 RoI 网络后会输出相近的损失,这样损失就翻倍。作者为了解决这个问题,使用了 NMS(非最大值抑制) 算法,先把损失按高到低排序,然后选择最高的损失,并计算其他 RoI 与这个 RoI 的 IoU (交叉比),移除 IoU 大于一定阈值的 RoI,然后反复上述流程直到选择了 B/N 个 RoIs。

图中的b模块正是OHEM 比 Fast R-CNN 多出的模块。

  1. 对于two-stage模型,可以把它的两部分是提取推荐框分类回归两个部分,而OHEM的作用恰好是两个部分的中间。

在提取推荐框之后,会有很多ROI传输到后面网络。这部分的输出便是推“可能存在目标的位置“,以image patch(会给数以千计的小片(你可以叫ROI,也可以叫推荐框,还可以叫image patch))的形式给到后面的分类和回归网络。分类回归会对这些小片进行分类、坐标和尺寸回归以及置信度打分(confidence, 置信度是指,模型对这个输出有多大把握)。如果在训练阶段,那可以通过这些参数与标注结果进行计算得出损失值。OHEM恰恰利用了这个损失值。

  1. 操作流程:

    1. 正常进行一次Faster RCNN的前向传播,获得每个小片单独的损失值;

    2. 对小片们进行非极大值抑制(NMS),不了解NMS点链接去了解,非常简单;

    3. 对nms之后剩下的小片按损失值进行排序,然后选用损失值最大的前一部分小片当作输入再进一遍b部分,通过这种方法,可以屏蔽掉loss值非常低的小片。loss值非常高的小片意味着,模型训练很多次还对这些小片有着很高的loss,那么就认为这是困难负例。所谓的线上挖掘,就是先计算loss->筛选->得到困难负例。

    4. 把困难负例输入到图1中(b)模块,(b)模块是(a)模块的copy版,连参数都是一样的。只是(a)模块是不可训练的,用于寻找困难负例嘛。(b)模块是用来反向传播的部分,然后把更新的参数共享到(a)部分(a部分也跟着一起更新)。其实在程序的实现上,(a)模块可以复用,不需要额外来一个(b)模块。ab部分可以并行操作:a对下一张图像进行前向,b对上一张图像进行反向。

困难负样本挖掘方法——OHEM相关推荐

  1. 困难样本挖掘(Online Hard Sample Mining)

    一.分类与检测 分类和检测是计算机视觉里面两个非常重要的任务,虽然两个任务的目标并不完全相同,但是本质上检测是在分类问题上的一次推广,即检测是在整个个图像上做的局部分类并且标记该局部分类的位置,那么可 ...

  2. 物体检测中的困难样本挖掘(Online Hard Sample Mining)

    一.分类与检测 分类和检测是计算机视觉里面两个非常重要的任务,虽然两个任务的目标并不完全相同,但是本质上检测是在分类问题上的一次推广,即检测是在整个个图像上做的局部分类并且标记该局部分类的位置,那么可 ...

  3. yolov4负样本_了解各种挂件--帮助读懂YOLOV4

    YOLOV4在V3的基础上引进了很多挂机,了解这些挂件们,会有助于真正了解这篇文章.所以我就先从挂件开始介绍吧. Weighted-Residual-Connections 文章 weighted-r ...

  4. 负样本的艺术,再读Facebook双塔向量召回算法

    负样本的艺术,再读Facebook双塔向量召回算法 Facebook这篇Embedding召回的论文,之前已经有几篇文章涉及过了,分别是<Embeding-based Retrieval in ...

  5. 对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!

    文 | jxyxiangyu 编 | 小轶 对比学习是 2021 年几大研究热点之一了.如果说预训练模型解决了机器学习对大规模标注数据的需求问题,那么,对比学习可以说是将无监督/自监督学习推广到更一般 ...

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

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

  7. MoCo 动量对比学习——一种维护超大负样本训练的框架

    MoCo 动量对比学习--一种维护超大负样本训练的框架 FesianXu 20210803 at Baidu Search Team 前言 在拥有着海量数据的大型互联网公司中,对比学习变得逐渐流行起来 ...

  8. 目标检测中的样本不平衡处理方法——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 ...

  9. OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)

    Hard Negatie Mining与Online Hard Example Mining(OHEM)都属于难例挖掘,它是解决目标检测老大难问题的常用办法,运用于R-CNN,fast R-CNN,f ...

最新文章

  1. 如何创建企业转型路线图
  2. 如何发布自己的NPM包(模块)?
  3. 腾讯大数据回答2019:鹅厂开源先锋,日均计算量超30万亿,全力打破数据墙
  4. Codeforces Round #321 (Div. 2) B. Kefa and Company (尺取)
  5. 微软发招,苹果发飙,React Native躺枪
  6. Android Service、IntentService,Service和组件间通信
  7. 异或运算交换两个整数
  8. 读保护_混合ASIL系统中不同安全等级模块间的边界保护
  9. 集成LNMP/LAMP/FAMP的LuNamp2.1正式版开源发布
  10. 【BZOJ3524】Couriers,第一次的主席树
  11. [SHOI2008]堵塞的交通
  12. Windows 中不规则窗体的编程实现三种方法:CRgn,作图路径法,据图像创建region
  13. 安卓root之后交管123123 20秒闪退和中国农业银行app 6.0闪退的解决方法
  14. 如何提高工作效率,提高工作效率的方法?
  15. 5G网络切片技术解析,一文让你读懂5G切片
  16. reinstall virtualbox-dkms 虚拟机崩溃
  17. 没经验能做seo专员吗
  18. 3D人体姿态估评估指标
  19. 留痕笔记2.0升级到delphi11踩过的坑
  20. 最强旗舰手机功能曝光:大变活人、智能静音、拍照测肤……

热门文章

  1. YFX软件合集-开车五大夺命盲区!新手必看
  2. 自媒体原创视频怎么做?有哪些类型可以做?
  3. FCN(Fully Convolutional Network)全卷积网络笔记
  4. 需求-MTK平台降低闪光灯电流
  5. windows认证机制
  6. 浅谈游戏中台-我眼中的supercell为何成功?
  7. BOOST 线程完全攻略 - 基础篇 .
  8. google推荐系统初探
  9. Linux宝塔详细使用教程
  10. python爬取数据实践,以及趟过的坑