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

  • 相关阅读:
    IOS上传图片方向问题
    在线抠图的小工具
    Notion笔记工具免费开通教育许可
    多国正在遭遇新型勒索病毒Petya侵袭
    UC 网盘:我又回来了
    数字统计
    Hello,World!
    Unity开发笔记-Timeline利用Clip实现Rewind回放
    Unity开发笔记-Timeline利用Single实现Rewind回放
    Unity开发笔记-PSD自动导出UGUI工具开发要点记录(1)PSD树形结构解析
  • 原文地址:https://www.cnblogs.com/jimchen1218/p/12100746.html
Copyright © 2011-2022 走看看