【极简笔记】Focal Loss

【极简笔记】Focal Loss

Focal Loss for Dense Object Detection

文章的核心就是提出了focal loss用来取代原有的cross entropy loss

pt={p,1p,if y=1otherwise p t = { p , if  y = 1 1 − p , otherwise

CE(pt)=log(pt) C E ( p t ) = − log ⁡ ( p t )

FL(pt)=(1pt)γlog(pt) F L ( p t ) = − ( 1 − p t ) γ log ⁡ ( p t )

【极简笔记】Focal Loss_第1张图片
focal loss中 γ γ 是可调参数,实验中取 γ=2 γ = 2 最优。作者同样尝试加上 α α balance效果的loss function FL(pt)=α(1pt)γlog(pt) F L ( p t ) = − α ( 1 − p t ) γ log ⁡ ( p t ) ,当 γ=2,α=0.25 γ = 2 , α = 0.25 效果最好。作者同样试验了多种类似focal loss的函数均取得相似效果(Hinge loss不稳定不行)
【极简笔记】Focal Loss_第2张图片

用focal loss是为了解决检测正负样本比例不均衡的问题。比例不均衡导致(1)在大部分区域都是easy negatives导致训练不高效(2)easy negative数量太多,累积的loss主导了训练引起模型退化。focal loss通过大幅降低easy sample 权重,小幅降低hard sample权重(这点可以从公式中理解出来)从而增强两者对比使得hard sample loss能够主导训练误差。和Online Hard Example Mining(OHEM)区别是OHEM完全放弃了easy sample,FL还是保留了的,而且训练更加高效。

【极简笔记】Focal Loss_第3张图片
作者为了试验focal loss用了one-stage model RetinaNet和state-of-art进行了对比,获得曲线是现有结果的envelope。以及在RetinaNet网络初始化时候用了点trick(对CE和FL效果都好)。比如在二分类问题中常常设 y=±1 y = ± 1 ,出现频率高的一方的loss会主导总误差,在训练初期导致不稳定,因此想法是把频率高的一方设一个小的先验,例如 π=0.01 π = 0.01 ,这能够增强训练稳定性(与loss function无关)。文中还有一句:Results are insensitive to the exact value of π π so we use π=.01 π = .01 for all experiments.
【极简笔记】Focal Loss_第4张图片

你可能感兴趣的:(极简笔记)