文章目录

  • 准确率、精确率、召回率、P-R曲线图、平衡点、F1 score、Fβ
    • 准确率
    • 精确率
    • negative predictive value(NPV)
    • 召回率
    • true negative rate(TNR)
    • false negative rate(FNR)
    • false positive rate(FPR)
    • false discovery rate(FDR)
    • false omission rate(FOR)
    • P-R曲线图
    • 平衡点
    • F1 score
  • VOC 2007/2010中AP和mAP的计算方式
  • VOC 2010中AP计算实例
  • COCO数据集中AP的计算方式

准确率、精确率、召回率、P-R曲线图、平衡点、F1 score、Fβ

           预测为真       预测为假
真实为真    TP(真正例)    FN(假反例)
真实为假    FP(假正例)    TN(真反例)

准确率

Accuracy=TP+TNAllSamplesAccuracy=\frac{TP+TN}{\text {AllSamples}} Accuracy=AllSamplesTP+TN​

精确率

又叫positive predictive value(PPV)。
对正类的精确率公式:
PPV=TPTP+FPPPV=\frac{T P}{T P+F P} PPV=TP+FPTP​
即预测为真的样本中有多少实际为真。

negative predictive value(NPV)

NPV=TNTN+FNNPV=\frac{T N}{T N+F N} NPV=TN+FNTN​
即预测为假的样本中有多少实际为假。

召回率

又叫true positive rate(TPR)。
对正类的召回率公式:
TPR=TPTP+FNTPR=\frac{T P}{T P+F N} TPR=TP+FNTP​
即真实为真的样本中有多少被预测为真。

true negative rate(TNR)

TNR=TNTN+FPTNR=\frac{T N}{T N+F P} TNR=TN+FPTN​
即真实为假的样本中有多少被预测为假。

false negative rate(FNR)

TNR=FNTP+FN=1−TPRTNR=\frac{F N}{T P+F N}=1-TPR TNR=TP+FNFN​=1−TPR
即真实为真的样本中有多少被预测为假。

false positive rate(FPR)

FPR=FPFP+TN=1−TNRFPR=\frac{F P}{F P+T N}=1-TNR FPR=FP+TNFP​=1−TNR
即真实为假的样本中有多少被预测为真(一个非常常用的指标)。

false discovery rate(FDR)

FDR=FPFP+TP=1−PPVFDR=\frac{F P}{F P+T P}=1-PPV FDR=FP+TPFP​=1−PPV
即预测为真的样本里有多少实际为假。

false omission rate(FOR)

FOR=FNFN+TN=1−NPVFOR=\frac{F N}{F N+T N}=1-NPV FOR=FN+TNFN​=1−NPV
即预测为假的样本里有多少实际为真。

P-R曲线图

一般来说,我们希望精确率和召回率同时越高越好,然而精确率和召回率是一对矛盾的度量,一个高时另一个就会偏低。我们可以做出P-R曲线图来表示精确率和召回率的关系。
如果一个学习器的P-R曲线被另一个学习器的P-R曲线包围,则可以断言后面的学习器要好些;如果两个曲线有交叉,一个比较合理的判据是比较两个曲线与x轴和y轴围成的面积的大小,但这个面积不好计算。

平衡点

上面说了曲线与x轴和y轴围城的面积不好计算,因此我们就找一个准确率=召回率的值,这个值称为平衡点。

F1 score

F1是准确率和召回率的调和平均数,即
1F1=12×(1P+1R)\frac{1}{F 1}=\frac{1}{2} \times\left(\frac{1}{P}+\frac{1}{R}\right) F11​=21​×(P1​+R1​)
可写为
F1=2PRP+RF 1=\frac{2 P R}{P+R} F1=P+R2PR​
如果我们对P和R的权重不同,可以将上式稍作变形,得到Fβ公式:

Fβ是准确率和召回率的加权调和平均数,即:
1Fβ=11+β2×(1P+β2R)\frac{1}{F_{\beta}}=\frac{1}{1+\beta^{2}} \times\left(\frac{1}{P}+\frac{\beta^{2}}{R}\right) Fβ​1​=1+β21​×(P1​+Rβ2​)
Fβ=(1+β2)PRβ2P+RF_{\beta}=\frac{\left(1+\beta^{2}\right) P R}{\beta^{2} P+R} Fβ​=β2P+R(1+β2)PR​

VOC 2007/2010中AP和mAP的计算方式

首先使用目标检测模型计算检出的所有样本对某一个类的置信度(confidence)和回归框坐标。然后,我们计算每一个检测样本的回归框坐标与样本的真值框(ground truth)的IOU,如果大于0.5,则置该样本的ground truth label为1,否则为0;
然后我们将所有检测到的样本按照置信度从大到小排序;
接下来的计算方式分两种:

  1. 对于VOC 2007数据集,设定一组recall阈值,[0, 0.1, 0.2, …, 1]。然后对于每个recall阈值,都对应着很多种top取法(比如TOP1,TOP5),每个recall值对应的多种top取法中(包括等于此recall的取法)有一个最大的precision。这样,我们就计算出了11个最大precision。AP即为这11个最大precision的平均值。这种方法英文叫做11-point interpolated average precision。​
  2. 对于VOC 2010以后的数据集,采用了一种新的计算方法。假设检测到的N个样本中有M个样本的ground truth label为1(即正例),那么我们会得到M个recall值(1/M, 2/M, …, M/M)。对于每个recall值,都对应着很多种top取法(比如TOP1,TOP5),每个recall值对应的多种top取法中(包括等于此recall的取法)有一个最大的precision,把每种recall对应最大的precision求和取平均值即为AP的值。

AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏。在得到每个类别上的AP后,我们只需要取所有AP的平均值就得到mAP的值。

VOC 2010中AP计算实例

该举例使用的是VOC 2010以后的数据集的计算方法。
假如共有10个类,现在有20个样本,现在判断每个样本为其中一类car的置信度(confidence)如下表所示,降序排列。ground_truth_label=1即预测样本的回归框与真实框的IOU大于0.5,ground_truth_label=0则预测样本的回归框与真实框的IOU小于等于0.5。

id    confidence    ground_truth_label
4        0.91        1
2        0.76        1
13       0.65        0
19       0.46        0
6        0.45        0
9        0.38        1
16       0.24        1
1        0.23        0
18       0.23        0
5        0.13        0
7        0.12        1
15       0.12        0
10       0.11        0
17       0.1         0
12       0.09        0
20       0.08        1
14       0.07        0
8        0.03        0
11       0.03        0
3        0.01        0

从表中ground_truth_label可以看出有6个正例,14个负例。VOC 2010及之后的数据集计算AP的方式是:假设N个样本中有M个正例,如上表我们N是20,M是6,则有6种recall值,分别为1/6,2/6,3/6,4/6,5/6,6/6。对于每个recall值,都对应着多种top的取法对应的precision和recall。每个recall值对应的多种top取法中(包括等于此recall的取法)有一个最大的precision,把每种recall对应最大的precision求和取平均值即为AP的值。

我们先以top5取法为例:

id    confidence    ground_truth_label
4        0.91        1
2        0.76        1
13       0.65        0
19       0.46        0
6        0.45        0

top5样本中id为4和2的样本被判定为正类,id为13、19、6的样本被判定为负类(这个判定是根据ground_truth_label判定的)。
除了top-5之外还剩下15个样本:

9        0.38        1
16       0.24        1
1        0.23        0
18       0.23        0
5        0.13        0
7        0.12        1
15       0.12        0
10       0.11        0
17       0.1         0
12       0.09        0
20       0.08        1
14       0.07        0
8        0.03        0
11       0.03        0
3        0.01        0

这15个样本中的正类为id为9、16、7、20四个样本,负类为id为1、18、5、15、10、17、12、14、8、11、3共11个样本。
那么,计算top5中的Precision=2/5=40%,即对于car这一类别,我们选定的top5个样本中,其中正例有2个,即准确率为40%;
Recall=2/6,即在所有20个测试样本中,共有6个car,但是我们只召回了2个,所以召回率为2/6。

按照上面的计算方法,我们可以得到一个不同recall阈值下的top1-topN下的Precision和每个recall阈值下的最大Precision:

top-N    Precision    Recall(r)    Max Precision for any Recall r'>=r
1        1/1          1/6            1
2        2/2          2/6            1
3        2/3          2/6            1
4        2/4          2/6            1
5        2/5          2/6            1
6        3/6          3/6            3/6
7        4/7          4/6            4/7
8        4/8          4/6            4/7
9        4/9          4/6            4/7
10       4/10         4/6            4/7
11       5/11         5/6            5/11
12       5/12         5/6            5/11
13       5/13         5/6            5/11
14       5/14         5/6            5/11
15       5/15         5/6            5/11
16       6/16         6/6            6/16
17       6/17         6/6            6/16
18       6/18         6/6            6/16
19       6/19         6/6            6/16
20       6/20         6/6            6/16

以recall阈值为2/6为例,我们可以得到recall值在2/6的top范围是top2-top5,这其中的最大Precision为1,故recall=2/6时对应的最大Precision为1。其余recall值为1/6,3/6,4/6,5/6,6/6各自也可以求得对应的最大Precision。

最后,我们将所有的最大Precision取平均值,即为AP的值。

COCO数据集中AP的计算方式

VOC2007/2010数据集在判断预测样本回归框是否正确时用的是IOU>0.5即认为是正样本,但是COCO数据集要求IOU阈值在[0.5, 0.95]区间内每隔0.05取一个值,这样就可以计算出10个类似于VOC数据集中的AP,然后这10个值求平均值即为最后的AP。许多论文中的写法是AP@[0.5:0.95]。

AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏。在得到每个类别上的AP后,我们只需要取所有AP的平均值就得到mAP的值。

深度学习各类性能指标含义解释相关推荐

  1. 深度学习各类优化器详解(动量、NAG、adam、Adagrad、adadelta、RMSprop、adaMax、Nadam、AMSGrad)

    深度学习梯度更新各类优化器详细介绍 文章目录 <center>深度学习梯度更新各类优化器详细介绍 一.前言: 二.梯度下降变形形式 1.批量归一化(BGD) 2.随机梯度下降(SGD) 3 ...

  2. 第五章(1.1)深度学习——神经网络相关名词解释

    一.前言 很多人认为深度学习很枯燥,大部分情况是因为对深度学习的学术词语,特别是专有名词很困惑,即便对相关从业者,亦很难深入浅出地解释这些词语的含义. 人工智能,深度学习,机器学习-无论你在做什么,如 ...

  3. lime 深度学习_用LIME解释机器学习预测并建立信任

    lime 深度学习 It's needless to say: machine learning is powerful. 不用说:机器学习功能强大. At the most basic level, ...

  4. 深度学习-各类梯度下降优化算法回顾

    本文是根据 链接 进行的翻译,回顾了深度学习的各种梯度下降优化算法.*已获得原作者的翻译许可. 文章目录 一.概述 二.引言 三.Gradient Descent Variants(梯度下降法变体) ...

  5. 标签平滑深度学习:Google Brain解释了为什么标签平滑有用以及什么时候使用它(SOTA tips)​...

    点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 作者:Less Wright 编译:ronghuaiyang 导读 标签平滑算是 ...

  6. 【深度学习】——性能指标(ROC、MAP、AUC等)

    目录 一.分类任务性能指标 1.混淆矩阵 2.精确度ACCURACY = 正确数/总数 3.查全率(RECALL)--真正正样本中预测正确的比例 4.查准率(precision)--预测为正样本中的预 ...

  7. 深度学习中Embedding的解释

    转载于https://zhuanlan.zhihu.com/p/164502624 什么是Embedding? 近年来,NLP自然语言处理.推荐系统,以及计算机视觉已成为目前工业界算法岗的主流方向,无 ...

  8. backbone、head、neck等深度学习中的术语解释

    1.Backbone backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思. 在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的in ...

  9. 深度学习: ground truth 解释

    一.解释一 就是参考标准,一般用来做error quantification 比方说要根据历史数据预测某一时间的温度,ground truth就是那个时间的真实温度. error就是(predicte ...

最新文章

  1. CentOS/Linux 卸载MATLAB
  2. mysql根据ID的顺序查找_求救:mysql 如何根据给定的 ID顺序查找结果?
  3. SQL 审核:基于PG数据库插件hook的SQL规范审核工具
  4. CentOS配置ssh无密码登录的注意点
  5. mysql相交_PHP-Mysql相交结果
  6. 细胞增殖曲线_【音频】第6章 细胞的生命历程 第1节 细胞的增殖
  7. 用c#算成绩的总和_用c#输入几门课程成绩求总成绩和平均成绩,定义方法实现如果输入的成绩不是整数,则重新输入(方法)...
  8. “好烦!自拒修电脑后,妹子又约我学机器学习,咋办?”
  9. 怎么卸载mysql2008_SQL Server 2008怎么卸载?SQL Server 2008完全卸载教程
  10. WebDriver Selenium eclipse环境搭建
  11. 易语言钩子DLL注入源码及源码说明
  12. pid纠偏算法C语言,基于MATLAB环境下智能PID纠偏控制算法的仿真分析.pdf
  13. 根据两点经纬度计算方位角
  14. blender2.8设置玻璃材质
  15. 计算机程序设计论文2万字,【程序设计论文】核心素养下的计算机程序设计教学(共4049字)...
  16. phpcms上传图片去除水印
  17. vue-cli项目配置文件分析
  18. 【Qt】一文总结Qt5.15的在线安装
  19. android_基础_Edittext的setSelection属性
  20. 【项目】danmu punish启动

热门文章

  1. 怎么用电脑制作证件照?使用这个工具就可以了
  2. 前端学习笔记:CSS学习之选择器篇
  3. 群晖DSM7.0设置群晖NAS域名外网访问
  4. 一个玩游戏的失足青年,转行做软件开发的挣扎过程(1)
  5. 或门,OR Gate
  6. 各种博客的代码高亮是如何实现的
  7. 计算机用word做海报,如何用Word文档做出一张简单的海报!
  8. kodi安卓4.0版及中文插件安装方法
  9. coso全称是什么_京东方全称是什么
  10. 模拟量输入、输出应用举例