Focal Loss介绍

目录

  • 前言
  • 一. Focal Loss
  • 二. 总结

前言

  在目标检测算法中,我们会经常遇到Focal Loss这个东西,今天我们就来简单的分下下这个损失。

一. Focal Loss

  在深度学习训练的时候,在遇到目标类别不平衡时,如果直接计算损失函数,那么最终计算的结果可能会偏向于常见类别,低召回率,模型过拟合等问题。为了应对这个问题,于是引出了Focal Loss。具体来说,Focal Loss引入了一个可调参数 γ \gamma γ,用于调整易分类样本和困难样本之间的权重关系。当 γ \gamma γ的值较低时,模型更加关注易分类样本,而当 γ \gamma γ的值较高时,模型更加关注困难样本。Focal Loss的定义如下:
F L ( p t ) = − α ( 1 − p t ) γ log ⁡ ( p t ) FL(p_t) = -\alpha(1 - p_t)^\gamma \log(p_t) FL(pt)=α(1pt)γlog(pt)

  在目标检测中,Focal Loss通常用于one-stage的算法中,因为two-stage的算法第一阶段已经筛选过一次了,第二阶段候选框不会造成正负样本的严重失衡。举个例子,在一张图片中,目标通常是比较少的,通常最对也就几十个,但是在使用候选框选取的时候,我们设置的候选框的数量时比较多的,通常都是几万个,如果我们给每个目标贡献的损失设置为10,目标的损失也不过几百,剩下候选框设置贡献的损失为0.1,背景的损失也将达到几千,那么就会导致网络非常关注非目标,也就是背景,从而导致检测效果非常差。
  简答总结一句话Focal Loss的作用,其实就是给网络设置个超参数,让网络自己学习正负样本的权重系数,使得网络能够平衡的关注目标和背景,从而不偏袒一方。
看个例子:其中p表示预测概率,y表示真实标签,CE 表示普通的交叉熵损失,FL表示Focal Loss,计算是以 γ = 2 , α = 0.5 \gamma=2, \alpha=0.5 γ=2,α=0.5计算的。

p y CE FL CE/FL
0.9 1 0.105 0.00026 400
0.968 1 0.033 0.000008 3906
0.1 0 0.105 0.00079 133
0.032 0 0.033 0.000025 1302
0.1 1 2.3 0.466 4.9
0.9 0 2.3 1.4 1.6

  通过上面的例子可以看出,对于易分样本,Focal Loss能够显著降低他的权重比例,对于难分样本会有稍微降低。在使用的时候Focal Loss易受噪音的干扰。
这里提个问题:Focal LossOHEM(采样正负样本)的区别?

二. 总结

定义:

  • Focal Loss的关键思想是引入一个可调参数,它用于减小易分类样本的权重,并使模型更加关注困难样本。
  • OHEM(Online Hard Example Mining)是一种用于解决类别不平衡问题的训练策略。OHEM通过在每个训练迭代中选择一小部分难例样本,将它们添加到训练集中,从而提高模型对困难样本的学习能力。

区别:

  • Focal Loss是一种损失函数,而OHEM是一种训练策略。
  • Focal Loss主要用于减轻简单样本对训练的影响,提高模型对困难样本的学习能力。而OHEM主要通过挖掘难例样本来增强模型的学习能力。

以上就是关于Focal Loss的介绍,如有错误,敬请指正!

你可能感兴趣的:(目标检测,计算机视觉,目标检测)