FocalLoss
FocalLoss是对分类交叉熵损失函数的优化
为什么能做难负样本挖掘呢?
γ>0,会减少相对于好区分样本(就是负样本,也就是背景比较多的样本)的损失,而将重心转移到难区分的,而且比较容易误分类的样本(也就是正样本:背景不会占太多,或者叫难负样本:难区分的负样本,一般数据集中它们的数量少)上面来。下面来具体理解下。
当预测概率值在0.6-1之间时,不管是预测物体还是背景,置信度比较高,也就是容易区分样本(远远大于0.5当然可信了)。当概率在0.5左右时,就比如特殊一点0.5吧,一半的概率是物体,一半的概率是背景(可能得到的那个锚框中一半是物体一半是背景,所以得到的概率是接近0.5)。实际情况中,负样本是偏多的,比如现有10000个样本,3个正样本,9997个负样本(比如预测一张图:包含元素是草地和狗狗,要从中框出草地上的狗,可能有9000个框里面都是草地,直接就预测为背景了,loss也随之小点)。
为什么focal loss有用?
因为预测概率趋近于1时loss下降的更狠(论文中紫色线),比如对0.8-1之间loss下降了2000倍(从蓝线降到紫线降得比较多),而0.5左右时,loss下降了20倍(从蓝线降到紫线降得比较少),(此处的倍数仅是为了说明问题的假设)也就是正样本的loss下降速度远远小于负样本loss速度,这样,loss就会更多关注正样本,而不会因为正样本数量少,而在梯度下降时忽略掉它。
实验下来,γ=2最好。
但是加了(1-p)的γ次方这个因子后,负样本的loss降的强度太大,所以考虑在前面又加了一个系数α,来削减这个强度,实验下来取0.25最优。