a.深度学习基础入门篇[二]:机器学习常用评估指标:aucmapisfidperplexitybleurouge等详解

汀、人工智能 汀、人工智能     2023-04-05     584

关键词:

A.深度学习基础入门篇[二]:机器学习常用评估指标

1.基础指标简介

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

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

  • 准确率

A c c u r a c y = T P + T N T P + F N + F P + T N Accuracy=\\dfracTP+TNTP+FN+FP+TN Accuracy=TP+FN+FP+TNTP+TN

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

  • 精确率

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

  • 召回率

召回率又叫:Recall、查全率

R e c a l l = T P T P + F N Recall=\\dfracTPTP+FN\\quad\\text Recall=TP+FNTP

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

  • P-R曲线¶

P-R曲线又叫做:PRC

图2 PRC曲线图

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

  • F1 值

F 1 = 2 ∗ P ∗ R P + R \\quad F1=\\dfrac2*P*RP+R\\quad\\quad F1=P+R2PR

  • TPR

T P R = T P T P + F N TPR=\\dfracTPTP+FN TPR=TP+FNTP

真正例率,与召回率相同

  • FPR
    假正例率

F P R = F P T N + F P FPR=\\dfracFPTN+FP\\quad FPR=TN+FPFP

  • ROC

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

  • AUC

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

  • 敏感性

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

s e n s i t i v i t y = T P T P + F N sensitivity=\\dfracTPTP+FN\\quad\\text sensitivity=TP+FNTP

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

  • 特异性

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

s p e c i f i c i t y = T N T N + F P specificity=\\dfracTNTN+FP\\quad\\text specificity=TN+FPTN

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

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计算公式为:

I S ( G ) = e x p ( E x ∼ p g D K L ( p ( y ∣ x ) ∣ ∣ p ^ ( y ) ) ) IS(G)=exp(E_x\\sim p_gD_KL(p(y|x)||\\hatp(y))) IS(G)=exp(ExpgDKL(p(yx)∣∣p^(y)))

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

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

p ^ ( y ) = 1 N ∑ i = 1 N p ( y ∣ x ( i ) ) \\hat p(y)=\\dfrac1N\\sum\\limits_i=1^N p\\left(y|x^(i)\\right) p^(y)=N1i=1Np(yx(i))

D K L DKL DKL:表示对 p ( y ∣ x ) p(y|x) p(yx) p ˆ ( y ) pˆ(y) pˆ(y) 求KL散度,KL散度公式如下:

D K L ( P ∥ Q ) = ∑ i P ( i ) log ⁡ P ( i ) Q ( i ) D_KL\\left(P\\|Q\\right)=\\sum\\limits_iP\\left(i\\right)\\log\\dfracP\\left(i\\right)Q\\left(i\\right) DKL(PQ)=iP(i)logQ(i)P(i)

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

3.2 FID

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

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

F I D ( P r , P g ) = ∣ ∣ μ r − μ g ∣ ∣ + T r ( C r + C g − 2 ( C r C g ) 1 / 2 ) FID\\left(P_r,P_g\\right)=||\\mu_r-\\mu_g||+T_r\\left(C_r+C_g-2\\left(C_rC_g\\right)^1/2\\right) FID(Pr,Pg)=∣∣μrμg∣∣+Tr(Cr+Cg2(CrCg)1/2)

其中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)那么对应的困惑度为:

2 H ( p ) = 2 − ∑ x ∈ X p ( x ) l o g 2 p ( x ) 2^H(p)=2^-\\sum_x\\in Xp(x)log_2p(x) 2H(p)=2查看详情

转载零基础入门深度学习-参考文献

【转载】零基础入门深度学习-参考文献机器学习深度学习参考资料零基础入门深度学习(1)-感知器TomM.Mitchell,“机器学习”,曾华军等译,机械工业出版社零基础入门深度学习(2)-线性单元和梯度下降TomM.Mitchell,“机器学习”,曾华军... 查看详情

深度学习分类任务常用评估指标(代码片段)

...所帮助。本文分享自华为云社区《深度学习分类任务常用评估指标》,原文作者:lutianfei。这篇文章主要向大家介绍深度学习分类任务评价指标,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。分类... 查看详情

深度学习入门基础二简单理解transformer

【深度学习入门基础】二、简单理解Transformer文章目录【深度学习入门基础】二、简单理解Transformer自注意力层多头注意力Transformer输入(输出)嵌入位置编码Add和NormFeedForwardLinearNxseq2seq模型和marked注意力机制训练其他这... 查看详情

深度学习入门基础二简单理解transformer

【深度学习入门基础】二、简单理解Transformer文章目录【深度学习入门基础】二、简单理解Transformer自注意力层多头注意力Transformer输入(输出)嵌入位置编码Add和NormFeedForwardLinearNxseq2seq模型和marked注意力机制训练其他这... 查看详情

深度学习常用的模型评估指标

...代地对模型进行优化。本文将总结机器学习最常见的模型评估指标,其中包括:precisionrecallF1-scorePRCROC和AUCIOU从混淆矩阵谈起看一看下面这个例子:假定瓜农 查看详情

sklearn机器学习基础(day02基础入门篇)(代码片段)

文章目录基本算法使用(Sklearn)算子API调用分步曲数据分析分步曲分类算法KNN算法网格优化KNN案例(预测facebook签到位置)数据清洗KNN处理预测完整代码朴素贝叶斯算法决策树案例可视化决策树随机森林回归与聚类算... 查看详情

(机器学习深度学习常用库框架|pytorch篇)第三节:pytorch之torchvision详解(代码片段)

文章目录一:torchvision概述二:torchvision.datasets(1)官方数据集(2)自定义数据集类(3)ImageFolder手动实现三:torchvision.transforms四:torchvision.models一: 查看详情

「深度学习一遍过」必修26:机器学习与深度学习基础知识汇总

本专栏用于记录关于深度学习的笔记,不光方便自己复习与查阅,同时也希望能给您解决一些关于深度学习的相关问题,并提供一些微不足道的人工神经网络模型设计思路。专栏地址:「深度学习一遍过」必修篇... 查看详情

「深度学习一遍过」必修26:机器学习与深度学习基础知识汇总

本专栏用于记录关于深度学习的笔记,不光方便自己复习与查阅,同时也希望能给您解决一些关于深度学习的相关问题,并提供一些微不足道的人工神经网络模型设计思路。专栏地址:「深度学习一遍过」必修篇... 查看详情

硬啃:《deeplearning》机器学习基础篇

深度学习已经成为了当代人类生活中不可缺少的部分,自从2006年被正式提出以来,经过十几年的发展演变,深度学习的进展在人类生活中创造了巨大的价值财富。也有更多的人希望能够从深度学习中学习到更多的知... 查看详情

机器学习/深度学习常用资源

Stanford:1. CS231n:ConvolutionalNeuralNetworksforVisualRecognition  http://cs231n.stanford.edu/使用卷积神经网络进行视觉识别,卷积神经网络的入门资料。2.CS229:MachineLearning  http://cs229.stanford.edu/吴恩 查看详情

深度学习入门2022最新版深度学习简介(代码片段)

【深度学习入门2022最新版】第一课深度学习简介概述深度学习vs机器学习机器学习是什么深度学习是什么机器学习和深度学习的区别神经网络机器学习实现二分类神经网络实现二分类TensorFlowPyTorch神经网络的原理张量张量最小值(... 查看详情

机器学习入门(4~9)

...计基础知识常用统计变量常用概率分布重要概率公式机器学习概述主要分类:无监督学习有监督学习监督学习三要素监督学习实验步骤模型评估策略训练集和测试集损失函数经验风险训练误差和测试误差过拟合和欠拟合正则... 查看详情

零基础入门深度学习目录

...ensorFlow2🚩作者:K同学啊🥇精选专栏:《深度学习100例》🔥推荐专栏:《零基础入门深度学习》📚选自专栏:《Matplotlib教程》🧿优秀专栏:《Python入门100题》📕入门篇1.环境配置【零... 查看详情

怎么快速入门深度学习

深度学习是一门综合的研究方向,目前大多数研究生都在研究这个,包括我在内,我研究的是图像识别领域,包括图像分类、目标识别、对象定位、风格迁移等等。说回来,那到底要如何去学习深度学习,首先深度学习属于机器... 查看详情

深度学习算法工程师常用基础面试题汇集

目录1.模型评估方法2.基本方法3.优化方法4.深度学习基础5.CNN6.RNN7. 查看详情

(机器学习深度学习常用库框架|pytorch篇)第三节:pytorch之torchvision详解(代码片段)

文章目录一:torchvision概述二:torchvision.datasets(1)官方数据集(2)自定义数据集类(3)ImageFolder手动实现三:torchvision.transforms四:torchvision.models一:torchvision概述torchvision:torchvisio... 查看详情