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


问题是 , 对于类不平衡的数据集 , 当这些小的损失在整个图像上相加时 , 可能会使整体损失(总损失)不堪重负 。 因此 , 将导致模型退化 。
平衡交叉熵损失解决类别不平衡问题的一种常见方法是为类别引入权重因子∝[0,1]
为了标记方便 , 我们可以在损失函数中定义 ∝t 如下:
CE(pt)= -∝t ln ln(pt)
如你所见 , 这只是交叉熵的扩展 。
平衡交叉熵的问题我们的实验将表明 , 在密集检测器训练过程中遇到的大类不平衡压倒了交叉熵损失 。
容易分类的负类占损耗的大部分 , 并主导梯度 。 虽然平衡了正例/负例的重要性 , 但它并没有区分简单/困难的示例 。
让我们通过一个例子来理解这一点
例子假设 , 前景(我们称其为类1)正确分类为p = 0.95 ——
CE(FG)= -0.25 * ln(0.95)= 0.0128
正确分类为p = 0.05的背景(我们称之为类0)——
CE(BG)=-(1-0.25)* ln(1- 0.05)= 0.038
虽然可以很好地正确区分正类和负类 , 但仍然不能区分简单/困难的例子 。
这就是焦点损失(扩展到交叉熵)起作用的地方 。
焦点损失说明焦点损失只是交叉熵损失函数的扩展 , 它将降低简单示例的权重 , 并将训练重点放在困难的负样本上 。
为此 , 研究人员提出: (1- pt)γ 为交叉熵损失 , 且可调聚焦参数γ≥0 。
RetinaNet物体检测方法使用焦点损失的α平衡变体 , 其中α = 0.25 , γ= 2效果最佳 。
因此 , 焦点损失可以定义为——
FL (pt) = -αt(1- pt)γ log log(pt).
对于γ∈[0,5]的几个值 , 可以看到焦点损失 , 请参见图1 。
我们将注意到焦点损失的以下特性:

  1. 当示例分类错误并且pt小时 , 调制因数接近1 , 并且损失不受影响 。
  2. 当 pt →1 时 , 该因子变为0 , 并且对分类良好的示例的损失进行了权衡 。
  3. 聚焦参数γ平滑地调整了简单示例的权重 。
随着增加 , 调制因数的作用同样增加 。 (经过大量实验和试验 , 研究人员发现γ = 2效果最佳)
注意:当γ= 0时 , FL等效于CE 。 参考图中蓝色曲线 。
直观上 , 调制因数减少了简单示例的损耗贡献 , 并扩展了示例接收低损耗的范围 。
让我们通过一个例子来了解上述焦点损失的特性 。
例子
  • 当记录(前景或背景)被正确分类时 ,
  • 前景正确分类 , 预测概率p=0.99 , 背景正确分类 , 预测概率p=0.01 。pt = {0.99 , 当Yact = 1 时 1-0.01 , 当Y act = 0时}调制因数(FG)=(1-0.99)2 = 0.0001 调制因数(BG)=(1-(1-0.01))2 = 0.0001,如你所见 , 调制因数接近于0 , 因此损耗将被权重降低 。
  • 前景被错误分类 , 预测概率p = 0.01 , 背景对象被错误分类 , 预测概率p = 0.99 。pt = {0.01 , 当Yact = 1 时 1-0.99 , 当Y act = 0时}调制因数(FG)=(1-0.01)2 = 0.9801 调制因数(BG)=(1-(1-0.99))2 = 0.9801如你所见 , 调制因数接近于1 , 因此损耗不受影响 。
现在 , 让我们使用一些示例比较交叉熵和焦点损失 , 并查看焦点损失在训练过程中的影响 。
交叉熵损失 vs 焦点损失让我们通过考虑以下几种情况来进行比较 。
容易正确分类的记录假设前景正确分类的预测概率为p = 0.95 , 背景正确分类的背景为预测概率p = 0.05 。pt = {0.95, 当 Yact=1时 1-0.05 ,当 Yact = 0时} CE(FG)= -ln (0.95) = 0.0512932943875505
让我们考虑在∝ = 0.25和γ= 2时的焦点损失 。
FL(FG)= -0.25 (1-0.95)2 ln (0.95) = 3.2058308992219E-5
FL(BG)= -0.75 (1-(1-0.05))2 ln (1-0.05) = 9.61E-5
分类错误的记录假设预测概率p=0.05的前景被分类为预测概率p=0.05的背景对象 。


推荐阅读