您的位置:首页 > 其它

Focal Loss 函数用于密集对象检测

2018-02-22 00:22 344 查看
为了达到这个目的,我们把训练阶段的类别不平衡性视为一阶目标检测系统精度的瓶颈,并提出了了解决这个瓶颈的全新的损失函数。在此基础上,我们设计了一个名为RetinaNet的一阶目标检测模型。Focal Loss
2.1 Cross entropy
  二分类问题中loss的定义如下:

  上式中

代表样本属于1的概率。y代表标签。为了表示方便,我们定义

如下:

  CE loss 如下图中的蓝色曲线所示,这个loss的一个显著特征是,即使是很容易的分类情况下,也会产生较大的loss。当把这些大量的loss加起来的时候,将会产生较大的影响。


2.2 Balanced Cross Entropy

  常用的解决类别不平衡的方法是引入一个额外的参数



用来设置为相反类别的概率或者作为交叉验证的一个超参数。为了表示方便,我们重写了带

参数的CE loss:


2.3 Focal Loss Definition

  正如实验所示,在密集目标检测系统中,训练过程中,遇到的类别失衡将会对交叉熵损失函数产生较大影响。容易分类的负样本将会占据主要的损失以及梯度。尽管

平衡了正负样本的重要性,但是无法对 容易分类的样本和难以分类的样本产生影响。因此我们提出了一种全新的loss function(focal loss),以此来降低 容易分类样本的重要性,从而把训练集中在难以分类的负样本上。 Focal loss 的形式如下:

  Focal loss 在 cross entropy 的基础上增加了一个调节因子,

。Focal loss 如下图所示,

的取值在[0, 5] 之间。从图中我们可以看出两点:当一个样本被错分类,

值很小的时候,调节因子,

的值很小,因此不会对loss产生影响。当

值很大,趋近于1的时候,调节因子的值趋近于0,因此对于正确分类的样本的loss值被缩小了。


的时候,FL 等于 CE。当

增加时候,调节因子的影响相应的增加,实验中

取得了最好的实验效果。

  在实验中,我们使用了

变种的focal loss ,形式如下:

RetinaNet Detector
  为了验证使用的Focal Loss function,作者设计了一种RetinaNet,如下图所示:

  RetinaNet 网络架构包含一个backbone 网络和两个subnetwork。Backbone网络在底层使用了ResNet,用来生成卷机特征,在此之上有一个Feature Pyramid Network(FPN)。Backbone外接两个subnetwork,一个用来分类,一个用来生成目标位置信息。实验验证  我们在COCO数据集上进行了目标检测的实验,并将测试结果与近期最先进的方法进行比较。其中包括一阶模型和二阶模型。下表列出了测试结果:

  这是Retina-101-800模型的测试结果,训练过程中采用scale filter , 训练时间是之前模型的1.5倍,但是AP值提升了1.3。对比当前最先进的一阶模型,我们的模型AP值提升了5.9%(39.1 vs 33.2)。对比当前最先进的二阶模型,Faster R-CNN w TDM,我们的模型也取得了2.3%的优势(39.1 vs 36.8)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐