返回

Focal Loss通用化,论文一览

人工智能

Focal Loss,一个有着简洁明了的名称的目标检测优化算法,在2017年由何凯明、Ross Girshick和Piotr Dollár三人联手发表论文《Focal Loss for Dense Object Detection》时,迅速吸引了业界目光。这款算法,从改进检测目标角度入手,专攻二分类交叉熵计算过程中的困难样本分配问题,确实取得了不俗的成果。

但在这个过程中,也发现了一些Focal Loss的不足之处:

  1. 算法太过直接,容易忽略掉大量的部分匹配样本。
  2. Focal Loss在目标不平衡问题上的处理效果有限。

正是针对以上这两个问题,韩国高丽大学的学者提出了一款通用化的Focal Loss——Generalized Focal Loss,经过实验验证,Generalized Focal Loss的优化性能,确实优于原版Focal Loss。

重新思考Focal Loss

在了解Generalized Focal Loss之前,我们必须先了解Focal Loss的设计思想,因为它也是Generalized Focal Loss的基础:

  1. Focal Loss只关心难分样本,对于容易分类的样本,我们并不需要花费过多的精力。
  2. 由于Focal Loss可以将困难样本的梯度提升到一个更高的水平,所以这也会导致模型更容易过拟合。为了解决这个问题,就需要同时降低容易样本的损失值,让模型更专注于难分样本。
  3. 使用gamma作为超参数,去控制难分样本的损失值和容易样本的损失值之间的差距。

Generalized Focal Loss算法原理

Generalized Focal Loss可以看做是Focal Loss的升级版本,它同样基于原有论文的思想,采用迭代构造的方式,进而构建了一个Generalized Focal Loss的公式。

这里需要强调的一点是,虽然原论文中确实提到了gamma控制着难分样本与容易样本损失值的差距,但实际上,这个超参数与简单、困难样本比例也有很大的关联,因此,想要调节Focal Loss的性能,需要同时从alphagamma两个方面入手,并制定一个迭代公式。

迭代公式:

alpha_t = (1 - p_t) ^ gamma_t

其中,alpha表示超参数,p_t代表着样本被正确分类的概率,gamma_t代表的是一个可调整参数。

最终,Generalized Focal Loss的损失函数就变成了:

FL(p_t) = -(alpha_t * (1 - p_t) ^ gamma_t) * log(p_t)

通过这样一个迭代的公式,可以让模型对样本的分类难度和不平衡问题都有更强的鲁棒性。

算法实验

通过大量的数据和模型,最终实验结果证明,Generalized Focal Loss的确可以给检测算法带来全面的提升,而且确实有效的解决了Focal Loss原版中存在的不足之处,未来,Generalized Focal Loss很可能会成为深度学习和目标检测算法中的新宠,也希望大家能够对这款算法给予足够的重视和关注。