前言
在目标检测算法中,我们会经常遇到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)=−α(1−pt)γ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 Loss
和OHEM
(采样正负样本)的区别?
二. 总结
定义:
Focal Loss
的关键思想是引入一个可调参数,它用于减小易分类样本的权重,并使模型更加关注困难样本。OHEM(Online Hard Example Mining)
是一种用于解决类别不平衡问题的训练策略。OHEM
通过在每个训练迭代中选择一小部分难例样本,将它们添加到训练集中,从而提高模型对困难样本的学习能力。区别:文章来源:https://www.toymoban.com/news/detail-491039.html
Focal Loss
是一种损失函数,而OHEM
是一种训练策略。Focal Loss
主要用于减轻简单样本对训练的影响,提高模型对困难样本的学习能力。而OHEM
主要通过挖掘难例样本来增强模型的学习能力。
以上就是关于Focal Loss的介绍,如有错误,敬请指正!文章来源地址https://www.toymoban.com/news/detail-491039.html
到了这里,关于Focal Loss介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!