Focal loss分析
1)Class imbalance问题的提出
Focal loss的提出就是问了解决Class imbalance问题,在两阶段目标检测算法中,这一问题是通过两阶段级联与启发式采样策略解决的(Class imbalance is addressed in R-CNN-like detectors by a two-stage cascade and sampling heuristics)。在proposal阶段,候选物体位置被快速的降低到一个较小的数量(例如1-2K),筛选掉大部分的背景采样(The proposal stage (e.g., Selective Search [35], EdgeBoxes [39], DeepMask [24, 25], RPN [28]) rapidly narrows down the number of candidate object locations to a small number (e.g., 1-2k), filtering out most background samples)。在第二阶段,启发式的采样方法,例如固定的前景与背景比例(1:3)或者在线难例挖掘,用于保持前景与背景物体数量的平衡。(In the second classification stage, sampling heuristics, such as a fixed foreground-to-background ratio (1:3), or online hard example mining (OHEM) [31], are performed to maintain a manageable balance between foreground and background)。
正相反,单阶段检测器必须处理一个大得多的物体位置候选集,这个候选集通常是在整副图片上采样得到的(In contrast, a one-stage detector must process a much larger set of candidate object locations regularly sampled across an image)。通常,单阶段检测器可能给出~100K个候选位置,这些位置非常密集同时包含不同的空间位置、尺度与比例。(In practice this often amounts to enumerating ∼100k locations that densely cover spatial positions, scales, and aspect ratios)然而,类似的启发式采样方法可能也会被应用,但他们是效率低下的,因为训练过程仍然被容易分类的背景物体主导(While similar sampling heuristics may also be applied, they are inefficient as the training procedure is still dominated by easily classified background examples.)。这一效率低下的问题是目标检测中的典型问题,通常使用bootstrapping或难例挖掘等技术解决(This inefficiency is a classic problem in object detection that is typically addressed via techniques such as bootstrapping [33, 29] or hard example mining [37, 8, 31])。
类别不平衡问题导致两个问题:(This imbalance causes two problems:)(1)训练过程效率低下,因为大部分是简单反例(easy negatives),简单反例对于学习过程没有作用;((1) training is inefficient as most locations are easy negatives that contribute no useful learning signal;)简单反例可能压垮(overwhelm)训练过程并且导致模型的退化。((2) en masse, the easy negatives can overwhelm training and lead to degenerate models.)
上面论文中的几段内容其实主要提出两方面问题
1)类别不平衡问题是单阶段检测器的问题,两阶段检测器没有这个问题。
2)简单反例(easy negatives)才是影响训练过程的主要因素。
因此《Focal Loss for Dense Object Detection》这篇文章针对单阶段检测器中的类别不平衡问题提出一种新的损失函数Focal loss,当然Focal loss不仅能解决单阶段检测器中的类别不平衡,类别不平衡问题均可以尝试采用这一方法解决。
直接借用文章中的图片,可以看到如果γ等于0,则与cross entropy相等,随着γ的增加,loss随之下降。此处的下降有两方面作用:
1)当某个物体分类错误并且pt较小时,调制因子接近于1,损失函数并没有什么影响,这也就意味着被错误分类的物体的损失函数基本保持不变,仍能有效的用于网络训练。当pt趋近于1时,调制因子接近于0,较为容易分类的物体的损失函数也就基本趋近于0。
2)参数γ可以有效地降低被明确分类的物体的权重。这也就意味着被错误分类的物体的重要性在提高。
Focal loss分析相关推荐
- RetinaNet和Focal Loss论文笔记
论文:Focal Loss for Dense Object Detection.Tsung-Yi Lin Priya Goyal Ross Girshick Kaiming He Piotr Dol ...
- RetinaNet——《Focal Loss for Dense Object Detection》论文翻译
<Focal Loss for Dense Object Detection> 摘要 迄今为止最高精度的对象检测器基于由R-CNN推广的 two-stage 方法,其中分类器应用于稀疏的候 ...
- NeurIPS 2020 | Focal Loss改进版来了!GFocal Loss:良心技术,无Cost涨点!
本文作者:李翔 https://zhuanlan.zhihu.com/p/147691786 本文仅供学习参考,如有侵权,请联系删除! 论文地址:https://arxiv.org/abs/2006. ...
- 无痛涨点!大白话讲解 Generalized Focal Loss
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李翔 来源丨https://zhuanlan.zhihu.c ...
- 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法
训练目标检测模型的一个难点是样本不均衡,特别是正负样本比例严重失衡.目前解决这类问题主要是两种方案(见综述Imbalance Problems in Object Detection: A Revie ...
- Focal Loss升级:让Focal Loss动态化,类别极端不平衡也可以轻松解决
学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 尽管最近长尾目标检测取得了成功,但几乎所有的长尾目标检测器都是基于两阶段范式开发的.在实践中,一阶段检测器在行业中更为普遍 ...
- Focal Loss升级 E-Focal Loss让Focal Loss动态化,类别极端不平衡也得到提升
尽管最近长尾目标检测取得了成功,但几乎所有的长尾目标检测器都是基于两阶段范式开发的.在实践中,一阶段检测器在行业中更为普遍,因为它们有一个简单和快速的Pipeline,易于部署.然而,在长尾情况下,这 ...
- 【CV】10分钟理解Focal loss数学原理与Pytorch代码
原文链接:https://amaarora.github.io/2020/06/29/FocalLoss.html 原文作者:Aman Arora Focal loss 是一个在目标检测领域常用的损失 ...
- AAAI 2019 Oral | 把Cross Entropy梯度分布拉‘平’,就能轻松超越Focal Loss
单阶段物体检测(One-stage Object Detection)方法在模型训练过程中始终面临着样本分布严重不均衡的问题,来自香港中文大学的研究者们在论文 Gradient Harmonized ...
- L1/L2/smooth_l1_loss/center_loss+Dice Loss+focal loss+各种IOU loss+kl散度
一.L1/L2/smooth_l1_loss/center_loss公式与代码 1.公式 L2公式: smooth_L1公式: 2.三种函数numpy代码实现 import numpy as np i ...
最新文章
- 电气毕业什么都不会怎么办?电气专业毕业的都去干什么了?
- hdu1042 N!
- Android TableLayout 常用的属性介绍及演示
- 谋定技术加工领域 中国-巴对话(国际)农民丰收节贸易会
- java catch getm_Java------异常处理机制
- linux下进程监控6,Linux进程监控技术—精通软件性能测试与LoadRunner最佳实战(6)...
- kotlin键值对数组_Kotlin程序检查数组是否包含给定值
- nutch源代码阅读心得
- QQ连连看棋盘数组找法:
- 【Flink】使用Flink实现索引数据到Elasticsearch
- 大数据分析需注意什么问题
- 火山安卓简单分组列表框
- 爱思助手更新后无法连接服务器,爱思助手无法连接手机怎么办 爱思助手连接失败问题解决办法...
- 百练_2801:填词
- 用Python下载Lofter上“喜欢”的文章和图片
- 计算机专业银行春招,哪些银行有春招
- 【系统集成项目管理工程师】项目资源管理
- 谈谈「心流」:如何在学习中体验快乐
- php表格所有边框实线,css表格怎么添加边框样式?css表格边框样式总结(附完整实例)...
- TkMybatis使用学习以及Example条件设置
热门文章
- 【机器学习】线性回归之加州房价预测
- TypeError: __init__() got an unexpected keyword argument ‘rate‘
- Latex设置每段前的空格数
- ES2015 class
- mysql错误1548 Cannot load from mysql.proc的最终解决方法
- Cordys BOP 4.3平台使用小经验—数据库连接管理、导出流程模型为XPDL
- Net Core对接支付宝SDK
- 做个jmeter登陆百度网盘的实例
- VS2017调用Matlab2016b进行绘图
- 什么是ArcGIS Engine?