GHM

news/2024/10/21 15:34:09/

论文题目:Gradient Harmonized Single-stage Detector
论文链接:https://arxiv.org/pdf/1811.05181.pdf


解决

        正、负样本简单和困难眼样本之间的不均衡问题,负样本和简单样本数量多。

之前工作
  • 基于实例挖掘: 为了解决之前的不平衡问题,基于实例挖掘的方法如OHEM被广泛使用,但它们直接放弃了大部分的例子,训练效率低下。
  • Focal Loss: 对于类不平衡,Focal Loss试图通过修改交叉熵损失函数来解决这个问题。然而,Focal loss采用了两个超参数,需要进行大量的调整。它是一种静态损失,不适应数据分布的变化,随训练过程的变化而变化。
提出

        类不平衡可以归结为难度的不平衡,难度的不平衡可以归结为梯度范数分布的不平衡。如果正样本好分类,说明是个简单样本,对模型训练的作用很小,产生的梯度很小由于异常值的梯度可能与其他常见的例子有较大的差异,因此可能会影响模型的稳定性。

  • 揭示了单阶段检测器在梯度范数分布方面存在显著不平衡的基本原理,并提出了一种新的梯度协调机制(GHM)来解决这一问题。
  • 将分类和回归的损失分别嵌入到GHM-C和GHM-R中,修正了不同属性样本的梯度贡献,对超参数具有鲁棒性。
  • 通过与GHM的合并,我们可以很容易地训练一个单阶段检测器,而不需要任何数据采样策略,并在COCO基准上实现最优的结果。


CHM-C Loss


梯度范数

  • original gradient norm ,即 g = ∣ p − p ∗ ∣ g=|p-p^*| g=pp。g等于x对应的梯度范数。 g的值表示一个例子的属性(例如easy或hard),表示这个例子对全局梯度的影响。虽然梯度的严格定义是在整个参数空间上,即g是一个例子梯度的相对范数,但为了方便起见,本文将g称为梯度范数。
  • N是总共样例的个数。
  • 为了更好地理解梯度密度协调参数,可以将其改写为 β i = 1 G D ( g i ) / N \beta_i=\frac{1}{GD(g_i)/N} βi=GD(gi)/N1,分母 G D ( g i ) / N GD(g_i)/N GD(gi)/N是一个标准化器指示了邻域梯度到第i个样本的样本分数。如果样例关于梯度均匀分布,对任何 g i g_i gi,$ GD(g_i)=N$,每个样例有相同的 β i = 1 \beta_i=1 βi=1,这意味着什么都没有改变。否则,密度较大的算例将被归一化器相对降权。
  • 可以看到Focal Loss和GHM-C损失的曲线有相似的趋势,这意味着CHM-C Loss与设置的最好参数的focal loss 都有均匀梯度协调的优点。 此外,GHM-C还有一个特别的优点:降低了异常值梯度贡献的权重。
  • CHM-C Loss降低了大量简单样本和异常样本的权重。由于梯度密度是每次迭代计算得到的,所以权值是随着训练动态改变适应的。
- 单位区域近似 1、朴素的计算复杂度:$O(n^2)$ 2、最好算法也是先对 样本gradient norm 进行排序,复杂度$O(NlogN)$然后使用队列扫描样本,得到样本的密度。 $O(N)$ 3、因为图片数量一般比较大,直接计算梯度密度费时。提出近似计算。

单元区域

  • 将g的值域空间划分为长度为 ε \varepsilon ε的单位区域,即有 M = 1 / ε M=1/\varepsilon M=1/ε个单位区域。
  • r j r_j rj是第j个的区域,即 r j = [ ( j − 1 ) ε , j ε ] r_j=[(j-1)\varepsilon,j\varepsilon] rj=[(j1)ε,jε]
  • R j R_j Rj代表 r j r_j rj中的样本个数
  • 定义 i n d ( g ) = t ind(g)=t ind(g)=t,即 ( t − 1 ) ε < = g < t ε (t-1)\varepsilon<= g < t\varepsilon (t1)ε<=g<tε
  • 定义近似梯度密度函数:


    if 单位区域代表的样本少,GD小, β \beta β
    特殊情况 ε = 1 \varepsilon=1 ε=1,只有一个单位区域,所有的样本都在里面, β = 1 \beta=1 β=1 ,保持原始梯度贡献。

EMA
类似SGD的动量,考虑之前迭代信息。

  • 基于小批量统计的方法通常面临一个问题:当大量的极端数据在一个小批量中采样时,统计结果会产生严重的噪声,训练不稳定。
  • 由于在近似算法中梯度密度来自于单元区域内的样本个数,在每个单元上应用EMA来获得更加稳定的梯度密度。
  • R j ( t ) R_j^{(t)} Rj(t)第j个单元的第t次迭代中的样本数。
  • S j ( t ) S_j^{(t)} Sj(t)为滑动平均数
  • α \alpha α是动量参数
  • 使用EMA,梯度变化更加平滑并且对极端数据更加敏感。

GHM-R loss

  • smooth L1

  • δ \delta δ是在二次部分和线性部分之间的分界点,在实际中通常设为1/9

  • d = t i − t i ∗ d=t_i-t_i^* d=titi


  • 如果所有样本的 d d d大于 δ \delta δ,具有相同的梯度密度。这使得如果依赖梯度范数区分不同属性的例子变得不可能。一个可以替代的选择是直接使用|d|作为不同属性的度量,但新的问题是|d|在理论上可以达到无穷大,不能实现单位区域近似。

  • 将传统的SL1损失修改为更简洁的形式。当d很小的时候,近似二次函数,当d很大的时候近似线性

  • μ \mu μ设置为0.02

  • GHM-R损失可以通过增加简单样本的重要部分的权重和降低异常值的权重来协调简单样本和困难样本对box回归的贡献




实验

采用RetinaNet+ResNet+FPN作为网络架构






http://www.ppmy.cn/news/499650.html

相关文章

< Linux >:Linux 进程概念 (2)

目录 3.5、查看进程 3.6、通过系统调用接口获取时实进程的标识符 3.7、通过系统调用接口创建子进程 - fork 初识 3.5、查看进程 [HJMhjmlcc ~]$ clear [HJMhjmlcc ~]$ pwd /home/HJM [HJMhjmlcc ~]$ ls [HJMhjmlcc ~]$ touch mytest.c [HJMhjmlcc ~]$ ls mytest.c [HJMhjml…

< Linux >:shell命令初步认识,Linux权限

目录 1、Shell命令以及运行原理 2、Linux权限的概念 3、Linux权限管理 3.1、文件访问者的分类(人) 3.2、文件类型和文件权限属性(事物属性) 3.3、粘滞位 4、file指令 1、Shell命令以及运行原理 Linux严格意义上说的是一个操作系统&#xff0c;我们称之为" 核心(ker…

< Linux >:Linux 环境基础开发工具使用 (3)

目录 一、Linux 调试器 - gdb 的使用 1.1、背景 1.2、开始使用 1.3、理解 二、Linux项目自动化构建工具 - make与Makefile(makefile) 2.1、背景 2.2、项目结构 三、Linux 系统中第一个小程序&#xff0d;倒计时 四、Linux 系统中第二个小程序&#xff0d;进度条 一、L…

低版本Docker升级高版本Docker【详细教程、成功避坑】

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

Gorm many2many关系中如何使用预加载查询

Gorm many2many关系中如何使用预加载查询 gorm中&#xff0c;若两个实体A、B之间关系为m:n。如果查询A时候需要Preload(B)&#xff0c;那么db查询之前需要设置 db.SetupJoinTable()。 例子&#xff1a; Person : Address m : n。 type Person struct {ID int …

深度学习实例分割篇——Mask RCNN原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

电脑推荐-暂时就写这么多

注: 游戏本不是意味专门用于打游戏, 而是说电脑的配置很好, 性能强劲, 自然玩游戏不在话下, 同时得益于其强大的配置, 也能流畅运行各领域的专业软件, 如CAD, 3dsMax 等, 完全可以做为主要生产力工具. 而轻薄本(全能本)的主要特点是便携, 不像游戏本那样很重, 所以会牺牲掉一些…

计算机网络技术自谋职业,过去认知或许都是错的 主编告诉你游戏PC该怎么选

每一年随着CPU、GPU的升级&#xff0c;各家厂商就会对旗下的游戏型PC进行更新&#xff0c;而在选购上的建议则是崇尚买新不买旧&#xff0c;毕竟新品在性能上肯定比老品来的强&#xff0c;而且大家选购游戏型PC的核心要素是获得良好的游戏体验&#xff0c;性能越高自然更容易满…