??在Yolo等目标检测框架中,很容易会出现正样本中难分样本以及易分样本不均衡的情况,focal loss正是为了解决这个问题而提出来的。 ??提高focal loss就不的不提交叉熵损失函数,交叉熵函数定义如下: ??式中,y可以取+1以及-1,就是预测正确还是错误,当y取1时,这时候我们看p的值,由于前面有一个负号,很显然当p为0.9的时候的损失函数的值显然小于p为0.6时候的损失函数的值。 这是,我们进行一下置换: ??那么上式,就会合并成一个式子: ??这时候,我们考虑本文一开始的问题,就是正样本中难分样本与易分样本不均衡的问题。所谓难分样本以及易分样本,就是说在我们模型输出结果是正样本之后,这时候我们看预测出来的Pt,举例说,现在设定一个阈值0.6,当预测出来的正样本概率是0.8,我们称之为易分样本,当预测出来的正样本概率为0.4,我们称之为难分样本。虽然在损失函数中-log(0.4)大于-log(0.8),但是由于网络模型训练中,易分样本占据很大的比例,所以整体上看,损失函数一直由易分样本主导。但是如果我们在损失函数前面加上一个系数。见下图: ??上图中加上(1-Pt)^y的话,假设y=2,以上面的例子,当Pt为0.8的时候,损失函数的值为-log(0.8)x (1-0.8)平方,当Pt为0.4 的时候, 损失函数的值为-log(0.4)x(1-0.4)平方,可以看出难分样本的损失函数值将是易分样本损失函数值的十几倍。因此,我们说focal loss 的提出将会大大改善模型训练过程中难分样本以及易分样本数据不均衡的情况!
|