企业网站维护工作内容如何在百度上发广告
目录
- 前言
- 一. 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)=−α(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
通过在每个训练迭代中选择一小部分难例样本,将它们添加到训练集中,从而提高模型对困难样本的学习能力。区别:
Focal Loss
是一种损失函数,而OHEM
是一种训练策略。Focal Loss
主要用于减轻简单样本对训练的影响,提高模型对困难样本的学习能力。而OHEM
主要通过挖掘难例样本来增强模型的学习能力。
以上就是关于Focal Loss的介绍,如有错误,敬请指正!