关于深度学习的评价指标的概念与理解

        在深度学习中我们经常会遇到一下评价指标,但是有时候却又很模糊,不能彻底的理解其中的含义与作用,下面就常用的几个评价指标作一些阐述与理解。

        我们常见的评价指标大概有下面的几种:混淆矩阵 (Confusion Matrix),准确率 (Accuracy),精确率(Precision),召回率(Recall),平均精确度(AP), 平均精度均值 mean Average Precision(mAP),交并比(IoU),ROC + AUC,非极大值抑制(NMS)。下面我们进行一一学习与了解。

1、混淆矩阵 (Confusion Matrix)

         混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。混淆矩阵中的横轴是模型预测的类别数量统计,纵轴是数据真实标签的数量统计。对角线表示模型预测和数据标签一致的数目,所以对角线之和除以测试集总数就是准确率。对角线上数字越大越好,在可视化结果中颜色越深,说明模型在该类的预测准确率越高。如果按行来看,每行不在对角线位置的就是错误预测的类别。总的来说,我们希望对角线越高越好,非对角线越低越好。对于二分类问题,真实的样本标签有两类,我们学习器预测的类别有两类,那么根据二者的类别组合可以划分为四组,如下表所示:

混淆矩阵

真实值

Positive

Negative

 预测值

Positive

TP

FP  (Type II Error)

Negative

FN  (Type II Error)

TN

由此,我们就能得到下面的四个基础指标,我称他们是一级指标(最底层的)这些指标是基于二分类的任务,也可以拓展到多分类:

标签为正样本,分类为正样本的数目为True Positive,简称TP;

标签为正样本,分类为负样本的数目为False Negative,简称FN;这就是统计学上的第一类错误(Type I Error)

标签为负样本,分类为正样本的数目为False Positive,简称FP;这就是统计学上的第二类错误(Type II Error)

标签为负样本,分类为负样本的数目为True Negative,简称TN。

        判别是否为正例只需要设一个概率阈值T,预测概率大于阈值T的为正类,小于阈值T的为负类,默认就是0.5。如果我们减小这个阀值T,更多的样本会被识别为正类,这样可以提高正类的召回率,但同时也会带来更多的负类被错分为正类。如果增加阈值T,则正类的召回率降低,精度增加。如果是多类,比如ImageNet1000分类比赛中的1000类,预测类别就是预测概率最大的那一类。

混淆矩阵的指标:

        预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。所以当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三象限对应位置出现的观测值肯定是越少越好。

2、准确率 (Accuracy)、精确率(Precision)、召回率(Recall)

(1)  准确率 (Accuracy)

    单标签分类任务中每一个样本都只有一个确定的类别,预测到该类别就是分类正确,没有预测到就是分类错误,因此最直观的指标就是Accuracy,也就是准确率。

该公式表示的就是所有样本都正确分类的概率,可以使用不同的阈值T。

在ImageNet中使用的Accuracy指标包括Top_1 Accuracy和Top_5 Accuracy,Top_1 Accuracy就是前面计算的Accuracy。

记样本xi的类别为yi,类别种类为(0,1,…,C),预测类别函数为f,则Top-1的计算方法如下:

如果给出概率最大的5个预测类别,只要包含了真实的类别,则判定预测正确,计算出来的指标就是Top-5。目前在ImageNet上,Top-5的指标已经超过95%,而Top-1的指标还在80%左右。

(2)精确率(Precision)、召回率(Recall)

如果只考虑正样本的指标,有两个很常用的指标,精确率和召回率。

(Precision指标在中文里可以称为查准率或者是精确率,Recall指标在中文里常被称为查全率或者是召回率。)

精确率(Precision)是指在所有系统判定的“真”的样本中,确实是真的的占比。

召回率(Recall)是指在所有确实为真的样本中,被判为的“真”的占比。

(如果对负样本感兴趣的,也可以计算对应的精确率和召回率,这里记得区分精确率和准确率的分别。)

        准确率和召回率是相互影响的,因为如果想要提高准确率就会把预测的置信率阈值调高,所有置信率较高的预测才会被显示出来,而那一些正确预测(True  Positive)可能因为置信率比较低而没有被显示了。一般情况下准确率高、召回率就低,召回率低、准确率高,如果两者都低,就是网络出问题了。一般情况,用不同的阈值,统计出一组不同阈值下的精确率和召回率,这时候就可以画出Precision-recall 曲线如下图:

关于深度学习的评价指标的概念与理解_第1张图片

        横轴就是recall,纵轴就是precision,曲线越接近右上角,说明其性能越好,可以用该曲线与坐标轴包围的面积来定量评估,值在0~1之间。

  如果一个分类器的性能比较好,那么它应该有如下的表现:在Recall值增长的同时,Precision的值保持在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。通常情况下,文章中都会使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

3、F1-score、平均精确度(AP), 平均精度均值 mean Average Precision(mAP)

        在上一小节中的P-R图中,它能直观地显示出学习器在样本总体上的精确率(查准率召回率(查全率,显然它是一条总体趋势是递减的曲线。在进行比较时,若一个学习器的PR曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者,比如上图中A优于C。但是B和A谁更好呢?因为AB两条曲线交叉了,所以很难比较,这时比较合理的判据就是比较PR曲线下的面积,该指标在一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例。因为这个值不容易估算,所以人们引入“平衡点”(BEP)来度量,他表示“精确率=召回率”时的取值,值越大表明分类器性能越好,以此比较我们一下子就能判断A较B好。

BEP还是有点简化了,更常用的是F1度量:

F1-score 就是一个综合考虑precision和recall的指标,比BEP更为常用。

而上面提到的Precision-Recall曲线下的面积即为平均精确度Average Precision简称AP,这是一个在检索任务和回归任务中经常使用的指标,通常来说一个越好的分类器,AP值越高。

mAP是多个类别AP的平均值。这个mean的意思是对每个类的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。计算公式如下:

影响mAP的因素

一般来说影响mAP的原因有很多,主要以下几个:

        1、不好的训练数据

        2、训练数据不够多

        3、标注的框不够准确

        4、数据的多变性

有的时候增加训练数据可能mAP并不会增加多少。当然了,使用表现更好的网络,其mAP自然地也会更加的高。

4、交并比(IoU)

       IoU 即交并比 即 Intersection-over-Union,是目标检测中使用的一个概念,是一种测量在特定数据集中检测相应物体准确度的一个标准。

为了用IoU指标来评估目标检测器,我们需要:ground-truth bounding boxes和我们训练好的模型预测的bounding boxes。下图是一个示例。图中绿色框为Ground-truth bounding box,红色框为预测框,我们的目标是计算它们的IoU。

关于深度学习的评价指标的概念与理解_第2张图片

计算IoU的公式如下,可以看到IoU是一个比值,即交并比。在分子中,我们计算预测框和ground-truth之间的重叠区域;分母是并集区域,或者更简单地说,是预测框和ground-truth所包含的总区域。重叠区域和并集区域的比值,就是IoU。

关于深度学习的评价指标的概念与理解_第3张图片

为什么使用IoU来评估目标检测器:

        与分类任务不同,我们预测的bounding box的坐标需要去匹配ground-truth的坐标,而坐标完全匹配基本是不现实的。因此,我们需要定义一个评估指标,奖励那些与ground-truth匹配较好(重叠较大)的预测框。

关于深度学习的评价指标的概念与理解_第4张图片

        上图展示了IoU的好坏对比,与ground-truth bounding boxes 重叠比例更大的预测边界框比重叠较少的边界框具有更高的分数,这使得IoU成为评估目标检测器的极佳指标。我们并不关心(x,y)坐标的精确匹配,但我们确实希望确保我们预测的边界框尽可能匹配——IoU可以做到这一点。

5、ROC & AUC(只能用于二分类)

ROC(Receiver Operating Characteristic)曲线与AUC(Area Under Curve)

关于深度学习的评价指标的概念与理解_第5张图片

ROC曲线:

  • 横坐标:假正率(False positive rate, FPR),

       代表所有负样本中错误预测为正样本的概率,假警报率;

  • 纵坐标:真正率(True positive rate, TPR),
  • 代表所有正样本中预测正确的概率,命中率。

        对角线对应于随机猜测模型,而(0,1)对应于所有整理排在所有反例之前的理想模型。曲线越接近左上角,分类器的性能越好。

        ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

ROC曲线绘制:

  (1)根据每个测试样本属于正样本的概率值从大到小排序;

  (2)从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本;

  (3)每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。 

   当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

ROC曲线特点:

  (1)优点:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。

      在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

  (2)缺点:上文提到ROC曲线的优点是不会随着类别分布的改变而改变,但这在某种程度上也是其缺点。因为负例N增加了很多,而曲线却没变,这等于产生了大量FP。像信息检索中如果主要关心正例的预测准确性的话,这就不可接受了。在类别不平衡的背景下,负例的数目众多致使FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。ROC曲线的横轴采用FPR,根据FPR ,当负例N的数量远超正例P时,FP的大幅增长只能换来FPR的微小改变。结果是虽然大量负例被错判成正例,在ROC曲线上却无法直观地看出来。(当然也可以只分析ROC曲线左边一小段)

PR曲线:

  PR曲线使用了Precision,因此PR曲线的两个指标都聚焦于正例类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线

        进行学习器比较时,与PR图相似,若一个学习器的ROC曲线被另一个学习器的曲线包住,那么我们可以断言后者性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性断言两者孰优孰劣。此时若要进行比较,那么可以比较ROC曲线下的面积,即AUC,面积大的曲线对应的分类器性能更好。

(2)AUC

        AUC(Area Under Curve)的值为ROC曲线下面的面积,若分类器的性能极好,则AUC为1。但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好,上图AUC为0.81。若AUC=0.5,即与上图中虚线重合,表示模型的区分能力与随机猜测没有差别。若AUC真的小于0.5,请检查一下是不是好坏标签标反了,或者是模型真的很差。

        物理意义:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

  计算公式:就是求曲线下矩形面积。

 使用场景:

  1. ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
  2. 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合。
  3. 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。
  4. 类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
  5. 最后可以根据具体的应用,在曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,去调整模型的阈值,从而得到一个符合具体应用的模型。

 6、非极大值抑制(NMS)

        NMS即non maximum suppression即非极大抑制,顾名思义就是抑制不是极大值的元素,搜索局部的极大值。在物体检测中,NMS 应用十分广泛,其目的是为了清除多余的框,找到最佳的物体检测的位置。       

        Non-Maximum Suppression就是需要根据score矩阵和region的坐标信息,从中找到置信度比较高的bounding box。对于有重叠在一起的预测框,只保留得分最高的那个。

  (1)  NMS计算出每一个bounding box的面积,然后根据score进行排序,把score最大的bounding box作为队列中首个要比较的对象;

  (2)  计算其余bounding box与当前最大score与box的IoU,去除IoU大于设定的阈值的bounding box,保留小的IoU得预测框;

  (3)  然后重复上面的过程,直至候选bounding box为空。

  最终,检测了bounding box的过程中有两个阈值,一个就是IoU,另一个是在过程之后,从候选的bounding box中剔除score小于阈值的bounding box。需要注意的是:Non-Maximum Suppression一次处理一个类别,如果有N个类别,Non-Maximum Suppression就需要执行N次。


附录:

Detection基础模块之(一)IoU  https://blog.csdn.net/weixin_41278720/article/details/88770034

深度学习模型评估指标    https://www.cnblogs.com/tectal/p/10870064.html

深度学习常用的模型评估指标    https://www.cnblogs.com/skyfsm/p/8467613.html

深度学习常用评价指标    https://blog.csdn.net/qiu_peng/article/details/82895326

机器学习:评价指标:分类问题、回归问题、排序问题    https://blog.csdn.net/weixin_41108334/article/details/84502204

深度学习笔记(八):目标检测性能评价指标(mAP、IOU..)  https://blog.csdn.net/qq_29893385/article/details/81213377

你可能感兴趣的:(深度学习)