开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情
我们首先了解一点,机器都是通过降低loss来达到最终的拟合。那么如果故意增大某一个loss的权重,就会使机器偏向于学习这部分的特征以降低这部分loss,最终提高了机器的在这方面的性能。
一、控制难易样本对loss的贡献
图1 绘制不同γ下的FL损失函数。横坐标为目标的预测概率pt,纵坐标为损失值。
当时,FL=CE为二分类交叉熵损失函数。当前面加上了调制系数,我们就可以通过这个系数来控制难易样本对loss的贡献程度:
当目标预测概率为时(),我们可以说这是一个易区分的样本,得知非常接近于0,FL的结果是非常接近0的,降低易区分样本的损失值。
当目标预测概率为时,我们可以说这是一个难区分的样本,得知非常接近于1,FL的结果是接近无限大的,增加难区分样本的损失值。
通过设计Focal Loss,降低易区分样本对loss的贡献,加大难区分样本对loss的贡献,最终使网络更加关注那些难区分的样本,从而提高网络的预测能力。
二、控制正负样本对loss的贡献
目标检测中往往负样本的数量远远大于正样本,这会导致网络将大部分的精力财力耗在了大量的负样本上,对最终的检测效果将是不利的,因此我们可以想到降低负样本对loss的贡献,增大正样本对loss的贡献,使网络对正负样本的关注度做一个权衡。
于是FL前又添加了一个权重因子控制正负样本对loss的贡献:
正样本,,一般取0.75。
负样本,,则为0.25。