这就是神经网络 17:深度学习-评价指标_ROC_mAP

概述

本文主要讲述目标检测指标mAP。主要也是自己做这块有段时间,但是这个指标一直没弄的特别清楚。而且网上很多博客写的并不准确,会给人不少舞蹈,希望自己的文章能帮到别人。

基础知识

true positive, false positive, true negative, false negative

本段参考《目标检测的评价指标》,链接见最下方。
首先解释一下上面四个词:
分类正确的两类:

  • true positive(简称TP):对象本来为正例,网络识别为正例
  • true negative(简称TN):对象本来为负例,网络识别为负例

分类错误的两类:

  • false positive(简称FP):对象本来为负例,网络识别为正例,通常叫误报
  • false negative(简称FN):对象本来为正例,网络识别为负例,通常叫漏报

(来自知乎的一张图)

在这里插入图片描述

这个例子看起来是二分类的分法,实际上多分类同样适用。因为对具体的某一类来说,分类算法都是二分类:要么分对了,要么分错了。每个类都可以单独统计正确率和召回率。

除了分类,目标检测同样可以使用这4种样本分法来统计模型性能。目标检测的预测和ground truth在IOU大于某个阈值(一般是0.5)的情况下,就退化成了分类问题。

什么是 Ground Truth

字面意思就是实际情况,也就是“数据集+标注”。我们可简单理解人工标注。

在统计TP\TN\FP\FN的时候,实际上就有用预测结果和Ground Truth比较。

精度和召回率

precision = TP / (TP + FP),即precision表示的是在识别出的所有正例中,识别正确的正例所占的比例。

recall = TP / (TP + FN),即recall表示的是在样本所有真正的正例中,识别正确的正例所占的比例。

其实下图就可以说明分类的精度和召回率的计算方式:

在这里插入图片描述

换成目标检测,也可以画成下面的样子(下图来自《
目标检测模型的评价指标 mAP》):

在这里插入图片描述

IOU

预测的边框 和 真实的边框 的交集和并集的比例 称为 IoU(Intersection over Union)。这个指标又名 “Jaccard Index”,由 Paul Jaccard 在 19 世纪早期提出。

在这里插入图片描述

在VOC数据集中,一般认为预测的边框和Ground Truth的IOU大于0.5才算预测正确(归为TP)。

ROC曲线

本段参考《ROC曲线 vs Precision-Recall曲线》和《ROC曲线与AUC》

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)。

真正例率 TPR (True Positive Rate):所有正例中,有多少被正确地判定为正。

假正例率 FPR (False Positive Rate):所有负例中,有多少被错误地判定为正。

在这里插入图片描述

其实 TPR 就是 查全率/召回率(recall) 。

分类阈值,即设置判断样本为正例的阈值thr,预测为正样本的概率 P(y=1 | x) >= thr (常取thr=0.5) 则判定样本为正例。

阈值取不同值,TPR和FPR的值也不同,将它们的值画成曲线,就是ROC曲线。

ROC曲线是一个单调曲线,而且肯定经过点(0,0)与(1,1)。ROC曲线距离左上角越近,证明分类器效果越好。

下图来自《The Relationship Between Precision-Recall and ROC Curves》。左图是ROC曲线。

在这里插入图片描述

举个例子,4个正样本,预测为正样本的概率分别是1、0.75、0.5、0.25,当我的阈值分别是0.9、0.6、0.4、0.2的情况下,查全率分别是0.25、0.5、0.75和1。如果样本有限的话,ROC曲线就是台阶一样,单整体是递增的。

人脸检测网络喜欢用ROC来对比性能(注意横轴是吴检数,不是吴检率):

在这里插入图片描述

上述说的都是二分类。对于多分类的问题,可以针对每个类都画出一个ROC,对每个类来说都是二分类(本类和其他类)。

ROC曲线下的面积就是AUC(Area Under the Curve)。AUC用于衡量“二分类问题”机器学习算法的性能。

  • AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • AUC = 0.5,跟随机猜测一样,模型没有预测价值。
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

PRC曲线

PR曲线即Precision-Recall为坐标画出的曲线。

与上面的ROC类似,在调整分类阈值的时候,每个类的精度和召回率都不断变化。ROC是单调曲线,PR曲线不是单调曲线。上面Figure1的图中右侧就是一个PR曲线。

VOC2012图像分类的mAP计算方法

VOC2012中对于AP(Average Precision)的定义需要借助PR曲线,但是PR曲线和原版的PR曲线不同。上面我们说了,PR曲线不是一个单调的曲线,波动很大,而VOC2012把PR曲线定义为一个单调递减的曲线了。

怎么定义的,如下:

Compute a version of the measured precision/recall curve with precision
monotonically decreasing, by setting the precision for recall r to the maximum
precision obtained for any recall r
′ ≥ r.

也就是说,以召回率为横轴,在某个召回率r值上的P值是原版PR曲线r’>=r范围上P的最大值。这样定义之后,PR曲线就变成了一个单调递减的曲线。

有了改善版的PR曲线,就可以定义AP(average precision)了:

Compute the AP as the area under this curve by numerical integration.
No approximation is involved since the curve is piecewise constant.

翻译过来就是对PR曲线下的面积进行积分。当然不是真的积分,因为样本个数都是离散值,分段计算求和就行了。

上面说了,无论是二分类还是多分类,对具体的一个类来说都是二分类。针对每个类都可以计算到一个AP值,对它们求平均就得到了mAP,这个指标可以衡量整个分类器的性能。

在这里插入图片描述

但是mAP毕竟是整体指标,要挑选合适的分类器,还要根据需求看每个类的AP值。

本段内容参考自《The PASCAL Visual Object Classes Challenge
2012 (VOC2012) Development Kit》,链接见文末。

VOC2012 AP定义的变化(相对2010)

《The PASCAL Visual Object Classes Challenge
2012 (VOC2012) Development Kit》这篇文章说AP的定义在2010年变掉了,之前的版本上是分别在0~1(步长为0.1)求11个召回率下精度的平均值。

VOC2012目标检测的mAP计算方法

同样,标准来自《The PASCAL Visual Object Classes Challenge
2012 (VOC2012) Development Kit》这篇文章。

目标检测输出结果不仅有分类,还有bbox。所有正样本的第一个规则就是bbox和ground truth的IOU大于0.5。剩下的和分类的计算方式一样。

总结

本文主要总结了ROC曲线以及AP曲线,最后介绍了VOC中mAP的计算方法。

基本上参考《The PASCAL Visual Object Classes Challenge
2012 (VOC2012) Development Kit》和《The Relationship Between Precision-Recall and ROC Curves》就够了。很多其他的博客写的都不全面。

目前基本看到ROC用在二元分类上比较多(比如人脸检测),mAP用在多类目标检测上比较多。

参考资料

平均精度均值(mAP)——目标检测模型性能统计量

ROC曲线理解

ROC曲线和AUC面积理解

如何理解机器学习和统计中的AUC?

目标检测模型中的性能评估——MAP(Mean Average Precision)

目标检测的评价指标

目标检测一些常用的评价指标

理解目标检测当中的mAP

The PASCAL Visual Object Classes Challenge
2012 (VOC2012) Development Kit

The Relationship Between Precision-Recall and ROC Curves

目标检测模型的评价指标 mAP

ROC曲线 vs Precision-Recall曲线

ROC曲线与AUC

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值