Focal Loss for Dense Object Detection 是ICCV2017的Best student paper,文章思路很简单但非常具有开拓性意义,效果也非常令人称赞。
GHM(gradient harmonizing mechanism) 发表于 “Gradient Harmonized Single-stage Detector",AAAI2019,是基于Focal loss的改进,也是个人推荐的一篇深度学习必读文章。
1、Focal Loss
Focal Loss的引入主要是为了解决难易样本数量不平衡(注意,区别于正负样本数量不平衡)的问题,实际可以使用的范围非常广泛,为了方便解释,还是拿目标检测的应用场景来说明:
单阶段的目标检测器通常会产生高达100k的候选目标,只有极少数是正样本,正负样本数量非常不平衡。我们在计算分类的时候常用的损失——交叉熵的公式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/fb49b6d507979e06c4e81d4dfb3526be.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0432bcacec7bc8725d00b733b826ce94.png)
尽管权重系数平衡了正负样本,但对难易样本的不平衡没有任何帮助。而实际上,目标检测中大量的候选目标都是易分样本。由于数量极不平衡,易分样本的数量相对来讲太多,最终主导了总的损失。而本文的作者认为,易分样本(即,置信度高的样本)对模型的提升效果非常小,模型应该主要关注与那些难分样本(这个假设是有问题的,是GHM的主要改进对象)
这时候,Focal Loss就上场了!
一个简单的思想:把高置信度§样本的损失再降低一些不就好了吗!
![](https://i-blog.csdnimg.cn/blog_migrate/42fef9f0b9636b042cdcc794074b5710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5e4d80667b492c00ab87eb2dcb25fd9f.png)
这样以来,训练过程关注对象的排序为正难>负难>正易>负易。
2、GHM
那么,Focal Loss存在什么问题呢?
首先,让模型过多关注那些特别难分的样本肯定是存在问题的,样本中有离群点(outliers),可能模型已经收敛了但是这些离群点还是会被判断错误,让模型去关注这样的样本,怎么可能是最好的呢?这个思想倒是类似于RANSAC对最小二乘的改进。
其次, 两个权重系数的取值全凭实验得出,且权重afa 和 权重gama要联合起来一起实验才行。
GHM(gradient harmonizing mechanism) 解决了上述两个问题。
![](https://i-blog.csdnimg.cn/blog_migrate/edf365d456fff4e0444ec85c642f2080.png)
![](https://i-blog.csdnimg.cn/blog_migrate/43ec5e4bad1beef6de0a9a6a7b3b6fb1.png)
说白了就是在概率梯度的两端,较为难分的样本和较为易分的样本会集中;这个时候以梯度的倒数作为惩罚系数,可以很好的平衡计算样本带来的负面效应。
因此作者引入梯度密度的概念,并在此基础上使用梯度系数的倒数作为惩罚权重,使得模型更为关注中间区域的易分对象,对极端容易分辨的和极端难以分辨的予以忽视。