美文网首页
深度学习 | 分类模型评价指标

深度学习 | 分类模型评价指标

作者: _zilch | 来源:发表于2020-04-20 23:22 被阅读0次

    在深度学习领域,常用的评价指标:
    准确率 (Accuracy),混淆矩阵 (Confusion Matrix),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交并比(IoU),ROC + AUC,非极大值抑制(NMS)。
    在了解这些指标之前,我们需要明白一下定义(通俗语言解释):
    假设被检测物体为汽车;

    • TP (True Positive):被正确检测为汽车;
    • FP(False Positive):被错误检测为汽车(实际不是汽车);
    • FN(False Negative):未被检测为汽车,实际是汽车(错误检测);
    • TN(True Negative):正确检测不是汽车;(基本不会使用)

    请记住:P(Positive)N(Negative)代表模型的判断结果T(True)F(False)评价模型的判断结果是否正确
    在图像分类任务中,判断的正确与否很好区分,在目标检测任务中,可以这样理解:

    • TP (True Positive):一个正确的检测,检测的IOU ≥ threshold。即预测的边界框(bounding box)中分类正确且边界框坐标正确的数量。
    • FP (False Positive):一个错误的检测,检测的IOU < threshold即预测的边界框中分类错误或者边界框坐标不达标的数量,即预测出的所有边界框中除去预测正确的边界框,剩下的边界框的数量。
    • FN (False Negative):一个没有被检测出来的ground truth。所有没有预测到的边界框的数量,即正确的边界框(ground truth)中除去被预测正确的边界框,剩下的边界框的数量。

    1. 准确率

    准确率(Accuracy),所有预测正确的样本 / 总的样本:
    Accuracy=\frac{TP+TN}{TP+FP+TN+FN}
    准确率一般用来评估模型的全局准确程度,不能包含太多信息,无法全面评价一个模型性能。

    2. 精确率

    精确率(precision),也称为查准率,准确率是模型只找到相关目标的能力。通俗来说,你认为的正样本,有多少猜对了(猜的准确性如何),精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。准确率可以反映一个类别的预测正确率 。
    Precision=\frac{TP}{TP+FP}

    3. 召回率

    召回率(recall),也称为查全率,是模型找到所有相关目标的能力,即模型给出的预测结果最多能覆盖多少真实目标。通俗解释:正样本有多少被找出来了(召回了多少),召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
    Recall=\frac{TP}{TP+FN}
    区分好召回率和精确率的关键在于:针对的数据不同,召回率针对的是数据集中的所有正例,精确率针对的是模型判断出的所有正例
    一般来说,对于多分类目标检测的任务,会分别计算每个类别的TP、FP、FN数量,进一步计算每个类别的Precision、Recall。

    4. F-值

    F1是基于精确率和召回率的调和平均,又称为F-Score
    \frac{1}{F_1}=\frac{1}{2}\cdot (\frac{1}{P}+\frac{1}{R})

    F1=\frac{2\times P\times R}{P+R}=\frac{2TP}{2TP+FP+FN}

    5. PR曲线

    准确率和召回率是互相影响的,因为如果想要提高准确率就会把预测的置信率阈值调高,所有置信率较高的预测才会被显示出来,而那一些正确正预测(True Positive)可能因为置信率比较低而没有被显示了。一般情况下准确率高、召回率就低,召回率低、准确率高,如果两者都低,就是网络出问题了。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率。
    如果一个分类器的性能比较好,那么它应该有如下的表现:在Recall值增长的同时,Precision的值保持在一个很高的水平。而性能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。
    PR曲线(Precision x Recall curve),所有precision-recall点相连形成的曲线(一般会为每个类别的预测框建立各自的PR曲线)。通常情况下,文章中都会使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

    PR曲线.png

    通常,P,R均是针对一组测试集而言,因此PR曲线也是针对一组测试集而言。假如模型针对某一目标种类,测试集为5张图片,有以下预测结果。其中总共预测出9个目标,实际目标有6个。P,R计算以及PR曲线绘制如下:

    pr-.jpg

    6. AP、mAP

    平均精度(Average-Precision,AP),就是Precision-recall 曲线下面的面积,通常来说一个越好的分类器,AP值越高。
    mean Average Precision(mAP),是所有类别AP的平均值。这个mean的意思是对每个类的AP求和再求平均,得到的就是mAP的值。mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。

    7. IoU

    交并比(Intersection-over-Union,IoU),是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值

    Iou.png

    \text {IoU}=\frac{C\cap G}{C\cup G}

    IoU正是表达这种bounding boxgroundtruth的差异的指标。最理想情况是完全重叠,即比值为1。

    8. ROC曲线

    ROC(Receiver Operating Characteristic)曲线,曲线的横坐标为假正例率(FPR),纵坐标为TPR(真正例率)
    FPR=\frac {FP}{FP+TN}

    TPR=\frac {TP}{TP+FN}=Recall

    AUC (Area under Curve):即ROC曲线下的面积,介于0.1和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。
    ROC曲线也需要相应的阈值才可以进行绘制,原理同上的PR曲线。下图为ROC曲线示意图,因现实任务中通常利用有限个测试样例来绘制ROC图,因此应为无法产生光滑曲线,如右图所示。

    roc&auc.jpg
    • ROC曲线图中的四个点
      第一个点:(0,1),即FPR=0, TPR=1,这意味着FN=0,并且FP=0。这是完美的分类器,它将所有的样本都正确分类。
      第二个点:(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
      第三个点:(0,0),即FPR=TPR=0,即FP=TP=0,可以发现该分类器预测所有的样本都为负样本(negative)。
      第四个点:(1,1),分类器实际上预测所有的样本都为正样本。
      经过以上的分析,ROC曲线越接近左上角,该分类器的性能越好。

    9. 非极大值抑制(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次。

    相关文章

      网友评论

          本文标题:深度学习 | 分类模型评价指标

          本文链接:https://www.haomeiwen.com/subject/hwteihtx.html