写点什么

深度学习基础入门篇 [二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、ROUGE 等详解 1. 基础指

作者:汀丶
  • 2023-04-06
    浙江
  • 本文字数:5425 字

    阅读完需:约 18 分钟

机器学习的评价指标有精度、精确率、召回率、P-R 曲线、F1 值、TPR、FPR、ROC、AUC 等指标,还有在生物领域常用的敏感性、特异性等指标。


在分类任务中,各指标的计算基础都来自于对正负样本的分类结果,用混淆矩阵表示,如 图 1.1 所示:



  • 准确率


即所有分类正确的样本占全部样本的比例。


  • 精确率


精准率又叫做:Precision、查准率


  • 召回率


召回率又叫:Recall、查全率


即所有正例的样本中,被找出的比例.


  • P-R 曲线¶


P-R 曲线又叫做:PRC



图 2 PRC 曲线图


根据预测结果将预测样本排序,最有可能为正样本的在前,最不可能的在后,依次将样本预测为正样本,分别计算当前的精确率和召回率,绘制 P-R 曲线。


  • F1 值


$\quad F1=\dfrac{2PR}{P+R}\quad\quad$


  • TPR


真正例率,与召回率相同


  • FPR 假正例率


  • ROC


根据预测结果将预测样本排序,最有可能为正样本的在前,最不可能的在后,依次将样本预测为正样本,分别计算当前的 TPR 和 FPR,绘制 ROC 曲线。


  • AUC


Area Under ROC Curve,ROC 曲线下的面积:



  • 敏感性


敏感性或者灵敏度(Sensitivity,也称为真阳性率)是指实际为阳性的样本中,判断为阳性的比例(例如真正有生病的人中,被医院判断为有生病者的比例),计算方式是真阳性除以真阳性+假阴性(实际为阳性,但判断为阴性)的比值(能将实际患病的病例正确地判断为患病的能力,即患者被判为阳性的概率)。公式如下:


即有病(阳性)人群中,检测出阳性的几率。(检测出确实有病的能力)


  • 特异性


特异性或特异度(Specificity,也称为真阴性率)是指实际为阴性的样本中,判断为阴性的比例(例如真正未生病的人中,被医院判断为未生病者的比例),计算方式是真阴性除以真阴性+假阳性(实际为阴性,但判断为阳性)的比值(能正确判断实际未患病的病例的能力,即试验结果为阴性的比例)。公式如下:


即无病(阴性)人群中,检测出阴性的几率。(检测出确实没病的能力)

2. 目标检测任务重:mAP

在目标检测任务中,还有一个非常重要的概念是 mAP。mAP 是用来衡量目标检测算法精度的一个常用指标。目前各个经典算法都是使用 mAP 在开源数据集上进行精度对比。在计算 mAP 之前,还需要使用到两个基础概念:准确率(Precision)和召回率(Recall)

2.1 准确率和召回率

  • 准确率:预测为正的样本中有多少是真正的正样本。

  • 召回率:样本中的正例有多少被预测正确。


具体计算方式如图 2.1 所示。



如图 2.1 准确率和召回率计算方式


其中,上图还存在以下几个概念:


  • 正例:正样本,即该位置存在对应类别的物体。

  • 负例:负样本,即该位置不存在对应类别的物体。

  • TP(True Positives):正样本预测为正样本的数量。

  • FP(False Positives):负样本预测为正样本的数量。

  • FN(False Negative):正样本预测为负样本的数量。

  • TN(True Negative):负样本预测为负样本的数量。


这里举个例子来说明准确率和召回率是如何进行计算的:假设我们的输入样本中有某个类别的 10 个目标,我们最终预测得到了 8 个目标。其中 6 个目标预测正确(TP),2 个目标预测错误(FP),4 个目标没有预测到(FN)。则准确率和召回率的计算结果如下所示:


  • 准确率:6/(6+2) = 6/8 = 75%

  • 召回率:6/(6+4) = 6/10 = 60%

2.2 PR 曲线

上文中,我们学习了如何计算准确率(Precision)和召回率(Recall),得到这两个结果后,我们使用 Precision、Recall 为纵、横坐标,就可以得到 PR 曲线,这里同样使用一个例子来演示如何绘制 PR 曲线。


假设我们使用目标检测算法获取了如下的 24 个目标框,各自的置信度(即网络预测得到的类别得分)按照从上到下进行排序后如 图 2 所示。我们通过设置置信度阈值可以控制最终的输出结果。可以预想到的是:


  1. 如果把阈值设高,则最终输出结果中大部分都会是比较准确的,但也会导致输出结果较少,样本中的正例只有部分被找出,准确率会比较高而召回率会比较低。

  2. 如果把阈值设低,则最终输出结果会比较多,但是输出的结果中包含了大量负样本,召回率会比较高而准确率率会比较低。



图 2.2 准确率和召回率列表


这里,我们从上往下每次多包含一个点,就可以得到最右边的两列,分别是累加的 recall 和累加的 precision。以 recall 为自变量、precision 为因变量可以得到一系列的坐标点(Recall,Precision)。将这些坐标点进行连线可以得到 图 2.3 。



图 2.3 PR 曲线


而最终 mAP 的计算方式其实可以分成如下两步:


  • AP(Average Precision):某一类 P-R 曲线下的面积。

  • mAP(mean Average Precision):所有类别的 AP 值取平均。

3.GAN 评价指标(评价生成图片好坏)

生成器 G 训练好后,我们需要评价生成图片的质量好坏,主要分为主观评价和客观评价,接下来分别介绍这两类方法:


  • 主观评价:人眼去观察生成的样本是否与真实样本相似。但是主观评价会存在以下问题:

  • 生成图片数量较大时,观察一小部分图片可能无法代表所有图片的质量;

  • 生成图片非常真实时,主观认为是一个好的 GAN,但可能存在过拟合现象,人眼无法发现。

  • 客观评价:因为主观评价存在一些问题,于是就有很多学者提出了 GAN 的客观评价方法,常用的方法:

  • IS(Inception Score)

  • FID(Fréchet Inception Distance)

  • 其他评价方法

3.1 IS

IS 全称是 Inception Score,其名字中 Inception 来源于 Inception Net,因为计算这个 score 需要用到 Inception Net-V3(第三个版本的 Inception Net)。对于一个在 ImageNet 训练好的 GAN,IS 主要从以下两个方面进行评价:


  • 清晰度:把生成的图片 x 输入 Inception V3 模型中,将输出 1000 维(ImageNet 有 1000 类)的向量 y ,向量每个维度的值表示图片属于某类的概率。对于一个清晰的图片,它属于某一类的概率应该非常大。

  • 多样性:如果一个模型能生成足够多样的图片,那么它生成的图片在各个类别中的分布应该是平均的,假设生成了 10000 张图片,那么最理想的情况是,1000 类中每类生成了 10 张。


IS 计算公式为:


其中,:表示从生成器生成的图片;:把生成的图片 x 输入到 Inception V3,得到一个 1000 维的向量 y ,即图片 x 属于各个类别的概率分布;


:N 个生成的图片(N 通常取 5000),每个生成图片都输入到 Inception V3 中,各自得到一个的概率分布向量,然后求这些向量的平均,得到生成的图片在所有类别上的边缘分布,具体公式如下:


:表示对 求 KL 散度,KL 散度公式如下:


S 不能反映过拟合、且不能在一个数据集上训练分类模型,用来评估另一个数据集上训练的生成模型。

3.2 FID

FID 全称是 Fréchet Inception Distance,计算真实图片和生成图片的 Inception 特征向量之间的距离。


首先将 Inception Net-V3 模型的输出层替换为最后一个池化层的激活函数的输出值,把生成器生成的图片和真实图片送到模型中,得到 2048 个激活特征。生成图像的特征均值和方差,以及真实图像的均值和方差,根据均值和方差计算特征向量之间的距离,此距离值即 FID:


其中 Tr 指的是被称为「迹」的线性代数运算(即方阵主对角线上的元素之和)。


FID 方法比较鲁棒,且计算高效。

3.3 其他评价方法

除了上述介绍的两种 GAN 客观评价方法 ,更多评价方法:


Mode Score、Modifified Inception Score、AM Score、MMD、图像、Image Quality Measures、SSIM、PSNR 等

4. Perplexity:困惑度

Perplexity,中文翻译为困惑度,是信息论中的一个概念,其可以用来衡量一个随机变量的不确定性,也可以用来衡量模型训练的好坏程度。通常情况下,一个随机变量的 Perplexity 数值越高,代表其不确定性也越高;一个模型推理时的 Perplexity 数值越高,代表模型表现越差,反之亦然。

4.1 随机变量概率分布的困惑度

对于离散随机变量 X,假设概率分布可以表示为 p(x)那么对应的困惑度为:


其中,H(p)为概率分布 p 的熵。可以看到,一个随机变量熵越大,其对应的困惑度也就越大,随机变量的不确定性也就越大。

4.2 模型分布的困惑度

困惑度也可以用来衡量模型训练的好坏程度,即衡量模型分布和样本分布之间的差异。一般来讲,在模型的训练过程中,模型分布越接近样本分布,模型训练得也就越好。


假设现在有一批数据,其对应的经验分布为。现在我们根据这些样本成功训练出了一个模型,那么模型分布的好坏可以由困惑度进行定义:


其中,表示样本的经验分布pr^和模型分布之间的交叉熵。假设每个样本 xi 的生成概率是相等的,即,则模型分布的困惑度可简化为:


4.3 NLP 领域中的困惑度¶

在 NLP 领域,语言模型可以用来计算一个句子的概率,假设现在有这样一句话我们可以这样计算这句话的生成概率:


在语言模型训练完成之后,如何去评判语言模型的好坏?这时,困惑度就可以发挥作用了。一般来讲,用于评判语言模型的测试集均是合理的、高质量的语料,只要语言模型在测试集上的困惑度越高,则代表语言模型训练地越好,反之亦然。


在了解了语句概率的计算后,则对于语句其困惑度可以这样来定义:


显然,测试集中句子的概率越大,困惑度也就越小。

5.BLEU:机器翻译合理性

BLEU (BiLingual Evaluation Understudy) 最早用于机器翻译任务上,用于评估机器翻译的语句的合理性。具体来讲,BLEU 通过衡量生成序列和参考序列之间的重合度进行计算的。下面我们将以机器翻译为例,进行讨论这个指标。


假设当前有一句源文,以及相应的译文参考序列。机器翻译模型根据源文 s 生成了一个生成序列 x,且 W 为根据候选序列 x 生成的 N 元单词组合,这些 N 元组合的精度为:


其中,为 N 元组合词 w 在生成序列 x 中出现的次数,为 N 元组合词 w 在参考序列中出现的次数。N 元组合的精度即为生成序列中的 N 元组合词在参考序列中出现的比例。


从以上公式可以看出,的核心思想是衡量生成序列 x 中的 N 元组合词是否在参考序列中出现,其计算结果更偏好短的生成序列,即生成序列 x 越短,精度会越高。这种情况下,可以引入长度惩罚因子,如果生成序列 x 比参考序列短,则会对该生成序列 x 进行惩罚。


其中,表示生成序列 x 的长度, 表示参考序列 lr 的最短长度。


前边反复提到一个概念–N 元组合词,我们可以根据生成序列 x 构造不同长度的 N 元组合词,这样便可以获得不同长度组合词的精度,比如 P1(x),P2(x),P3(x)等等。BLEU 算法通过计算不同长度的 N 元组合的精度 PN(x),N=1,2,3...,并对其进行几何加权平均得到,如下所示。


其中,为最长 N 元组合词的长度, 为不同 N 元组合词的权重,一般设置为,BLEU 算法的值域范围是[0,1],数值越大,表示生成的质量越好。


BLEU 算法能够比较好地计算生成序列 x 的字词是否在参考序列中出现过,但是其并没有关注参考序列中的字词是否在生成序列出现过。即 BLEU 只关心生成的序列精度,而不关心其召回率。

6.ROUGE 评估指标:机器翻译模型

看过 BLEU 算法的同学知道,BLEU 算法只关心生成序列的字词是否在参考序列中出现,而不关心参考序列中的字词是否在生成序列中出现,这在实际指标评估过程中可能会带来一些影响,从而不能较好评估生成序列的质量。


ROUGE (Recall-Oriented Understudy for Gisting Evaluation)算法便是一种解决方案,它能够衡量参考序列中的字词是在生成序列中出现过,即它能够衡量生成序列的召回率。下面还是以机器翻译为例,来探讨一下 ROUGE 的计算。


假设当前有一句源文 s,以及相应的译文参考序列。机器翻译模型根据源文 s 生成了一个生成序列 x,且 W 为根据候选序列 x 生成的 N 元单词组合,则 ROUGE 算法的计算方式为:


其中,为 N 元组合词 w 在生成序列 x 中出现的次数,为 N 元组合词 w 在参考序列 rk 中出现的次数。


从公式可以看到,ROUGE 算法能比较好地计算参考序列中的字词是否在生成序列出现过,但没有关注生成序列的字词是否在参考序列中出现过,即 ROUGE 算法只关心生成序列的召回率,而不关心准确率。


引用


[1] 邱锡鹏. 神经网络与深度学习[M]. 北京:机械工业出版社,2021.[2] 吴飞. 人工智能导论:模型与算法[M]. 北京:高等教育出版社,2020.


发布于: 刚刚阅读数: 4
用户头像

汀丶

关注

本博客将不定期更新关于NLP等领域相关知识 2022-01-06 加入

本博客将不定期更新关于机器学习、强化学习、数据挖掘以及NLP等领域相关知识,以及分享自己学习到的知识技能,感谢大家关注!

评论

发布
暂无评论
深度学习基础入门篇[二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、ROUGE等详解  1.基础指_人工智能_汀丶_InfoQ写作社区