深度学习之 hard negative mining (难例挖掘)
Hard Negative Mining Method 思想
hard是困难样本,negative是负样本,hard negative就是说在对负样本分类时候,loss比较大(label与prediction相差较大)的那些样本,也可以说是容易将负样本看成正样本的那些样本。
- 例如roi里没有物体,全是背景,这时候分类器很容易正确分类成背景,这个就叫easy negative;
- 如果roi里有二分之一个物体,标签仍是负样本,这时候分类器就容易把他看成正样本,即假阳性(false positive),这时候就是hard negative。
hard negative mining就是多找一些hard negative加入负样本集,进行训练,这样会比easy negative组成的负样本集效果更好。主要体现在虚警率更低一些(也就是false positive少)。因为它相当于一个错题集。
如何判断它为困难负样本呢?也很简单,我们先用初始样本集去训练网络,再用训练好的网络去预测负样本集中剩余的负样本,选择其中得分最高,即最容易被判断为正样本的负样本为困难样本,加入负样本集中,重新训练网络,循环往复,然后我们会发现:咦!我们的网络的分类性能越来越强了!假阳性负样本与正样本间也越来越相似了!(因为此时只有这些妖怪区域能迷惑我们的分类器了)。
Hard Negative Mining Method 使用
通常 使用 Hard Negative Mining Method 的方法为:
迭代地交替训练,用样本集更新模型,然后再固定模型来选择分辨错的目标框并加入到样本集中继续训练。传统,我们会使用 SVM + Hard Negative Mining Method 进行训练
Hard Negative Mining Method 缺点
那么传统的 Hard Negative Mining Method 有什么 缺点 呢?
Hard Negative Mining Method 很难应用到 end-to-end 的检测模型。 因为 Hard Negative Mining Method 需要迭代训练,如果我们将他使用到 end-to-end 的卷积神经网络,需要每次将网络冻结一段时间用来生成 hard negative。而这对于使用线上优化的算法来说是不可能的,例如 SGD (随机梯度下降算法)。使用 SGD 来训练网络需要上万次更新网络,如果每迭代几次就固定模型一次,这样的速度会慢得不可想象。
我们可以观察到在 fast rcnn 和 faster rcnn 中都没有用到 Hard Negative Mining Method。这就是因为如上的原因,一般使用 SVM 分类器才能使用此方法(SVM 分类器和 Hard Negative Mining Method 交替训练)
深度学习之 hard negative mining (难例挖掘)相关推荐
- (HEM/OHEM)hard negative(example)mining难例挖掘 与focal loss、GHM损失函数
目录 分类任务中的样本不均衡及hard negative mining的必要性 hard negative example HEM(hard example/negative mining) 与 OH ...
- 学习了解online hard example mining在线难例挖掘
对于每一个网络,相当于一个桶,总有样本效果比较好,有的样本比较差,多用效果差的样本进行训练,那提高了整个网络的短板,总体的效果也会有提升. 一. 难例挖掘是指,针对模型训练过程中导致损失值很大的一些样 ...
- OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)
Hard Negatie Mining与Online Hard Example Mining(OHEM)都属于难例挖掘,它是解决目标检测老大难问题的常用办法,运用于R-CNN,fast R-CNN,f ...
- 目标检测之六:OHEM 在线难例挖掘
https://zhuanlan.zhihu.com/p/102817180 6.OHEM 在线难例挖掘 OHEM(Online Hard negative Example Mining,在线难例挖掘 ...
- 在线难例挖掘(OHEM)
OHEM(online hard example miniing) 详细解读一下OHEM的实现代码: def ohem_loss(batch_size, cls_pred, cls_target, l ...
- 如何评价深度学习相关顶级期刊论文难复现的问题?
链接:https://www.zhihu.com/question/265953178 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 在本人的研究动作识别过程中,曾多次复现该领域顶级期刊的论文 ...
- 证券投资深度学习_20170711-广发证券-深度学习研究报告之三:深度学习新进展:Alpha因子再挖掘...
近年 来,国内外知名的 IT 公司,如谷歌.微软.百度.腾讯等纷纷在人工智能 上发力, 创造了一系列突破性成果. 同时, 海外的对冲基金和投资银行也开 始在人工智能上进行布局. Citadel . T ...
- 如何在云服务器上跑深度学习的代码?(ResNet50为例)
✅ 个人简介:南京邮电大学,计算机科学与技术,在读本科 兴趣领域:数据结构.C/C++ 文章目录 一.选择一款云服务器 二.上传代码和数据 三.解压"代码和数据的压缩包" 四.训练 ...
- 深度学习之 OHEM (Online Hard Example Mining)
论文 <Training Region-based Object Detectors with Online Hard Example Mining> 链接 https://arxiv.o ...
最新文章
- 分享.NET 3.5的书籍下载(2009-04-01更新Silverlight 2书籍打包)
- Java 中商业运算必备的精确运算类:BigDecimal
- python 多维list 排序_人生苦短 | Python列表和元组归纳整理
- C++中实现回调机制的几种方式
- 解决vmware移动虚拟机之后执行ifconfig命令无输出的问题
- 我发现养生这个梗好像在程序员圈火起来了
- 解读MySQL 8.0新特性:Skip Scan Range
- 正则表达式及其在python上的应用
- 【LeetCode笔记】448. 找到所有不存在的数(Java、原地)
- 笨办法学 Python · 续 练习 29:`diff`和`patch`
- 顺时针 vs 逆时针
- 【个人笔记】OpenCV4 C++ 快速入门 12课
- 【网络通信 -- 直播】SRS 实战记录 -- 开源流媒体服务器对比与 SRS 直播效果测试
- HTML中如何修改提示文字,html中input提示文字样式修改
- 简单人物画像_超级简单人物素描画图片精选
- js获取不同时区时间
- 30分钟学会js新特性
- 网页制作的形式美的规则
- adguard自定义_AdGuard-轻量级的全平台广告过滤工具
- 回归系数(拟合度)与相关系数
热门文章
- Androud 如何有效减少重复代码
- 视频编解码,bbv 缓冲区的上溢和下溢
- OpenCL 第8课:旋转变换(2)
- 项目经理沟通的四个好习惯
- 用博客见证自己的成长
- 6个变态的C语言写的Hello World
- springCloud - 第2篇 - 服务的发现 seeParam
- ItelliJ IDEA开发工具使用—创建一个web项目
- if...elif...else...fi和case...esac的脚本条件判断式
- 【MySQL】PREPARE 的应用