cross-entropy for one-stage detecor

来源:互联网 发布:网络语言6的意思 编辑:程序博客网 时间:2024/06/18 11:12

cross-entropy for one-stage detecor


将讲述三种cross-entropy,分别为standard cross-entropy、 balanced cross-entropy、focal loss。


standard cross-entropy


standard cross-entropy认为各个训练样本的权重是一样的,若用p_t表示样本属于true class的概率,则:

standard_CE = -log(p_t)


下图中,蓝色曲线就表示standard_CE.可以看出,对于well-classified样本(预测正确率大于0.6),他们的loss仍然不小,对于yolo/ssd这类one-stage detector,负样本远远多于正样本,而负样本里面绝大多数又是easy example(即容易分类正确的样本)。因此,相比hard example(较难分类正确的样本),easy example的loss在整个代价函数中具有主导作用,从而使得one-stage detector难以对hard example分类正确。


CSDN图标

balanced cross-entropy


由于one-stage detecor训练时正负样本数目相差较大,常见的做法就是给正负样本加上权重,给数量较少的正样本的loss更大的权重,减小负样本loss的权重。

balanced_CE = -α_t*log(p_t)
其中,α_t为样本loss的权重

focal loss


提出这种方法的作者【FAIR. ICCV2017 Oral Kaiming He & RBG】发现,one-stage detector的精度差的原因并不在于正负样本数量相差较大,而在于:
正负样本比例极度不平衡,以及损失函数(loss function)主要被easy negative example(容易分类正确的负样本)主导。
利用focal loss训练出的one-stage detector不仅能保持快速的优点,精确度也可以达到与two-stage detector一样的水平。


focal loss依照各个样本分类的分类难度来给定权重,如果某样本的分类正确率较大(easy example),则赋予较小的权重,相反,若某样本的分类难度较大(hard example),则赋予较大的权重。(类似adaboost:增大分类错误样本的采样概率,减小分类正确样本的采样概率)

FL=−(1−p_t)^γ * log(p_t)


由上式可以看出,预测正确率p_t越大,对应的loss越小。当γ=0时,即为standard cross-entropy。


实验发现γ=2时效果最好。当γ一定时,具有同样预测准确率p_t的 easy example,其 focal loss要比standard cross-entropy小100多倍,对于同样预测准确率p_t的hard example,其focal loss比standard cross-entropy最多小4倍,因此,hard example的权重就大大提高。

原创粉丝点击