Focal Loss是用于解决目标检测任务中,正负样本不平衡的问题
个人认为这篇博文讲的比较清楚,但是缺少对所谓的“难例样本”的说明,所以pull一些细节
在目标检测任务中,样本不均衡问题主要体现在两个方面:正负样本不均衡及难易样本不均衡
正负样本:正样本指的就是我们需要的目标区域,也就是前景;负样本是我们不需要的非目标区域,也就是背景。一般在目标检测任务框架中,保持正负样本的比例为1:3(经验值)。
难易样本:每个bbox都是有IoU的,IoU趋近于两个极端的bbox就是易分样本,通俗来说就是模型对这个bbox中是否存在目标非常自信,这部分样本在实际中占绝大多数,对loss的贡献非常小。而IoU趋近于阈值的bbox就是难分样本,包括容易被错分为负样本的正样本(难分正样本)以及容易被错分为正样本的负样本(难分负样本),难分样本对loss的贡献较大,但数量在实际中较少。
如果采用常规的CEloss,就会导致loss被数量占大多数的易分样本主导。
于是Focal Loss就出来了,用一个平衡因子
α
t
α_t
αt,在计算loss时,平衡正负样本的比例不均(区别于fast-rcnn用IoU来实现调整正负样本的比例)。公式如下
p
t
p_t
pt对应的公式如下,
y
y
y为GT,其实为{-1,1},
p
p
p为待分类实例属于正例的概率(应该就是模型给出的置信度)
α
t
α_t
αt用于平衡正负样本本身的比例不均,
(
1
−
p
t
)
γ
(1-p_t)^γ
(1−pt)γ用于平衡难易样本比例不均。
γ
γ
γ是一个超参数,用于调节平衡的程度,当
γ
γ
γ为0时,便是CELoss。那么来分析一下易分样本对应的
p
t
p_t
pt情况。对于易分正样本,也就是模型非常确信,这就是正样本,那么
p
t
p_t
pt就会趋近于1,此时
(
1
−
p
t
)
γ
(1-p_t)^γ
(1−pt)γ趋近于0,整体loss趋近于0,对Loss不产生太多影响;对于易分负样本,也就是模型非常确信这就是负样本,那么
p
p
p就会趋近于0,
p
t
p_t
pt会趋近于1,后续同上理。
对于难分样本,p就会处在[0,1]的中间区域,整体的loss数值就会比较大,具体的差异可以代数值看看结果,可以看看B站这个视频的展示
这个结论在论文中也提到了,对于易分样本的loss,相较于CELoss,缩小了大约100倍。
Focal Loss论文中也对超参数
γ
γ
γ和
α
α
α的取值进行了实验,结果如下。