OHEM算法论文理解

OHEM算法论文理解OHEM层

大家好,又见面了,我是你们的朋友全栈君。

CVPR2016的文章,CMU与rbg大神的合作。原谅我一直没有对这篇文章做一个笔记~~

文章提出了一种通过online hard example mining(OHEM)算法训练基于区域的卷积检测算子的高效目标检测算法,能够对简单样本和一些小数量样本进行抑制,使得训练过程更加高效。该方法利用显著的bootstrapping技术(SVM中被普遍利用),对SGD算法进行一定的修改,使得原有的region-based ConvNets的启发式学习和多参数可以被移除,并得到较准确稳定的检测结果。在PASCAL VOC2007和2012中的mAP分别为:78.9%,76.3%。https://github.com/abhi2610/ohem


Hard example mining:

主要有2种参见Hard example mining算法,优化SVM时候的算法和非SVM时的利用。

在优化SVM中使用Hard example mining时,训练算法主要维持训练SVM和在工作集上收敛的平衡迭代过程,同时在更新过程中去除一些工作集中样本并添加其他特殊的标准。这里的标准即去掉一些很容易区分的样本类,并添加一些用现有的模型不能判断的样本类,进行新的训练。工作集为整个训练集中的一小部分数据。

非SVM中使用时,该Hard example mining算法开始于正样本数据集和随机的负样本数据集,机器学习模型在这些数据集中进行训练使其达到该数据集上收敛,并将其应用到其他未训练的负样本集中,将判断错误的负样本数据(false positives)加入训练集,重新对模型进行训练。这种过程通常只迭代一次,并不获得大量的再训练收敛过程。

注意点:bg_lo = 0.1, 这里已经近似的使用难例挖掘;

要使用OHEM时,建议采用正负比例设置为1:3,并且bg_lo =0;这样效果较好


网络结构框架:

OHEM算法基于Fast R-CNN算法进行改进,作者认为Fast R-CNN算法中创造mini-batch用来进行SGD算法,并不具有高效和最优的状态,而OHEM可以取得lower training loss,和higher mAP。对比下图两种算法Fast R-CNN和OHEM结构:

OHEM算法论文理解


OHEM算法论文理解

对比可以发现,文章提出的OHEM算法里,对于给定图像,经过selective search RoIs,同样计算出卷积特征图。但是在绿色部分的(a)中,一个只读的RoI网络对特征图和所有RoI进行前向传播,然后Hard RoI module利用这些RoI的loss选择B个样本。在红色部分(b)中,这些选择出的样本(hard examples)进入RoI网络,进一步进行前向和后向传播。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于stm32的室内环境监测系统设计及实现_毕业设计怎么做

    基于stm32的室内环境监测系统设计及实现_毕业设计怎么做一、前言这是本科时的毕业设计,想着之后读研了,研究方向是机器学习了,可能不会这么再碰32或者51之类的板子了,就想趁着还没有忘记就来梳理一下,纪念陪伴了我两年的硬件朋友们,作为的一个足迹。二、项目背景及资源分享这次毕业设计的灵感来源于20年的电赛,当时因为考研时间紧张的原因,在做一个《无线传感器结点》题目的时候,当时是使用的无线传感器模块讲数据传到电脑作为一个上位机的展示。但当时想做的是使用wifi模块来实现无线传输功能,传到一个自己写的web服务器,在页面上进行展示的,由于时间原因最终还是选择了前者

    2022年9月1日
    5
  • android 通过类名跳转activity,Activity跳转方式总结

    android 通过类名跳转activity,Activity跳转方式总结一、显式调用方法方法一:Intentintent=newIntent(本类,将要跳转的类);//Intentintent=newIntent(MainActivity.this,JumpToActivity.class);startActivity(intent);方法二:Intentintent2=newIntent();intent2.setClass(本类,将要跳转的类)…

    2022年5月22日
    34
  • GIT、GITLAB、GITHUB、GITLIB[通俗易懂]

    GIT、GITLAB、GITHUB、GITLIB[通俗易懂]Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Github-一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上

    2025年5月31日
    3
  • 基于Vue3.0的电商后台管理系统—前端

    基于Vue3.0的电商后台管理系统—前端历时一个月,从开始学习vue到能用vue开发一个简单的系统,以下是开发这个系统的简单报告。所用的技术:git:管理代码的开发node.js:vue.js运行环境vue3.0:最新版本vue-cli3.0:脚手架最新版本,支持图形化操作webstorm:代码编辑器项目新增插件:vue-cli-plugin-element:elementUI库项目新增的依赖:…

    2022年6月8日
    45
  • 深度学习算法评价标准AP bbox bev 3d

    深度学习算法评价标准AP bbox bev 3d

    2020年11月8日
    524
  • 怎样让浏览器变身代码编辑器?

    怎样让浏览器变身代码编辑器?将浏览器变成一个简易文本编辑器一开始的功能非常简单,根本没有语法高亮,也没有自动缩进,仅仅是将浏览器变成一个文本编辑器而已。Jose分享的代码如下:data:text/html,htmlcontenteditable>只需要将上面的代码复制粘贴到浏览器的地址栏,然后按回车,就可以让浏览器变成编辑器。是不是非常简单?背后的原理并不高

    2022年6月22日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号