1、Facal Loss
解决one-stage目标检测中正负样本不平衡
什么是正负样本不平衡?
- 在一张图像中能够匹配到目标的候选框个数一般只有十几个或几十个,而没有匹配到候选框的则有10000~10000个。
- 这么多负样本不仅对训练网络起不到什么作用,反而会淹没掉少量有助于训练的样本
为什么是解决一阶段目标检测器,那为什么二阶段不用解决呢?
- 因为二阶段分了两步
- 第一步:会生成许多的负样本以及很少的正样本
- 但在第二步:会在第一步的基础上选取特定数量的正负样本去检测,所以正负样本并不会特别不平衡
1.1 对于交叉熵:
其中m为正样本个数,n为负样本个数,N为样本总数,m+n=N
当样本分布失衡时,在损失函数L的分布也会发生倾斜,如m<<n时,负样本就会在损失函数占据主导地位。由于损失函数的倾斜,模型训练过程中会倾向于样本多的类别,造成模型对少样本类别的性能较差。
1.2 平衡交叉熵函数balanced cross entropy
- 添加权重因子,提高少数类别在损失函数中的权重,平衡损失函数的分布
解决了正负样本不平衡的问题,但没有区分是易分还是难分样本。当负样本超级多时,整个训练过程将会围绕易区分负样本进行,进而淹没正样本,造成大损失。
易分辩样本:分类置信度接近 1 或接近 0的样本。也就是我们有把握确认属性的样本。难分辨样本:其余的称之为难分辨样本。没有把握确认属性的样本称之为难分辨样本。
1.3 Focal Loss
- 添加调制因子,用来聚焦难分样本。
pt反应了分类的难易程度
- pt越大,说明分类置信度越高,代表样本越易区分
- pt越小,说明分类置信度越低,代表样本越难区分
Focal Loss增加了难区分样本在损失函数中的权重,使得损失函数倾向于难分样本,有助于提高难分样本的准确率
- 对于分类准确的样本→1,趋近于0
- 对于分类不准确的样本1-→1,趋近于1
- 对于分类不准确的样本,损失没有改变;对于分类准确的样本,损失会变小