如何通过Focal loss解决目标检测中样本不平衡问题

一般one stage目标检测模型存在正负样本数量不均衡问题,基于此Focal Loss for Dense Object Detection一文提出Focal loss计算方法用于解决正负样本不平衡问题。

一句话总结:根据置信度结果动态调整交叉熵损失解决类别不平衡问题(当预测正确的置信度增加时,loss的权重系数会逐渐衰减至0,这样模型训练的loss更关注难例,而大量容易的例子其loss贡献很低)

损失函数形式

首先回顾二分类交叉熵损失:

普通的交叉熵损失对于负样本而言,在输出概率较小时,损失还不够小(同理对于正样本而言,在输出概率较大时,损失也还不够小)。这样的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。

Focal loss对此做了改进,其损失函数如下

如何通过Focal loss解决目标检测中样本不平衡问题_第1张图片

(1)在原有的基础上加了一个gamma因子,用于解决难易样本不平衡问题,其中gamma>0使得易分类样本的损失进一步降低,让模型训练更关注于困难的、错分的样本。(例如gamma为2,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。)

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

(3)只添加alpha虽然可以平衡正负样本的重要性,但是无法解决简单与困难样本的问题

(4)gamma调节简单样本损失降低的速率,当gamma为0时即为交叉熵损失函数,当gamma增加时,调整因子的影响也在增加。实验发现gamma为2是最优。

(5)模型的专注度:正难 > 负难 > 正易 > 负易。

如何通过Focal loss解决目标检测中样本不平衡问题_第2张图片

参考链接:https://zhuanlan.zhihu.com/p/80594704       https://www.cnblogs.com/king-lps/p/9497836.html

你可能感兴趣的:(深度学习相关博文,Focal,loss,类别不平衡)