召回率的常用名词

召回率的常用名词,第1张

TP —— True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率

TN —— True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率

FP ——False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率

FN——False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率

True Positive Rate(真正率 , TPR)或灵敏度(sensitivity) TPR = TP /(TP + FN) 正样本预测结果数 / 正样本实际数

True Negative Rate(真负率 , TNR)或特指度(specificity) TNR = TN /(TN + FP) 负样本预测结果数 / 负样本实际数

False Positive Rate (假正率, FPR) FPR = FP /(FP + TN) 被预测为正的负样本结果数 /负样本实际数

False Negative Rate(假负率 , FNR) FNR = FN /(TP + FN) 被预测为负的正样本结果数 / 正样本实际数

更多可看

>

GitHub

CSDN

目前。计算机视觉中的性能最好的目标检测方法主要分为两种: one-stage 和two-stage 方法。two-stage方法分为两步,第一步为候选区域生成阶段(Proposal stage),通过如Selective Search、EdgeBoxes等方法可以生成数量相对较小候选目标检测框;第二步为分类与回归阶段,对第一阶段生成的 Candiate Proposal 进行分类和位置回归。one-stage 代表性的方法是R-CNN系列,如 R-CNN, Fast R-CNN, Faster R-CNN。 而one-stage 方法直接对图像的大量 Candiate Proposals 进行分类与回归。

这两类方法中均存在类别不平衡问题,two-stage 方法通过第一步已经将当量的候选区域降低到一个数量较小的范围,同时又在第二步通过一些启发式原则,将正负样本的比例降低到一定程度。而 one-stage 优于没有这降低候选框的步骤,因此,候选区域的数量大大超过 two-stage 方法,因此,在精度上,two-stage 仍然优于 one-stage 方法,但是在速度和模型复杂度上, one-stage 占优势。

类别不平衡会使检测器评估 的候选位置,但是通常只有少量的位置存在目标,这回导致两个问题:

因此,解决样本不平衡问题是提高目标检测精度的一个关键技术之一。

论文题目: Training Region-based Object Detectors with Online Hard Example Mining

OHEM 是通过改进 Hard Example Mining 方法,使其适应online learning算法特别是基于SGD的神经网络方法。Hard Example Mining 通过交替地用当前样本集训练模型,然后将模型固定,选择 False Positive 样本来重新组建用于下一次模型训练的样本集。但是因为训练神经网络本事就是一个耗时的 *** 作,这样在训练中固定模型,这样会急剧降低模型的训练进程。

Hard Examples Mining通常有两种方法:

OHEM算法的大致流程是: 首先计算出每个ROI的loss, 然后按loss从高到低来排列每个 ROI, 然后为每张选择 个损失最高的 ROI 作为Hard Examples,其中 B 表示总的 ROI 数量, 表示batch-size 的大小,在 Fast R-CNN 中, N=2, B=128时,效果很好。

但是如果直接按照 loss 对所有的 ROI 进行选择,会有一个缺点,由于 ROI 很多,这样 很多 ROI 的位置就会相关并重叠,如果和某个高 Loss 的 ROI 重合度很高的其它 ROI很多, 这样, 这些 ROI 的 Loss 通常也会很多,这样这些样本都会被选择,但是它们可以近似认为时同一个,这样就会给其它较低 Loss 的 ROI 更少的选择余地,这样就会存在冗余。为了消除这种冗余,作者提出先使用 NMS (non-maximum suppression) 删除部分重合度很高的 ROI, 在使用上述方法进行 选择 Hard Example。

实现技巧:

论文,作者将该方法是现在 Fsat R-CNN 目标检测方法中。最简单做法是更改损失函数层,损失函数层首先计算所有 ROI 的 loss, 然后根据 loss 对 ROI 进行排序,并选择 hard RoIs, 让 那些 non-RoIs的损失变为0 这种方法虽然很简单,但是非常不高效,因为还需要为所有的 RoIs 分配进行反向传播时需要的内存空间。

为了克服这个缺点,作者对下面的 Figure 1 进行改进, 如下面的 Figure 2该改进时使用两份同样的 RoI network。 其中一个是只读的(readonly), 即只进行前向计算,不进行反向传播优化,所以只需要为前向传播分配内存,它的参数实时保持和另一个 RoI network(regular RoI network)保持一样。在每次迭代时,首先使用 readonly RoI network 对每个 ROI 计算起 loss,然后用上面描述的选择 hard RoIs 的方法选择 hard RoIs 然后利用 regular RoI network来对选择的 hard RoIs 进行前向和后向计算来优化网络。

论文题目 Focal Loss for Dense Object Detection

在改论文中,作者认为样本类别的不平衡可以归结为难易样本的不平衡,从而更改交叉熵损失函数,重新对样本赋予不同的权值,之前的模型这些样本都是同等重要的,从而使模型训练更加关注 hard examples。

首先引入交叉熵的公式:

其中, ,表示真实类别, 表示我们预测的概率,为了方便,我们定义:

因此, ,该方法在 较大时,该loss是一个较小的量级, 如下图的连线所示所示,因为存在大量的易分类样本,相加后会淹没正样本的loss。

一个常见的解决类别不平衡的方式是引入一个加权因子 来表示正样本的权重, 表示负样本的权重。我们按照定义 的方法重新定义 为 , 定义如下:

虽然可以平衡 positive和negative的重要性,但是对 easy/hard 样本还是无法区分, Focal loss 通过更 Cross loss来达到区分easy/hard的目的:

上图展示了不同 取值对应的 loss,通过分析上述公式,我们发现,当 非常小时,即样本被分类错误,此时 接近1, loss几乎不受影响,当 接近于1时,即样本被分类正确,此时 接近0,此时降低了该样本的权重,比如,取 , 当时 时,该样本的 loss 会降低100倍,

在实际应用中,作者使用了该 Focal loss的变体,即加入了 平衡因子:

作者提出,对于二分类,一般模型的模型初始化会同概率的对待正负样本,由于类别不平衡,负样本的 loss 会占主导,作者提出在训练初始阶段对正样本的概率估计“prior”的概念,用 表示, 通过设置它来达到正样本的输出概率低的效果,比如为001,从而使模型更加关注正样本。实际 *** 作中,出了最后一个用于分类的卷积层,其余卷积层的参数初始化为bias ,而最后一层 , 实验中设置为 001

两个实现细节

论文题目: Gradient Harmonized Single-stage Detector

改论文提出 Focal Loss 存在两个缺点:

该论文有一句概括该篇论文的核心思想的一句话: 类别的不平衡可以归结为难易样本的不平衡,难易样本的不平衡可以归结为梯度的不平衡原话如下:

如下图所示:

左边是样本数量关于梯度的分布,中间表示各个修正后的函数的梯度(使用了log scale)对原始梯度的,右边表示所有样本集的梯度贡献的分布。

定义 是模型未经过 sigmoid 之前的输出, 则 ,得出该损失函数对 的梯度为:

定义梯度的模长(norm) 为:

训练样本的梯度密度(Gradient Density)定义如下:

其中, 是第 k 个样本的gradient norm,

这个公式可以理解为,以梯度 为中心,宽度为 的区域内的样本密度。

梯度密度协调参数:

分母是对梯度位于 范围的部分样本进行归一化,如果所有样本的梯度时均分分布,那么对于任意 都有 (这里不是很理解为什么N,可以理解它们相等)

通过将梯度密度协调参数将 GHM 嵌入到损失函数中,则 GHM-C Loss 为:

计算公式11时,求和有一个N,再求 时会遍历所有的样本,因此该公式的时间复杂度为 如果并行的化,每个计算单元也有N的计算量。对gradient norm进行排序的最好的算法复杂度为 ,然后用一个队列去扫描样本得到梯度密度的时间复杂度为 n 。基于排序的方法即使并行也不能较快的计算,因为N往往是 甚至 ,仍然是非常耗时的

作者提出的近似求解的方法如下:

根据上述定义,得出近似梯度密度函数为:

利用上面的公式,由于我们可以事先求好 , 在求和时只需查找 即可,因此时间复杂度为

因为loss的计算是基于梯度密度函数,而梯度密度函数根据一个batch中的数据得到,一个batch的统计结果是有噪声的。与batch normalization相同,作者用Exponential moving average来解决这个问题,也就是

将模型鱼的的偏移量定义为 , 将真实的偏移量定义为 ,回归loss采用 Smooth L1 loss:

其中

则 关于 的梯度为:

从公式可以看出,当样本 *** 作 时, 所有样本都有相同的梯度 1, 这就使依赖梯度范数来区分不同样本是不可能的, 一种简单的替代方法时直接使用 作为衡量标准,但是该值理论上无限大,导致 无法实现,

为了将 GHM 应用到回归损失上,作者修改了原始的 损失函数:

该函数和 具有类似的属性,当d的绝对值很小时,近似 L2 loss, 当d的绝对值比较大时, 近似 L1 loss, 关于d的梯度为:

这样就将梯度值限制在

定义 , 则 GHM-R Loss 为:

论文题目: Prime Sample Attention in Object Detection

PISA 方法和 Focal loss 和 GHM 有着不同, Focal loss 和 GHM 是利用 loss 来度量样本的难以程度,而本篇论文作者从 mAP 出法来度量样本的难易程度。

作者提出提出改论文的方法考虑了两个方面:

Prime Samples 是指那些对检测性能有着巨大影响的样本。作者研究表明样本的重要程度依赖于它和ground truth 的 IoU值,因此作者提出了一种 IOU-HLR 排序。

在目标检测中时如何定义正样本(True Positive)的呢?

剩余的标注为负样本。

mAP 的原理揭露了对目标检测器更重要的 两个准则 :

基于上述分析,作者提出了一种称为 IoU-HLR 的排序方法,它既反映了局部的IoU关系(每个ground truth目标周围),也反映了全局的IoU关系(覆盖整个图像或小批图像)。值得注意的是,不同于回归前的边界框坐标,IoU-HLR是根据样本的最终定位位置来计算的,因为mAP是根据回归后的样本位置来计算的。

该排序方法的大致流程如下图所示,其原理如下:

IoU-HLR遵循上述两个准则。首先,它通过局部排序(即上面的步骤2)将每个单独的 GT 的 对应的样本中 IoU 较高的样本放在前面,其次通过重采样和排序(步骤3, 4)将不同 GT 的 对应的样本中, 将 IoU 较高的放在了前面。

作者提出Prime Sample Attention,一种简单且有效的采样策略,该采样策略将更多的注意力集中到 Prime examples 上, PISA 由两部分组成: Importance- based Sample Reweighting(ISR)和Classification Aware Regression Loss(为CARL)

PISA 的训练过程是基于 prime samples 而不是同等对待所有样本。

作者提出一种基于 soft sampling 的方法: Importance-based Sample Reweighting (ISR), 他给不同样本根据重要性赋予不同的权重。首先它将Iou-HLR排序转化为线性映射的真实值。 IoU-HLR在每个类中分别进行计算。对于类 , 假设总共有 个样本, 通过 IoU-HLR 表示为 其中 ,使用一个线性转换函数将 转换为 , 表示第 类中的第 个样本的重要程度:

采用指数函数的形式来京一部将样本重要性 转换为 loss 的权值 , 表示对重要样本给予多大的优先权的程度因子, 决定最小样本权值的偏差(感觉就是一个决定最小的权值大小的一个变量)。

根据上面得到的权重值,重写交叉熵:

其中 n 和 m 分别表示真样本和负样本的数量, 和 分别表示预测分数和分类目标,需要注意的是,如果只是简单的添加 loss 权值将会改变 loss 的值,并改变正负样本的比例,因此为了保持正样本的总的 loss 值不变, 作者将 归一化为

(这里不是很理解,欢迎大家解惑)

531 已经介绍如何染个分类器知道 prime samples, 那么如何让回归其也知道 prime sample,作者提出了 Classification-Aware Regression Loss(CARL) 来联合优化分类器和回归其两个分支。CARL可以提升主要样本的分数,同时抑制其他样本的分数。回归质量决定了样本的重要性,我们期望分类器对重要样本输出更高的分数。两个分支的优化应该是相互关联的,而不是相互独立的。

作者的方法是让回归器知道分类器的分数,这样梯度就可以从回归器传播到分期其分支。公式如下:

表示相应类别的预测分数, 表示输出的回归偏移量。利用一个指数函数将 转化为 ,随后根据所有样本的平均值对它进行缩放。为了保持损失规模不变,对具有分类感知的 进行归一化。 是常用的smooth L1 loss。

关于 的梯度与原回归损失 成正比。 p_i \mathcal{L}(d_i, \hat d_i) \mathcal{L}(d_i, \hat d_i)$ 反映了样本i的定位质量,因此可以认为是一个IoU的估计,进一步可以看作是一个IoU-HLR的估计。可以近似认为,排序靠前的样本有较低的回归损失,于是分类得分的梯度较小。对于CARL来说,分类分支受到回归损失的监督。 不重要样本的得分被极大的抑制掉,而对重要样本的关注得到加强。

待续。。。

上面的方法大致可以分为两种:

Focal Loss认为正负样本的不平衡,本质上是因为难易样本的不平衡,于是通过修改交叉熵,使得训练过程更加关注那些困难样本,而GHM在Focal Loss的基础上继续研究,发现难易样本的不平衡本质上是因为梯度范数分布的不平衡,和Focal Loss的最大区别是GHM认为最困难的那些样本应当认为是异常样本,让检测器强行去拟合异常样本对训练过程是没有帮助的。PISA则是跳出了Focal Loss的思路,认为采样策略应当从mAP这个指标出发,通过IoU Hierarchical Local Rank (IoU-HLR),对样本进行排序并权值重标定,从而使得recall和precision都能够提升。

更好的阅读体验请跳转至 样本不均衡之难易不均衡

上篇 看样本下菜的FastBERT 提到样本有难易,通过利用样本的这个特性,可以在推理上进行加速,除了在推理上可以利用,在训练时也可以利用,本篇就来说怎么在训练时更充分的利用样本有难易的特性。

对于分类问题,通常我们选择交叉熵作为损失。本文均针对二分类进行说明,多分类的情况可以横向扩展。对于二分类问题来说,其损失CE:

当我们遇到一个正负样本不均衡的情况,如1:1000时,直接训练后效果往往不好,其倾向于将更多的样本预测为类别多的类,而产生的原因是:由于我们训练时使用的 CE:

, 其中CE_positive 与 CE_negative 分别代表正负样本的loss,而由于此时的样本不均衡,loss主要有类别多的样本贡献,主导了优化方向,所以模型会偏向数量多的方向,如当前全部预测为正样本,那解决这个问题最简单直接的办法就是在loss上增加一个权重α来均衡一下两方的loss,从而让模型更“公平”的对待不同类别样本,即:

除了在类别上可能存在这种不均衡外,样本在难易程度上往往也会有难易之分。如当训练一个情感分类器时,“不喜欢xx”就比“谁不喜欢xx呢”要容易训练一些 为了衡量这种“难易”特征,我们定义一个代表预测值与真实label 之间差距的参数 :

pt越大则说明预测值与其label 相差越大,也即样本越“难训练”,最后我们对整个样本的pt 统计往往得到一个U型分布,如下图所示:

即“易训练”样本是“难训练”样本的指数级。虽然此时“易训练”样本由于得到了很好的训练,其loss 很小,当由于其数量庞大,任然可能主动整个训练。

所以为了解决难易不均衡的问题,我们采用与样本不均衡一样的方法:对不同样本添加一个权重来平衡,即此时的loss FL:

而前面我们说难易样本的loss 呈指数级差距,所以此时的 我们也定义为指数函数,最终的 FL:

此时, 用来平衡样本不均衡, 用来均衡难易样本。通过平衡难易样本对应损失,让模型更“关注”那些难分的样本。

以上就是 focal loss 的主要思想,虽然最后我们得到的loss形式上与focal loss一样,但其中参数的含义与focal loss中的内容却有一些不同,主要在于focal loss 中实验证明,由于对难易样本降权后正样本(量少的类)对应的loss反而更易主动优化方向,所以用 来降权,而我们上面提到的alpha 主要是用来均衡正负样本,这里读者可以自行判断理解。此外,苏剑林通过硬截断过渡到软阶段也得到了类似的loss,推荐大家也看看: 从loss的硬截断、软化到focal loss

在focal loss论文内,作者是通过搜索一个范围来确定两个参数的最优解,最后给出的结果是 , ,而通过上面我们提到的两个参数的含义,这里给出一个确定参数范围的方案:

1首先,我们通过统计正负样本,来确定 的大致范围;

2通过CE_W我们可以训练一个基础的分类器,通过这个分类器,我们对训练集进行预测,生成对应的prob,然后通过统计 ,我们认为 的为主要的“易分样本”, 为主要“难分样本”,由于是指数衰减,所以两者的loss 差距为 , 即此时 , 解出此时的 即可得到其大致的范围。

实验时,通过构造一个正负样本8:1的数据集进行实验,在通过权重平衡正负样本不均衡后,对应的pt分布如下图:

现在让我们来讨论一下focal loss存在的问题:

现在再让我们回过头来重新审视一下我们的原始问题:样本有难易之分,所以训练时存在难易样本不均衡,而"易分"样本占比过高导致主导优化方向。那此时让我们往后再思考一步,当我们对易分样本降权后,对应的pt分布图中最左侧的柱子会降低,而由于模型得到了更好的优化方向,模型的性能提高,所以最右侧的柱子也会降低,两边减少的样本会同时向"中间"扩散,最后得到一个比原始pt分布曲线更"平滑"的分布曲线,正如上文中focal loss对应的pt分布图。

而focal loss 由于过度关注"难分样本",导致存在离群点时不理想的问题。而离群点有一个特点就是:量相对正常样本非常少(否则就是一个"小群"了),利用这个特点,我们就能对focal loss 进行改进了。改进的思路就是利用离群点少的特点,从难易样本的量上来平衡难易样本的loss。

具体做法:我们将 按间隔 均等的分为K个区间,然后统计不同区间内的样本数量 ,然后针对每个区间内的loss 我们用参数 来平滑:

其中:

对应 所属区间的样本 在整体样本 中占比的倒数。

而在实现时,由于通常我们都是采取mini-batch 的方式训练,无法在每个batch内事先得到全局统计量进行$\beta(i)的计算,一种近似的办法是利用动量,逐步近似求。

以上就是 GHM 在分类情况下的loss,原始论文中的pt 分布对比图中也能看到,利用GHM确实更平滑。

本文介绍了两种针对样本难易不均衡问题的loss:focal loss 与 GHM,并通过实验进一步验证了其有效性,在一些样本不均衡的场景下均可尝试使用。

以上就是关于召回率的常用名词全部的内容,包括:召回率的常用名词、Paper Reading - 基础系列 - 常用评价指标 ROC、PR、mAP、目标检测中的样本不平衡处理方法——OHEM, Focal Loss, GHM, PISA等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/10183633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存