深度学习基本知识(一)评价方法precision\recall\mAP

1.几种类型

比如我们要做一个在一堆猫狗图片中找猫的网络,那么:

TruePositive(TP):真阳性,检测出是猫(1),真实情况确实是猫(1)

FalsePositive(FP):假阳性,检测出是猫(1),真实情况是狗(0)

TrueNegative(TN):真阴性,检测出是狗(0),真实情况是狗(0)

FalseNegative(FN):假阴性,检测出是狗(0),真实情况是猫(1)

2.基本评价指标

precision(准确度):TP/(TP+FP)      [1,1]/([1,1]+[1,0])  被检测为猫(Positive )的图片中,真的是猫的比重,衡量检测的准不准确。

recall(召回率):TP(TP+FN)             [1,1]/([1,1]+[0,1])  真实情况中为猫的图片只有一部分被真正的找到了,这部分所占比重。

一般来说召回率越高,证明模型的“要求”越低,那么准确率会相对变低;同理准确率越高意味着“要求”越高,那么召回率会相对降低。

3.mAP

多分类中所用指标 mean  Average  Precision

首先用训练好的模型得到所有测试样本的confidence  score,每一类(如car)的confidence   score保存到一个文件中(如comp1_cls_test_car.txt)。假设共有20个测试样本,每个的id,confidence  score和ground  truth  label如下:​​

接下来对confidence  score排序,得到:

这张表很重要,接下来的precision和recall都是依照这个表计算的

下面要提到的top-N的意思是上表中前N个被认为是positive

比如对测试样本在训练好的car模型上分类,我们想得到top-5的结果,即:

在这个例子中,true   positives就是指第4和第2张图片,false   positives就是指第13,19,6张图片。false   negatives和true  negatives是指confidence   score排在top-5之外的元素,即:

其中,false   negatives是指第9,16,7,20张图片,true   negatives是指第1,18,5,15,10,17,12,14,8,11,3张图片。

那么,这个例子中Precision=2/5=40%,意思是对于car这一类别,我们选定了5个样本,其中正确的有2个,即准确率为40%;Recall=2/6=30%,意思是在所有测试样本中,共有6个car,但是因为我们只召回了2个,所以召回率为30%。

实际多类别分类任务中,我们通常不满足只通过top-5来衡量一个模型的好坏,而是需要知道从top-1到top-N(N是所有测试样本个数,本文中为20)对应的precision和recall。显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线。这个例子的precision-recall曲线如下:

接下来说说AP的计算,此处参考的是PASCAL  VOC  CHALLENGE的计算方法。首先设定一组阈值,[0, 0.1, 0.2, …, 1]。然后对于recall大于每一个阈值(比如recall>0.3),我们都会得到一个对应的最大precision。这样,我们就计算出了11个precision。AP即为这11个precision的平均值。这种方法英文叫做11-point interpolated average precision。​

当然PASCAL VOC CHALLENGE自2010年后就换了另一种计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, ..., M/M),对于每个recall值r,我们可以计算出对应(r' > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。计算方法如下:​

3/6=0.5     4/7=0.5714      5/11=0.4545       6/16 =0.375

 解释一下上边这个图:

1.整张表格还是按照confidence  score排序的;

2.颜色发生变化表示又多了一个recall;(一共6个car,找出来一个recall加1,一共又6种情况)

3.举例说明第四列的意思,

例如:

第1行,recall值为1/6,大于等于这个reacall的情况有20种,top-1到top-20,这20种情况下precision最大的就是top-1时的1,所以第4行为1;

第2行,recall值为2/6,大于等于这个reacall的情况有19种,top-2到top-20,这19种情况下precision最大的就是top-2时的1,所以第4行为1;

第3行,recall值为2/6,大于等于这个reacall的情况有19种,top-2到top-20,这19种情况下precision最大的就是top-2时的1,所以第4行为1;

......

第6行,recall值为3/6,大于这个reacall的情况有15种,top-6到top-20,这15种情况下precision最大的就是top-7时的4/7,所以第4行为4/7;

......

AP就是把这些Max Precision求平均

相应的Precision-Recall曲线(这条曲线是单调递减的)如下:​

AP衡量的是学出来的模型在某个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值