目录
一、整体总结
主要是针对类别不平衡设计了初始化和loss函数。
初始时将rare类的prior设置的比较低。
引入了alpha和gamma参数,分别用于平衡正负例和难易例。
设计了RetinaNet检测器来考察以上设置效果。
二、Focal loss原理及推导
1. 多类别交叉熵
给定两个概率分布:p(理想结果即正确标签向量)和q(神经网络输出结果即经过softmax转换后的结果向量),则通过q来表示p的交叉熵为:
H ( p , q ) = − ∑ x p ( x ) l o g q ( x ) H(p,q)=−∑_xp(x)logq(x) H(p,q)=−x∑p(x)logq(x)
注意:既然p和q都是一种概率分布,那么对于任意的x,应该属于[0,1]并且所有概率和为1
∀ x , p ( X = x ) ∈ [ 0 , 1 ] 且 ∑ x p ( X = x ) = 1 ∀x,p(X=x)\in[0,1]且∑_xp(X=x)=1 ∀x,p(X=x)∈[0,1]且x∑p(X=x)=1
交叉熵刻画的是通过概率分布q来表达概率分布p的困难程度,其中p是正确答案,q是预测值,也就是交叉熵值越小,两个概率分布越接近。
2. focal loss推导
在本篇论文中,所用的交叉熵公式是二分类的交叉熵,可以类比着上一节的多类别交叉熵进行查看。
C E ( p , y ) = { − l o g ( p ) y = 1 − l o g ( 1 − p ) o t h e r w i s e . CE(p, y)= \begin{cases} −log(p) & y =1\\ −log(1 − p) & otherwise. \end{cases} CE(p,y)={
−log(p)−log(1−p)y=1otherwise.
其中 y ∈ { ± 1 } y \in\{±1\} y∈{
±1}代表正确类别, p ∈ [ 0 , 1 ] p \in [0, 1] p∈[0,1]代表着模型预测出的y=1的概率。
为了公式的简洁,做如下定义。
p t = { p y = 1 1 − p o t h e r w i s e . p_t =\begin{cases} p& y =1\\ 1-p & otherwise. \end{cases} pt