Focal loss 和 GHM

Focal loss 和 GHMFocalLossfor 是 ICCV2017 的 Beststudentp 文章思路很简单但非常具有开拓性意义 效果也非常令人称赞 GHM gradientharm 发表于 GradientHarm stageDetecto AAAI2019 是基于 Focalloss 的改进 也是个人推荐的一篇深度学习必读文章 1 FocalLossFoc 的引入主要是为了

Focal Loss for Dense Object Detection 是ICCV2017的Best student paper,文章思路很简单但非常具有开拓性意义,效果也非常令人称赞。

GHM(gradient harmonizing mechanism) 发表于 “Gradient Harmonized Single-stage Detector”,AAAI2019,是基于Focal loss的改进,也是个人推荐的一篇深度学习必读文章。

1、Focal Loss

Focal Loss的引入主要是为了解决难易样本数量不平衡(注意,区别于正负样本数量不平衡)的问题,实际可以使用的范围非常广泛,为了方便解释,还是拿目标检测的应用场景来说明:

单阶段的目标检测器通常会产生高达100k的候选目标,只有极少数是正样本,正负样本数量非常不平衡。我们在计算分类的时候常用的损失——交叉熵的公式如下:

Focal loss 和 GHM

为了解决正负样本不平衡的问题,我们通常会在交叉熵损失的前面加上一个参数,其实之前在上色项目的处理中,我们有通过计算不同类别的像素数目,然后基于像素数对不同类别赋予不同的权重,即:

Focal loss 和 GHM

尽管权重系数平衡了正负样本,但对难易样本的不平衡没有任何帮助。而实际上,目标检测中大量的候选目标都是易分样本。由于数量极不平衡,易分样本的数量相对来讲太多,最终主导了总的损失。而本文的作者认为,易分样本(即,置信度高的样本)对模型的提升效果非常小,模型应该主要关注与那些难分样本(这个假设是有问题的,是GHM的主要改进对象)

这时候,Focal Loss就上场了!

一个简单的思想:把高置信度§样本的损失再降低一些不就好了吗!

Focal loss 和 GHM
Focal loss 和 GHM

这样以来,训练过程关注对象的排序为正难>负难>正易>负易。

2、GHM

GHM(gradient harmonizing mechanism) 解决了上述两个问题。

Focal loss 和 GHM
Focal loss 和 GHM

说白了就是在概率梯度的两端,较为难分的样本和较为易分的样本会集中;这个时候以梯度的倒数作为惩罚系数,可以很好的平衡计算样本带来的负面效应。

因此作者引入梯度密度的概念,并在此基础上使用梯度系数的倒数作为惩罚权重,使得模型更为关注中间区域的易分对象,对极端容易分辨的和极端难以分辨的予以忽视。

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

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

(0)
上一篇 2026年3月17日 下午11:32
下一篇 2026年3月17日 下午11:33


相关推荐

  • mac电脑 datagrip 激活码_通用破解码

    mac电脑 datagrip 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    50
  • pycharm创建vue文件

    pycharm创建vue文件目录 1 首先安装 Node js2 使用淘宝 NPM 镜像 3 项目初始化 1 第一步 继续在 cmd 中安装 vue cli2 打开 pycharm 如果这一步报错 没有出现 vue js 1 首先安装 Node js1 官网 https nodejs org zh cn 2 点击 next 傻瓜式安装 3 打开 cmd 检查一下 出现以上的版本号表示正常 第一个是八以上的就可以 第二个是 6 以上的就可以 如果这一步出错 可能是环境没有配置好 去配置一下环境 2 使用淘宝 NPM 镜像在 cmd 中输入 npmins

    2026年3月18日
    2
  • ES6 数组方法

    ES6 数组方法数组Array为了补充原始数组中某些方法的一些缺陷,ES6在数组方面新增许多API如Array.fromincludefill等等。Array.from()该API可以用来转换类数组与可便利对象将其转化为数组,比如function中的arguments对象(类数组),setmapes6新增的可遍历对象functiontest(){vararr=Array.from(arguments);console.log(arr);}test(1

    2022年6月10日
    32
  • U872在企业平台中做自定义报表显示空白的格子

    U872在企业平台中做自定义报表显示空白的格子问题:在企业平台中做自定义报表时,调试的时候通过,但是打开的时候却有记录却没有显示出数据,出现空白的格子。解决办法:在SQL查询分析器中,我们看到了源码,发现定义别名的时候后面使用了多余的空格,可能是空格引出了问题,把空格删除后,运行正常。 

    2026年4月15日
    5
  • springboot集成Thymeleaf(二)「建议收藏」

    springboot集成Thymeleaf(二)「建议收藏」一、基本语法使用1、传递对象:@Controllerpublic class MyController1 { @Autowired private HeroService heroService; @RequestMapping(“/hello”) public String hello(Model model) { …

    2022年6月13日
    35
  • 矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆

    矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆矩阵求导及其例题,供自己学习使用

    2025年11月12日
    3

发表回复

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

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