16. 必会--Focal Loss

99 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

Focal Loss 原论文链接

我们首先了解一点,机器都是通过降低loss来达到最终的拟合。那么如果故意增大某一个loss的权重,就会使机器偏向于学习这部分的特征以降低这部分loss,最终提高了机器的在这方面的性能。

一、控制难易样本对loss的贡献

图片.png

图1 绘制不同γ下的FL损失函数。横坐标为目标的预测概率pt,纵坐标为损失值。

γ=0\gamma=0时,FL=CE为二分类交叉熵损失函数。当前面加上了调制系数(1pt)γ(1-p_t)^\gamma,我们就可以通过这个系数来控制难易样本对loss的贡献程度:

当目标预测概率为pt=0.9p_t=0.9时(pt[0,1]p_t∈[0,1]),我们可以说这是一个易区分的样本,得知(1pt)γ(1-p_t)^\gamma非常接近于0,FL的结果是非常接近0的,降低易区分样本的损失值。

当目标预测概率为pt=0.1p_t=0.1时,我们可以说这是一个难区分的样本,得知(1pt)γ(1-p_t)^\gamma非常接近于1,FL的结果是接近无限大的,增加难区分样本的损失值。

通过设计Focal Loss,降低易区分样本对loss的贡献,加大难区分样本对loss的贡献,最终使网络更加关注那些难区分的样本,从而提高网络的预测能力。

二、控制正负样本对loss的贡献

目标检测中往往负样本的数量远远大于正样本,这会导致网络将大部分的精力财力耗在了大量的负样本上,对最终的检测效果将是不利的,因此我们可以想到降低负样本对loss的贡献,增大正样本对loss的贡献,使网络对正负样本的关注度做一个权衡。

于是FL前又添加了一个权重因子αt\alpha_t控制正负样本对loss的贡献:

FL(pt)=αt(1pt)γlog(pt)FL(p_t)=-\alpha_t(1-p_t)^\gamma log(p_t) αt[0,1]\alpha_t∈[0,1]

正样本,αt=α\alpha_t=\alpha,一般取0.75。

负样本,αt=1α\alpha_t=1-\alpha,则为0.25。