zoukankan      html  css  js  c++  java
  • 深度学习常用的模型评估指标

        科学家门捷列夫曾经说过“没有测量,就没有科学”

        在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要。只有选择与问题相匹配的评估方法,我们才能够快速的发现在模型选择和训练过程中可能出现的问题,迭代地对模型进行优化。

        本文总结了机器学习常见的模型评估指标,其中包括:

    1、Precision

    2、Recall

    3、PRC

    4、F1-Score

    5、ROC和AUC

    6、IOU

    7、Ap和mAp

    8、Inception score

    在讨论这些评估指标之前,先了解下什么是混淆矩阵。

    打个比方:

        假定瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别,显然我们可以使用错误率来衡量有多少比例的瓜被判别错误。但如果我们关心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑出来了”,那么错误率显然就不够用了,这时我们需要引入新的评估指标,比如“查准率”和查全率更适合此类需求的性能度量。

         

    上图中a就是混淆矩阵,b就是由混淆矩阵推出的一些评估指标。

    下面对混淆矩阵的四个值进行总结性讲解:

    • True Positive (真正,TP)被模型预测为正的正样本
    • True Negative(真负 , TN)被模型预测为负的负样本
    • False Positive (假正, FP)被模型预测为正的负样本
    • False Negative(假负 , FN)被模型预测为负的正样本

    1、Precision(查准率或者是精确率)

    查准率Precision=TP/(TP+FP),表示的是召回为正样本的样本中,到底有多少是真正的正样本。

    2、Recall(查全率)

    查全率(Recall)Recall=TP/(TP+FN),表示的是有多少样本被召回类。

    查准率和查全率是一对矛盾的度量,一般而言,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使查全率和查准率都很高。

    3、PRC

    全称就是Precision Recall Curve,它以查准率为Y轴,、查全率为X轴做的图。它是综合评价整体结果的评估指标。所以,哪个类型(正或者负)样本多,权重就大。也就是说『对样本不均衡敏感』,『容易被多的样品带走』。

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

    4、F1-Score

    有时关注的不仅仅是正样本的准确率,也关心其召回率,但是又不想用Accuracy来进行衡量,一个折中的指标是采用F-score。

    它是一个综合考虑precision和recall的指标,只有在召回率Recall和精确率Precision都高的情况下,F1 score才会很高,比BEP更为常用。

    5、ROC和AUC

    ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,ROC曲线以“真正例率”(TPR)为Y轴,以“假正例率”(FPR)为X轴,对角线对应于“随机猜测”模型,而(0,1)则对应“理想模型”。ROC形式如下图所示。

     

    其中有4个关键的点:

    点(0,0):FPR=TPR=0,分类器预测所有的样本都为负样本;

    点(1,1):FPR=TPR=1,分类器预测所有的样本都为正样本;

    点(0,1):FPR=0, TPR=1,此时FN=0且FP=0,所有的样本都正确分类;

    点(1,0):FPR=1,TPR=0,此时TP=0且TN=0,最差分类器,避开了所有正确答案。

    TPR和FPR的定义如下:

    TPR就是我们上面提到的查全率Recall,而FPR的含义就是:所有确实为“假”的样本中,被误判真的样本。

    若要进行比较,那么可以比较ROC曲线下的面积,即AUC,面积大的曲线对应的分类器性能更好。AUC(Area Under Curve)的值为ROC曲线下面的面积,若分类器的性能极好,则AUC为1。但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好。若AUC真的小于0.5,请检查一下是不是好坏标签标反了,或者是模型真的很差。

    以上讨论的是分类任务中的评价指标,接下来这个是目标检测任务中常用的评价指标

    6、IOU

    交并比

    举个例子:

    下图绿色框是感兴趣区域,红色框是预测区域,这种情况下交集确实是最大的,但是红色框并不能准确预测物体位置。因为预测区域是试图覆盖目标物体而不是正好预测物体位置。这时如果我们能除以一个并集的大小,就可以规避这种问题。这就是IOU要解决的问题了。

    IOU:预测框与标注框的交集与并集之比,数值越大表示该检测器的性能越好。

    使用IOU评价指标后,上面提到的问题就能得到有效解决:我们控制并集不要让并集太大,对准确预测是有益的,这就有效抑制了“一味地追求交集最大”的情况的发生。下图的2,3小图就是目标检测效果比较好的情况。

    7、Ap和mAp

    Average Precision简称AP,这是一个在检索任务和回归任务中经常使用的指标,实际等于Precision-Recall曲线下的面积。

    假如一幅图像,有10个人脸,检索出来了20个目标框,每一个目标框的概率以及真实的标签如下,真实标签的计算就用检测框与真实标注框的IoU是否大于0.5来计算。

    第一步,就是根据模型得到概率,计算IoU得到下面的表:

     

    第二步,将上面的表按照概率进行排序

     

    Precision的计算如下,以返回的top-5结果为例:

     

    在这个例子中,true positives就是真正的人脸,从Label一栏可以看出,指的是id = 4,2,7,9,16,20的样本。

    前5个概率值最大的id中13,19,6是false positives。所以此时的Precision=2/5=40%,即选定了5个人脸,但是只有两个是对的。recall=2/6=33.3%,即总共有6个人脸,但是只召回了2个。

    在一个实际的目标检测任务中,目标的数量不一定是5个,所以不能只通过top-5来来衡量一个模型的好坏,选定的id越多,recall就越高,precision整体上则会呈现出下降趋势,因为排在前面的概率高的,一般更有可能是真实的样本,而后面概率低的更有可能是负样本。

    令N是所有id,如果从top-1到top-N都统计一遍,得到了对应的precision和recall,以recall为横坐标,precision为纵坐标,则得到了检测中使用的precision-recall曲线,虽然整体趋势和意义与分类任务中的precision-recall曲线相同,计算方法却有很大差别。

    PASCAL VOC 2010年提出了mAP,对于样本不均衡的类的计算更加有效。假设有N个id,其中有M个label,则取M个recall节点,从0到1按照1/M的等间距,对于每个recall值,计算出大于该recall值的最大precision,然后对这M个precision值取平均得到最后的AP值,mAP的计算方法不变。

    AP衡量的是学出来的模型在一个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏。

    8、Inception score

    图像生成评价指标,有两个重要指标

    1、确定性,2、多样性

    Inception图像分类模型预测结果是一个softmax后的向量,即概率分布p(y|x)。一个好的分类模型,该向量分布的熵应该尽可能地小,也就是样本必须明确符合某一个类,其中的一个值很大,剩下的值很小。另外,如果把softmax后的向量组合并在一起形成另一个概率分布p(y),为了满足多样性,这个分布的熵应该是越大越好,也就是各种类别的样本都有。

    具体实现就是让p(y|x)和p(y)之间的KL散度越大越好,连续形式的表达如下:

     

    实际的计算就是将积分换成求和:

     

    Inception Score是一个非常好的评价指标,它同时评估生成图像的质量和多样性,前段时间大火的BigGAN,就是将Inception Score提升为原来最好模型的3倍不止。

    不过Inception Score也有缺陷,因为它仅评估图像生成模型,没有评估生成的图像与原始训练图像之间的相似度,因此虽然鼓励模型学习了质量好,多样性好的图像,但是却不能保证是我们想要的图像。Mode分数对其进行了改进,增加了KL散度来度量真实分布P_r与生成分布P_g之间的差异。

    2.Kernel MMD

    最大平均差异maximum mean discrepancy Kernel也是一个用于判断两个分布p和q是否相同的指标。它的基本假设就是如果两个样本分布相似,那么通过寻找在样本空间上的连续函数f,求不同分布的样本f函数的均值,计算均值的差作为两个分布在f函数下的平均差异,选择其中最大值就是MMD。

    对于深度学习任务来说,可以选择各种预训练模型的特征空间,比如性能很好的ResNet。MMD方法的样本复杂度和计算复杂度都比较低,不过是有偏的,关键就在于用于选择的函数空间是否足够丰富。

    参考链接:

    1、https://www.cnblogs.com/skyfsm/p/8467613.html

    2、https://www.cnblogs.com/tectal/p/10870064.html

  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/jimchen1218/p/12100746.html
Copyright © 2011-2022 走看看