作者 |GUEST BLOG
编译 |Flin
起源 |analyticsvidhya
介绍
对象检测是计算机视觉社区中钻研最宽泛的主题之一。它曾经进入了各个行业,波及从图像平安,监督,主动车辆零碎到机器查看的用例。
以后,基于深度学习的对象检测能够大抵分为两类:
- 两级检测器,例如基于区域的 CNN(R-CNN)及其后续产品。
- 一级探测器,例如 YOLO 系列探测器和 SSD
利用于锚框的惯例,密集采样(可能的物体地位)的一级检测器可能会更快,更简略,但因为在训练过程中遇到极其的等级失衡,其精度曾经落后于两级探测器。
FAIR 在 2018 年发表了一篇论文,其中他们引入了焦点损失的概念,用他们称为 RetinaNet 的一级探测器来解决此类不均衡问题。
在咱们深入探讨焦点失落的实质之前,让咱们首先理解这个类不均衡问题是什么以及它可能引起的问题。
目录
- 为什么须要焦点损失
- 什么是焦点损失
-
穿插熵损失
- 穿插熵问题
- 例子
-
均衡穿插熵损失
- 均衡穿插熵问题
- 例子
-
焦点损失阐明
- 例子
-
穿插熵损失 vs 焦点损失
- 容易正确分类的记录
- 分类谬误的记录
- 非常容易分类的记录
- 最初的想法
为什么须要焦点损失
两种经典的一级检测办法,如增强型检测器,DPM 和最新的办法(如 SSD)都能够评估每个图像大概 10^4 至 10^5 个候选地位,但只有多数地位蕴含对象(即前景),而其余只是背景对象。这导致了类不均衡的问题。
这种不均衡导致两个问题
- 训练效率低下,因为大多数地位都容易被判断为负类(这意味着检测器能够轻松将其归类为背景),这对检测器的学习没有帮忙。
- 容易产生的负类(概率较高的检测)占输出的很大一部分。尽管独自计算的梯度和损失较小,但它们可能使损耗和计算出的梯度不堪重负,并可能导致模型进化。
什么是焦点损失
简而言之,焦点损失(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 时,容易分类的 p t > 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
问题是,对于类不均衡的数据集,当这些小的损失在整个图像上相加时,可能会使整体损失(总损失)不堪重负。因而,将导致模型进化。
均衡穿插熵损失
解决类别不均衡问题的一种常见办法是为类别引入权重因子∝[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。
咱们将留神到焦点损失的以下个性:
- 当示例分类谬误并且 p t小时,调制因数靠近 1,并且损失不受影响。
- 当 pt →1 时,该因子变为 0,并且对分类良好的示例的损失进行了衡量。
- 聚焦参数 γ 平滑地调整了简略示例的权重。
随着减少,调制因数的作用同样减少。(通过大量试验和试验,钻研人员发现 γ = 2 成果最佳)
留神:当 γ = 0 时,FL 等效于 CE。参考图中蓝色曲线。
直观上,调制因数缩小了简略示例的损耗奉献,并扩大了示例接管低损耗的范畴。
让咱们通过一个例子来理解上述焦点损失的个性。
例子
- 当记录(前景或背景)被正确分类时,
- 前景正确分类,预测概率 p =0.99,背景正确分类,预测概率 p =0.01。
pt = {0.99,当 Y act = 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,当 Y act = 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 的背景对象。
pt = {0.95,当 Y act = 1 1-0.05 时,当 Y act = 0 时}
CE(FG)= -ln(0.05)= 2.995732273553991
CE(BG)= -ln(1-0.95)= 2.995732273553992
让咱们思考雷同的场景,即∞=0.25 和 γ =2。
FL(FG)= -0.25 (1-0.05)2 ln(0.05)= 0.675912094220619
FL(BG)= -0.75 (1-(1-0.95))2 ln(1-0.95)= 2.027736282661858
非常容易分类的记录
假如对预测概率 p =0.01 的背景对象,用预测概率 p =0.99 对前景进行分类。
pt = {0.99, 当 Yact= 1 时 1-0.01 , 当 Yact = 0 时}CE(FG)= -ln (0.99) = 0.0100503358535014
CE(BG)= -ln(1-0.01)= 0.0100503358535014
让咱们思考雷同的场景,即∞=0.25 和 γ =2。
FL(FG)= -0.25 (1-0.01)2 ln(0.99)= 2.51 * 10 -7
FL(BG)= -0.75 (1-(1-0.01))2 ln(1-0.01)= 7.5377518901261E-7
最初的想法
计划 1 :0.05129 / 3.2058 * 10 -7 = 小 1600 倍
计划 2 :2.3 / 0.667 = 小 4.5 倍
计划 3 :0.01 / 0.00000025 = 小 40,000 倍。
这三个案例分明地阐明了焦点损失如何减小分类良好的记录的权重,另一方面又为谬误分类或较难分类的记录赋予较大的权重。
通过大量的试验和试验,钻研人员发现 ∝ = 0.25 和 γ = 2 成果最佳。
尾注
在对象检测中,咱们经验了从穿插熵损失到焦点损失的整个进化过程。我曾经尽力解释了指标检测中的焦点损失。
感激浏览!
参考
- https://arxiv.org/ftp/arxiv/p…
- https://medium.com/@14prakash…
- https://developers.arcgis.com… / guide / how-retinanet-works /
原文链接:https://www.analyticsvidhya.c…
欢送关注磐创 AI 博客站:
http://panchuang.net/
sklearn 机器学习中文官网文档:
http://sklearn123.com/
欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/