深度学习之模型设计:核心算法与案例实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 评测指标

在深度学习中,对模型的测量和评估至关重要。只有选择与问题相匹配的评估方法,才能够快速地发现在模型选择和训练过程中可能出现的问题,从而迭代地对模型进行优化。

由于本书将涉及图像分类、图像分割、目标跟踪、图像生成等内容,因此下面针对这些内容分别给大家介绍其评测指标。

3.2.1 分类评测指标

图像分类是计算机视觉中最基础的一个任务,也是几乎所有的基准模型进行比较的任务。从比较简单的10分类灰度图像手写数字识别数据集MNIST,到更大一点的10分类任务数据集CIFAR10和100分类任务数据集CIFAR100,再到后来的数据集ImageNet,图像分类数据集不断增加。如今在超过1000万幅图像、2万种类的ImageNet数据集中,计算机的图像分类水准已经超过了人类。

图像分类,顾名思义就是一个模式分类问题,它的目标是将不同的图像划分到不同的类别,实现最小的分类误差,这里我们只考虑单标签分类问题,即每幅图像都有唯一的类别。

对于单标签分类问题,其评价指标主要有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-score、混淆矩阵、ROC曲线和AUC等。

在计算这些指标之前,我们先计算几个基本指标,这些指标是基于二分类的任务,也可以拓展到多分类。记标签为正样本且分类为正样本的数目为True Positive,简称TP;标签为正样本而分类为负样本的数目为False Negative,简称FN;标签为负样本而分类为正样本的数目为False Positive,简称FP;标签为负样本且分类为负样本的数目为True Negative,简称TN。

判别样本是否为正类只需要设一个概率阈值T,预测概率大于T的为正类,小于T的为负类,T默认是0.5。如果我们减小这个阈值T,更多的样本会被识别为正类,这样可以提高正类的召回率,但同时也会让更多的负类被错分为正类;如果增加阈值T,则正类的召回率降低,分类精度增加。

如果样本包含多类,如ImageNet分类比赛中的1000类,那么预测类别就是预测概率最大的那一类。

1.准确率

单标签分类任务中每个样本都只有一个确定的类别,预测到该类别就是分类正确,没有预测到就是分类错误,因此分类最直观的指标就是Accuracy,也就是准确率,其计算方法如下。

Accuracy=(TP+TN)/(TP+FP+TN+FN)

该式表示所有样本都正确分类的概率。在ImageNet中使用的Accuracy指标包括Top-1 Accuracy和Top-5 Accuracy,其中Top-1 Accuracy就是前面计算的Accuracy。

记样本xi的类别为yi,类别种类为(0,1,…,N),预测类别函数为f,则Top-1 Accuracy的计算方法如下。

如果给出预测概率最大的5个预测类别,只要其中包含了真实的类别,则判定预测正确,计算出来的指标就是Top-5 Accuracy。

目前在ImageNet上,Top-5 Accuracy的使用率已经超过97%,而Top-1 Accuracy的使用率在85%左右。

2.精确率和召回率

如果只考虑正样本的指标,则有两个很常用的指标——精确率和召回率。

正样本精确率Precision=TP/(TP+FP),表示召回为正样本的样本中,到底有多大比例是真正的正样本。正样本召回率Recall=TP/(TP+FN),表示真正的正样本有多大比例被召回。当然,如果对负样本感兴趣,也可以计算对应的精确率和召回率。注意区分精确率和准确率。

通常召回率越高,精确率越低,根据两者对应的值可以绘制Recall-Precision曲线,如图3.1所示。曲线越靠近右上角说明其性能越好,该性能可以用该曲线与坐标轴包围的面积来定量评估。

图3.1 Recall-Precision曲线

3.F1-score

有时我们不仅关注正样本的精确率,也关心其召回率,但又不想用准确率来衡量,一个折中的方法是采用F1-score。

只有在精确率和召回率都高的情况下,F1-score才会很高,因此F1-score是一个平衡性能的指标。

4.混淆矩阵

如果我们想知道类别之间相互误分的情况,查看是否有特定的类别相互混淆,就可以用混淆矩阵画出分类的详细预测结果。对于包含多个类别的任务,混淆矩阵很清晰地反映了各类别之间的错分概率。

如图3.2所示,对于一个包含20个类别的分类任务,其混淆矩阵为20×20的矩阵,其中第i行第j列的元素表示第i类目标被分为第j类的概率。可以知道,越好的分类器对角线上的值越大。

图3.2 混淆矩阵

5.ROC曲线与AUC指标

准确率、精确率、召回率和F1-score都是单一的数值指标,如果我们想观察分类算法在不同的参数下的表现,此时可以使用一条曲线,即ROC(Receiver Operating Characteristic)曲线。

ROC曲线可以用评价一个分类器在不同阈值下的表现。在ROC曲线中,每个点的横坐标是False Positive Rate(FPR),纵坐标是True Positive Rate(TPR),其描绘了分类器在True Positive和False Positive间的平衡。TPR和FPR的计算如下。

TPR=TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。

FPR=FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例,FPR越大,预测正类中的实际负类越多。

ROC曲线如图3.3所示,其中有以下4个关键的点。

图3.3 ROC曲线

点(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,表示最差分类器,所有的样本都被错误分类了。

ROC曲线有一个很好的特性:当测试集中的正负样本比例分布变化时,ROC曲线能够保持不变,即它对正负样本不均衡问题不敏感。例如,负样本的数量增加到原来的10倍,TPR不受影响,FPR的各项也呈比例地增加,本身并不会有太大的变化,所以对不均衡样本问题,通常选用ROC曲线作为评价标准。

ROC曲线越接近左上角,表示该分类器的性能越好,若一个分类器的ROC曲线完全包住了另一个分类器,那么可以判断前者的性能更好。

如果我们想通过两条ROC曲线来定量评估两个分类器的性能,就可以使用AUC这个指标。

AUC(Area Under Curve)为ROC曲线下的面积,这个面积的数值不会大于1。它的含义是一个概率,即随机挑选一个正样本及一个负样本,AUC表征的是分类器对正样本给出的预测值高于对负样本给出的预测值的概率,当然,前提是正样本的预测值的确应该高于负样本。

不同AUC值表示不同的含义:

AUC=1:在任何阈值下分类器都能100%识别所有类别,这是理想的分类器,基本不存在。

AUC=0.5:相当于随机预测,此时分类器不可用。

0.5<AUC<1:优于随机预测,这也是实际作用中大部分分类器所处的状态。

AUC<0.5:总是比随机预测更差。

AUC作为一个评价标准,常和ROC曲线一起使用,因为ROC曲线并不能清晰地说明哪个分类器的效果更好,而AUC值的大小直接量化评估了分类器的性能。

6.TAR、FRR和FAR

TAR、FRR和FAR在人脸验证中被广泛使用。人脸验证即验证两个人是否是同一个人,通常用特征向量的相似度进行描述,如果相似度大于阈值T,则认为他们是同一个人。TAR(True Accept Rate)表示正确接受的比例,即多次取同一个人的两张图像,统计得到的该相似度值超过阈值T的比例。FRR(False Reject Rate)是错误拒绝率,它等于1-TAR。与之类似,FAR(False Accept Rate)表示错误接受的比例,即多次取不同人的两张图像,统计得到的该相似度值超过T的比例。

增大相似度阈值T,FAR和TAR都减小,即正确接受的比例和错误接受的比例都降低,错误拒绝率增加;减小相似度阈值T,FAR和TAR都增大,即正确接受的比例和错误接受的比例都增加,错误拒绝率降低。

3.2.2 检索与回归评测指标

1.IoU

IoU(Intersection-over-Union),即交并比,定义为两个面积的交集和并集的比值,IoU=AB/AB,如图3.4所示。

图3.4 IoU示意

如果AB完全重叠,则IoU等于1,这是最理想的情况。一般在检测任务中,若IoU大于或等于0.5,就认为召回。如果设置更高的IoU阈值,则召回率将下降。

在图像分割中也会经常使用IoU,如对于二分类的前背景分割,IoU=(真实前景像素面积∩预测前景像素面积)/(真实前景像素面积∪预测前景像素面积),这一个指标通常比直接计算每个像素的分类正确概率要低,也对错误分类更加敏感。

2.AP和mAP

AP(Average Precision)是一个在检索任务和回归任务中经常使用的指标,实际上它等于Precision-Recall曲线下的面积。下面以目标检测为例进行计算。

假如一幅图像有10个人脸,检索得到20个目标框,真实标签Label用目标框与真实标注框的IoU是否大于0.5来衡量,若大于0.5则为1;否则为0。

第一步,根据模型得到目标框的坐标和类别概率,计算Label,得到表3.1。

表3.1 概率表

(续表)

第二步,将表3.1按照概率(Score)进行排序,得到表3.2。

表3.2 排序后的概率表

以返回的前5个框为例进行计算,即取Top-5样例(见表3.3)。在这个例子中,True Positive是真正的人脸,从Label一栏可以看出,其指Id为4、2、7、9、16、20的样本。前5个概率值最大的Id中,13、19、6是False Positive,所以此时的Precision=2/5=40%,即选定了5个人脸,只有两个是对的;Recall=2/6≈33.3%,即共有6个人脸,但只召回了2个。

表3.3 前5个样本

在一个实际的目标检测任务中,目标的数量不一定是5个,选定的Id越多,召回率就越大,精确率整体上会呈现下降趋势,因为排在前面概率高的一般更有可能是真实的样本。

N为最大Id值,如果从Top-1到Top-N都统计一遍,就得到了对应的精确率和召回率,以召回率为横坐标,精确率为纵坐标,则得到了检测中使用的Precision-Recall曲线,虽然其整体趋势和意义与分类任务中的Precision-Recall曲线相同,计算方法却有很大差别。

在2010年以前的PASCAL VOC比赛中,AP的具体计算方法如下。

设置11个阈值[0,0.1,0.2,…,1],计算召回率大于或等于每个阈值时的最大精确率,AP就是这11个值的平均值。选择不同的N时,会有不同的精确率和召回率,所以有可能不同的N对应同样的召回率,此时就需要选择这些N所对应精确率的最大值。AP是这11个精确率的平均值,将所有类别的AP再取平均,就得到了mAP。

PASCAL VOC 2010年提出了一个更好的指标,去除了11点的设定,对于样本不均衡类的计算更加有效。

假设有N个Id,其中有M个label,则从0到1按照1/M等间距选择M个召回率节点。对于每个召回率,计算大于该召回率的最大精确率,然后对这M个精确率值取平均可得到最后的AP值,mAP的计算方法不变。

AP衡量的是学习得到的模型在一个类别上的好坏;mAP衡量的是学习得到的模型在所有类别上的好坏。

3.2.3 图像生成评测指标[7]

当要评估一个生成模型的性能时,可用以下两个最重要的衡量指标。

确定性:生成模型生成的样本一定属于特定的类别,即生成了真实的图像。

多样性:样本应该覆盖数据集中的各个类别,如果用MNIST进行训练,在没有条件限制的条件下,应该生成数字0、1、2、3等各类图像,生成的各个数字也应该具有不同的笔触、大小等。

除此之外,还要考虑分辨率等,因此,评价生成模型需要从以下几个方面进行。

1.Inception Score

Inception Score是最早用于GAN生成图像多样性评估的指标,它利用了Google的Inception模型来进行评估。Inception是一个图像分类模型,其预测结果是一个经过Softmax归一化后的向量,即概率分布py|x)。对于一个好的分类模型,其分布的熵应该尽可能地小,也就是样本必须明确属于某个类。另外,如果把Softmax归一化后的结果组合在一起形成另一个概率分布py),为了满足多样性,该分布的熵应该越大越好,也就是各种各样的样本都要有。

所以,Inception Score希望一个生成模型的py|x)和py)之间的KL散度越大越好,连续形式的表示如下。

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

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

2.MMD

最大平均差异(Maximum Mean Discrepancy)也是一个用于判断两个分布pq是否相同的指标。它的基本假设是,如果两个样本分布相似,那么通过寻找在样本空间上的连续函数f,将其转换到样本空间,可求不同分布的样本在f上的函数值的均值,然后计算均值的差,作为两个分布在f函数上的平均差异,这些差值中的最大值就是MMD。

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

除了以上指标,还可使用Wasserstein距离、Fréchet Inception距离等进行评估。