论文 | 用于密集对象检测的 Focal Loss 函数
2018-01-04 00:00
169 查看
[b][b][b][b][b][b][b][b]
[/b][/b][/b][/b][/b][/b][/b][/b]论文:Focal Loss for Dense Object Detection原文链接:https://arxiv.org/abs/1708.02002背景介绍 目前最先进的目标检测系统是基于两个阶段的机制。第一个阶段生成一个稀疏的候选区域集合,第二个阶段使用卷积神经网络对候选区域进行分类处理。最典型的例子例如R-CNN系列框架。 另一种目标检测系统的解决思路是在一个阶段完成目标检测的任务。例如YOLO,SSD。这些系统的比两阶段的要快,但是在准确度方面有所下降。 本文进一步推进了上述的研究,提出了一种一阶段的目标检测系统。首次在COCO数据集上达到了最先进两阶段目标检测系统(例如FPN,Faster R-CNN)的性能。为了达到这个目的,我们把训练阶段的类别不平衡性视为一阶目标检测系统精度的瓶颈,并提出了了解决这个瓶颈的全新的损失函数。在此基础上,我们设计了一个名为RetinaNet的一阶目标检测模型。Focal Loss
2.1 Cross entropy
二分类问题中loss的定义如下:
上式中
代表样本属于1的概率。y代表标签。为了表示方便,我们定义
如下:
CE loss 如下图中的蓝色曲线所示,这个loss的一个显著特征是,即使是很容易的分类情况下,也会产生较大的loss。当把这些大量的loss加起来的时候,将会产生较大的影响。
。
用来设置为相反类别的概率或者作为交叉验证的一个超参数。为了表示方便,我们重写了带
参数的CE loss:
平衡了正负样本的重要性,但是无法对 容易分类的样本和难以分类的样本产生影响。因此我们提出了一种全新的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)。总结
本文中,我们将类别不平衡视为一阶目标检测系统的性能瓶颈,为了解决这个问题我们对CE(交叉熵损失)提出了改进,提出了focal loss。实验结果显示,基于focal loss 的RetinaNet ,相对比与之前的目标检测系统,有较大改进。
版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。
这里有免费AI课程
[/b][/b][/b][/b][/b][/b][/b][/b]论文:Focal Loss for Dense Object Detection原文链接:https://arxiv.org/abs/1708.02002背景介绍 目前最先进的目标检测系统是基于两个阶段的机制。第一个阶段生成一个稀疏的候选区域集合,第二个阶段使用卷积神经网络对候选区域进行分类处理。最典型的例子例如R-CNN系列框架。 另一种目标检测系统的解决思路是在一个阶段完成目标检测的任务。例如YOLO,SSD。这些系统的比两阶段的要快,但是在准确度方面有所下降。 本文进一步推进了上述的研究,提出了一种一阶段的目标检测系统。首次在COCO数据集上达到了最先进两阶段目标检测系统(例如FPN,Faster R-CNN)的性能。为了达到这个目的,我们把训练阶段的类别不平衡性视为一阶目标检测系统精度的瓶颈,并提出了了解决这个瓶颈的全新的损失函数。在此基础上,我们设计了一个名为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)。总结
本文中,我们将类别不平衡视为一阶目标检测系统的性能瓶颈,为了解决这个问题我们对CE(交叉熵损失)提出了改进,提出了focal loss。实验结果显示,基于focal loss 的RetinaNet ,相对比与之前的目标检测系统,有较大改进。
版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。
这里有免费AI课程
相关文章推荐
- Focal Loss 函数用于密集对象检测
- js 用于检测类数组对象的函数方法
- js-用于检测类数组对象的函数
- 【OpenCV学习笔记】【函数学习】十三(剔除检测到的不符合要求的对象)
- 绕过oc编译器检测,直接取函数,对象
- 实现一个可以用于bind2nd的函数对象
- Java 中的 int 与 Integer 用于 List<Integer> 时,以及通过打印变量检测程序运行和函数调用次数计数
- 用于多种结构体的函数对象
- jQuery.isEmptyObject()函数用于判断指定参数是否是一个空对象。
- 用于string对象中字符截取的几种函数总结——语法、参数意义及用途举例
- 标准库定义的函数对象--接“将函数对象用于标准库算法”
- js valueOf()函数用于返回指定对象的原始值
- 各种对象检测论文总结(Object Detection )
- 【论文笔记】CVPR2015 级联卷积神经网络用于人脸检测
- 写得用于比较的函数对象模板
- 将函数对象用于标准库算法
- php中检测变量是否是一个对象的is_object函数介绍及用法举例
- cocos2d-x 给函数接口生命周期添加检测函数,用于调试程序时检测错误。
- 用于组织,测试和操作对象及类的工具和技术-2 查找类/检测对象类型
- C++11用于计算函数对象返回类型的统一方法