[损失函数]Focal loss

Focal loss

论文:https://arxiv.org/abs/1708.02002 (Focal Loss for Dense Object Detection)

why do we need focal loss?

在很久之前的目标检测方法中,物体检测实际上被认为是一个非常难解决的问题,尤其是图像中小尺寸物体的检测。如下面的例子所示,模型无法检测到摩托车,这是因为摩托车相对与图像中的其他待检测物体具有较小的尺寸。
在这里插入图片描述
上图中摩托车没有被检测出来的原因是该检测模型使用了BCE 损失函数来训练模型,这要求模型对预测的结果有很强的信心。然而,focal loss所做的是,它使模型更容易预测事情,而不是80% -100%确定这个物体是“某物”。简而言之,就是给模型更多的自由,让它在做预测时承担一些风险。这在处理高度不平衡的数据集时尤其重要,因为在某些情况下(如癌症检测),我们确实需要建模来承担风险并预测某些事情,即使预测结果是假阳性。

因此,在类别不平衡的情况下,focal loss是特别有用的。另一个例子是,在目标检测的情况下,大多数像素通常是背景,只有很少的像素在图像中有时有感兴趣的目标, 这也是一种类别不平衡的情况。

How did facal loss work?

在这里插入图片描述
上图展示了focal loss和cross entropy loss的比较(y轴显示的是正样本的loss,负样本时把pt看成1-pt就好了). log以e为底。
cross entropy loss − ∑ c = 1 M y o , c log ⁡ ( p o , c ) -\sum_{c=1}^{M} y_{o, c} \log \left(p_{o, c}\right) c=1Myo,clog(po,c)y - binary indicator (0 or 1) if class label c is the correct classification for observation o

从图中可以看出,当模型以0.6的概率预测ground truth时,交叉熵损失仍然在0.5左右。因此,为了减少损失,模型必须以更高的概率预测ground truth标签。换句话说,交叉熵损失要求模型对ground truth的预测非常有信心。这样的loss可能会损伤模型的泛化性能。

The Deep Learning model can actually become overconfident and therefore, the model wouldn’t generalize well.

focal loss: F L ( p t ) = − α t ( 1 − p t ) γ log ⁡ ( p t ) \mathrm{FL}\left(p_{\mathrm{t}}\right)=-\alpha_{\mathrm{t}}\left(1-p_{\mathrm{t}}\right)^{\gamma} \log \left(p_{\mathrm{t}}\right) FL(pt)=αt(1pt)γlog(pt)
首先在原有的基础上加了一个因子,其中 γ \gamma γ>0使得减少易分类样本的损失。使得更关注于困难的、错分的样本。

例如 γ \gamma γ为2,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。

此外,加入平衡因子alpha,用来平衡正负样本本身的比例不均:文中alpha取0.25,即正样本要比负样本占比小,这是因为负例易分。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值