Focal Loss
背景
- one-stage目标检测任务中存在正负样本严重不均衡和难易样本不均衡的问题
- 实际情况下,易分样本占比高,他们产生的损失会主导模型的损失。而很多情况下,难分样本的区分也同样非常重要。当易分样本或头部样本的损失占主导时,模型参数的更新很难对难分样本或尾部样本具有很好的泛化能力。
解决思路
正常的交叉熵损失
C E L o s s = { − l o g ( p ) y = 1 − l o g ( 1 − p ) y = 0 CE Loss = \left\{ \begin{aligned} -log(p) && y = 1 \\ -log(1-p) && y=0 \end{aligned} \right. CELoss={−log(p)−log(1−p)y=1y=0
Focal Loss
F o c a l L o s s = { − α ( 1 − p ) γ l o g ( p ) y = 1 − ( 1 − α ) p γ l o g ( 1 − p ) y = 0 FocalLoss=\left\{ \begin{aligned} -\alpha(1-p)^{\gamma}log(p) && y = 1 \\ -(1-\alpha)p^{\gamma}log(1-p) && y=0 \end{aligned} \right. FocalLoss={−α(1−p)γlog(p)−(1−α)pγlog(1−p)y=1y=0
式子中 α \alpha α为权重因子, p p p为置信度, γ \gamma γ为缩放系数, y = 1 y=1 y=1代表正类, y = 0 y=0 y=0代表负类。
- α \alpha α用于平衡类别数量的不平衡
- γ \gamma γ用于降低易分样本的损失,一般设置为大于1的数(如2,当预测为正样本的置信度为0.9,那么 1 − p = 0.1 1-p=0.1 1−p=0.1,那么 ( 1 − p ) γ = 0. 1 2 = 0.01 (1-p)^{\gamma}=0.1^2=0.01 (1−p)γ=0.12=0.01,缩小了十倍,置信度越高,缩小的越多,从而平衡难易样本)