目标检测中焦点损失的入门指南

介绍对象检测是计算机视觉社区中研究最广泛的主题之一 。 它已经进入了各个行业 , 涉及从图像安全 , 监视 , 自动车辆系统到机器检查的用例 。
目标检测中焦点损失的入门指南文章插图
当前 , 基于深度学习的对象检测可以大致分为两类:

  1. 两级检测器 , 例如基于区域的CNN(R-CNN)及其后续产品 。
  2. 一级探测器 , 例如YOLO系列探测器和SSD
应用于锚框的常规 , 密集采样(可能的物体位置)的一级检测器可能会更快 , 更简单 , 但由于在训练过程中遇到极端的等级失衡 , 其精度已经落后于两级探测器 。
FAIR在2018年发表了一篇论文 , 其中他们引入了焦点损失的概念 , 用他们称为RetinaNet的一级探测器来处理此类不平衡问题 。
在我们深入探讨焦点丢失的本质之前 , 让我们首先了解这个类不平衡问题是什么以及它可能引起的问题 。
目录
  1. 为什么需要焦点损失
  2. 什么是焦点损失
  3. 交叉熵损失 交叉熵问题 例子
  4. 平衡交叉熵损失 平衡交叉熵问题 例子
  5. 焦点损失说明 例子
  6. 交叉熵损失 vs 焦点损失 容易正确分类的记录 分类错误的记录 非常容易分类的记录
  7. 最后的想法
为什么需要焦点损失两种经典的一级检测方法 , 如增强型检测器 , DPM和最新的方法(如SSD)都可以评估每个图像大约10^4 至 10^5个候选位置 , 但只有少数位置包含对象(即前景) , 而其余只是背景对象 。 这导致了类不平衡的问题 。
这种不平衡导致两个问题
  1. 训练效率低下 , 因为大多数位置都容易被判断为负类(这意味着检测器可以轻松将其归类为背景) , 这对检测器的学习没有帮助 。
  2. 容易产生的负类(概率较高的检测)占输入的很大一部分 。 虽然单独计算的梯度和损失较小 , 但它们可能使损耗和计算出的梯度不堪重负 , 并可能导致模型退化 。
什么是焦点损失简而言之 , 焦点损失(Focal Loss , FL)是交叉熵损失(Cross-Entropy Loss , CE)的改进版本 , 它通过为难分类的或容易错误分类的示例(即带有噪声纹理的背景或部分对象的或我们感兴趣的对象)分配更多的权重来处理类不平衡问题 , 并对简单示例(即背景对象)降低权重 。
因此 , 焦点损失减少了简单示例的损失贡献 , 并加强了对纠正错误分类的示例的重视 。
因此 , 让我们首先了解二进制分类的交叉熵损失 。
交叉熵损失【目标检测中焦点损失的入门指南】交叉熵损失背后的思想是惩罚错误的预测 , 而不是奖励正确的预测 。
二进制分类的交叉熵损失如下:
目标检测中焦点损失的入门指南文章插图
其中:
Yact = Y的实际值
Ypred = Y的预测值
为了标记方便 , 我们记 Yact = Y 且 Ypred = p。
Y∈{0,1} , 这是正确标注
p∈[0,1] , 是模型对Y = 1的类别的估计概率 。
为了符号上的方便 , 我们可以将上述方程式改写为:
pt = {-ln(p) ,当Y=1 -ln(1-p) ,当 Y=}
CE(p , y)= CE(pt)=-ln?(pt)
交叉熵问题如你所见 , 下图中的蓝线表示当p非常接近0(当Y = 0时)或1时 , 容易分类的pt > 0.5的示例可能会产生不小的幅度的损失 。
目标检测中焦点损失的入门指南文章插图
让我们用下面的例子来理解它 。
例子假设 , 前景(我们称其为类1)正确分类为p = 0.95 ——
CE(FG)= -ln(0.95)= 0.05
并且背景(我们称其为类0)正确分类为p = 0.05 ——
CE(BG)=-ln(1- 0.05)= 0.05


推荐阅读