MAP理解和计算

54次阅读

共计 1765 个字符,预计需要花费 5 分钟才能阅读完成。

背景

在二分类中,常常使用 Precision, Recall, ROC 曲线,AUC 来评价一个模型的性能,然而这些指标很难对多分类模型进行准确的评价,详见 http://sfau.lt/b5bhMsv
那么在多分类中,我们该怎么评价一个模型对于所有的类别的性能哪,如何才能保证每一个类别都被同等的重视,而不失偏颇,这就是 MAP(Mean Average Precision) 要做的事情。
MAP,即 Mean Average Precision,从名字上看,它是 Average Precision(AP)的平均值,那么我们首先来计算 AP

MAP 的计算

回顾 Precision 的计算

对于一个二分类问题,对于分类结果,我们根据 Groundtruth 和 Predicted 来讲结果分为 TP(True Postive), FP(False Postive), TN(True Negative), FN(False Negative)
那么 Precision 和 Recall 的计算方式如下:
$$Precision=TP/(TP + FP)$$
$$Recall=TP/(TP + FN)$$

计算 AP

什么是 AP?


AP 是指的在所有 Recall 的可能取值情况下,得到的所有的 Precision 的平均值。即假设某一类的 GroundTruth 中有 100 个正样本,那么根据分类阈值的划分,Recall 将会有 100 个取值,即 [0.01, 0.02, … 1.0], 我们可以使用 $$[R_{0.01}, R_{0.02}, … ,R_{1.0}]$$,对应于 Precision, 则有 $$[P_{0.01}, P_{0.02}, …, P_{1.0}]$$,那么 $$AP = \sum_{\alpha=0.01}^{1.0}{P_\alpha}$$
以 Recall 为横轴,Precision 为纵轴画出来一条曲线,即 PR 曲线,

我们可以看到该曲线是单调递减的,随着 Recall 逐渐增大,Precision 逐渐减小。
详细计算过程如下:

  1. 对于任意一个二分类的分类结果,我们对其分类结果将依照分类得分进行从大到小的排序,此时,我们可以取当 TP= 1 时,TP= 2 时,计算响应的 FP,FN,然后计算 Precision;
  2. 然后对于所有类别我们都可以按照上面这样计算,可以得到所有类别的 AP;
  3. 再将所有类别的 AP 求均值,那么得到的就是 MAP;

AP 衡量的是我们训练得到的模型在每个类别上的好坏,MAP 衡量的是该模型在所有类别上的好坏,
得到 AP 后,MAP 的计算就变得很简单了,就是取所有 AP 的平均值。

MAP 的应用

信息检索中的应用


在信息检索中,给定一个 query,返回 N 个 answer,假设 N 个 answer 中有 M 个是正相关的,那么可以计算 Recall=1/M, Recall=2/M,…,Recall= 1 时所对应的 Precision, 将这些 Precision 进行平均,那么就得到的对于这一个特定的 query 的 AP,那么多个 query 的 AP 的均值,就是 MAP

目标检测中的应用


在计算机视觉(CV)中,评价一个目标检测系统的性能常常使用 MAP,例如在 PASCAL VOC 竞赛,MS COCO 竞赛中,都是使用 MAP 来衡量模型的性能。
在目标检测中预测得到的 bbox 往往数目是不固定的,但是 Groundtruth bbox 是固定的,那么什么是 TP,什么是 FP, 什么是 FN 哪?
对于预测的所有框,记为 DTs(Detection Target), 每一个 DT 包含它的位置坐标和分类得分,我们按照上面所述的,对 DTs 按照分类得分由大到小进行排序,为了表示方便,仍旧记为 DTs, 对于真实的 Ground Truth,我们记为 GTs, 按照顺序,对于 DTs 中的每一个 DT,都计算它和 GTs 的 IOU 值,如果最大的 IOU 值大于阈值,那么就认为检测成功,算作 TP,并且最大 IOU 值的 GT 被认为是匹配成功,需要将其从 GTs 中移除;如果该最大的 IOU 值小于阈值,那么就意味着该 DT 与所有的 GTs 都匹配失败,是一个误检,自然就算作 FP 了;会出现多个检测结果 DT 同一个 GT 相匹配,那么分数最高(不是 IOU 值最高,而是该 DT 的分类得分)的被认为是 TP,其余的检测结果被认为是 FP,那么遍历完所有的 DTs,我们就知道哪些是 TP,哪些是 FP,而此时,如果 GTs 中仍然还有剩下的(因为匹配上的都被移走了)被认为是 FN。

正文完
 0