↓ Skip to main content
  1. Posts/

多标签图像分类任务的评价方法-mean average precision(mAP) 以及top x的评价方法

·1571 words·4 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

参考资料:

多标签图像分类任务的评价方法-mAP

wiki_Sensitivity and specificity

False Positives和False Negative等含义

mean average precision(MAP)在计算机视觉中是如何计算和应用的?

首先需要了解 True(False) Positives (Negatives) 的含义。

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

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

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

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

在图像中,尤其是分类问题中应用 AP,是一种评价 ranking 方式好不好的指标:

举例来说,我有一个两类分类问题,分别 5 个样本,如果这个分类器性能达到完美的话,ranking 结果应该是 +1,+1,+1,+1,+1,-1,-1,-1,-1,-1.

但是分类器预测的 label,和实际的 score 肯定不会这么完美。按照从大到小来打分,我们可以计算两个指标:precision 和 recall。比如分类器认为打分由高到低选择了前四个,实际上这里面只有两个是正样本。此时的 recall 就是 2(你能包住的正样本数)/5(总共的正样本数)=0.4,precision 是 2(你选对了的)/4(总共选的)=0.5.

图像分类中,这个打分 score 可以由 SVM 得到:s=w^Tx+b 就是每一个样本的分数。

从上面的例子可以看出,其实 precision,recall 都是选多少个样本 k 的函数,很容易想到,如果我总共有 1000 个样本,那么我就可以像这样计算 1000 对 P-R,并且把他们画出来,这就是 PR 曲线:

Precision–Recall 曲线
这里有一个趋势,recall 越高,precision 越低。这是很合理的,因为假如说我把 1000 个全拿进来,那肯定正样本都包住了,recall=1,但是此时 precision 就很小了,因为我全部认为他们是正样本。recall=1 时的 precision 的数值,等于正样本所占的比例。

所以 AP,average precision,就是这个曲线下的面积,这里 average,等于是对 recall 取平均。而 mean average precision 的 mean,是对所有类别取平均(每一个类当做一次二分类任务)。现在的图像分类论文基本都是用 mAP 作为标准。

使用 AP 会比 accuracy 要合理。对于 accuracy,如果有 9 个负样本和一个正样本,那么即使分类器什么都不做全部判定为负样本 accuracy 也有 90%。但是对于 AP,recall=1 那个点 precision 会掉到 0.1. 曲线下面积就会反映出来。

precision 和 recall 的计算:

precision 与 recall 的计算示意

图中上部分,左边一整个矩形中(false negative 和 true positive)的数表示 ground truth 之中为 1 的(即为正确的)数据,右边一整个矩形中的数表示 ground truth 之中为 0 的数据。

精度 precision 的计算是用 检测正确的数据个数/总的检测个数。

召回率 recall 的计算是用 检测正确的数据个数/ground truth 之中所有正数据个数。

  1. AP:average precision

假设我们有数据:

按 confidence 排序的检测结果示例

一共 20 个图像,20 行,第一列是图像 index,第二列是检测 confidence,第三列是 ground truth。根据 confidence 从大到小排列。

每检测一个图像时,无论是正例还是负例,计算当下的 precision 和 recall。

假设检测样本中每 N 个样本中有 M 个正例,那么我们会得到 M 个 recall 值(1/M, 2/M, …, M/M)(由于检测 N’ 数量正样本时,precision 有不同情况),对于每个 recall 值 r,我们可以计算出对应(r’ > r)的最大 precision,然后对这些 max precision 取平均即得到最后的 AP 值。具体计算如图,top-N 是指根据 confidence 降序排列后样本的排位号(eg. 1 为 confidence 最大的图像 9):

AP 计算过程示例

  1. mAP: mean average precision

多类的检测中,取每个类 AP 的平均值,即为 mAP。

既然说到了分类任务的评价办法,顺便就把 top x 也提一句好了。通常是 top1、top5。

top1 就是你预测的 label 取最后概率向量里面最大的那一个作为预测结果,你的预测结果中概率最大的那个类必须是正确类别才算预测正确。而 top5 就是最后概率向量最大的前五名中出现了正确概率即为预测正确。

Related

stanford cs 231n:常用激活函数

·2596 words·6 mins
其实我觉得这部分可以直接黑箱。。。直接无脑上Leaky ReLU或者Maxout?不过对这些激活函数的特点有个high-level的了解应该总是没坏处的,只要别太纠结细节就好了吧。。 # 每个激活函数(或非线性函数)的输入都是一个数字,然后对其进行某种固定的数学操作。下面是在实践中可能遇到的几种激活函数: