如何衡量目标检测模型的优劣

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

文章导读

机器学习算法的落地从数据—>建模—>训练—>评估—>部署,生命周期中的这5个环节一样都不能少,其中算法的评估尤为重要,不同的任务有其自身的衡量标准,本文我们走进目标检测任务的各项评价指标,回顾各项衡量标准的优劣及使用环境。

细数目标检测中的评价指标

计算机视觉中的目标检测即包含了分类和回归两大任务,对于预测的结果我们不能凭直觉判断模型的好坏,而是需要一个量化指标。业界对模型的性能评估已经有很多不同的指标:比如准确率、精确率、召回率、平方误差、余弦距离、P-R曲线、ROC曲线、AP、mAP、AUC、IOU等等。本文我们从最简单的准确率说起。

最简单的评价指标—准确率

准确率是分类问题中最简单的评价指标,表示正确的样本占总样本的比例。这里我们会有一个疑问:是不是模型的准确率越高性能就越好呢?

当然不是。准确率一般是从全局角度评估模型的优劣。但是它存在一定的局限性,比如训练阶段有1000个样本,其中999个负样本,1个正样本。那么如果我们将所有样本都预测成负样本,准确率可以达到99.9%,从数据上看感觉性能很好,但是部署上线后可能大部分正样本都预测错误,造成用户体验的下降。

原因是由于样本类别的不平衡导致训练过程虽然准确率很高,但是实际效果却不好,得到误导性的结果。如果准确率不能很有效的评估模型性能,那么我们可以采用什么指标来评估呢?

精确率和召回率一对矛盾共生体

在日常生活中我们经常遇到这样的情况:比如你去超市买橘子,我们关心的是挑选的橘子中有多少个是甜的;或者所有甜的橘子中有多少个被你选中了。前者叫做精确率,后者叫做召回率。

精确率又叫查准率,是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。

召回率又叫查全率,是指分类正确的正样本个数占真正的正样本个数的比例。

这两个定义有点拗口,具体可以借助下面的混淆矩阵直观理解(本文图片来源于网络,如有侵权联系删除)

精准度和召回率是最常见的指标之一,模型的性能需要在两者之间权衡。往往为了提供精确率,需要尽量在更有把握时才将待测样本判定为正样本,但如此保守的策略也会漏掉很多真值。

和谁都有关系的混淆矩阵

为了可视化算法的性能如何,这里引出一个混淆矩阵的概念,它能够快速直观的帮助算法人员分析每个类别的误分类情况。

我们经常会看到这么几个简写:TP,TN,FP,FN:

  • TP代表真阳性,即正样本被预测成正样本

  • TN代表真阴性,即负样本被预测成负样本

  • FP代表假阳性,即负样本被预测成正样本

  • FN代表假阴性,即正样本被预测成负样本

这四个简称小编以前经常会记混,第一个字母表示预测的对错True/False,第二个字母表示预测的结果Positive/Negative。

通过这四个统计量可以帮我们构建出下图的矩阵,这里我们是以二分类为例,构建2×2的矩阵;如果是K个类别,可以推广到K×K的矩阵:

其中每一列代表预测值,每一行代表实际值。每一行的个数之和代表该类别的实际个数,所有正确预测的结果都在矩阵的对角线上,它可以解决上面提到的正确率指标的局限性,直观的看出每个类别正确识别的数量和错误识别的数量。

混淆矩阵也可以延伸出各个评价指标的表达方式:

  • 准确率 = TP / (TP + TN + FP + FN)

  • 精确率 = TP / (TP + FP)

  • 召回率 = TP / (TP + FN)

  • F1 = 2 × 精确率 × 召回率 / (精确率 + 召回率)

备注:F1得分是精确率和召回率的调和平均值。

上面我们讨论的精确率/召回率都是在固定阈值下得到的一个数值,为了综合评估一个模型的优劣,是否需要在不同的Top N下的观察P-R两方面的结果呢?

P-R曲线和AP值的用途

P-R曲线是由精确率和召回率构成的一张曲线图,以召回率作为横坐标轴,精确率作为纵坐标轴。在某个阈值下,模型将大于该阈值的结果判定成正样本,将小于该阈值的结果判定成负样本,再结合真值得到精确率和召回率,即表示P-R曲线上的一个点。如果想要生成一幅P-R曲线图,通常需要执行以下几步:

  1. 用训练好的模型评估所有测试样本的得分;

  2. 每一类分别分开统计,并对分类概率值排序;

  3. 从Top-1开始,将第1个置信度作为阈值,当前预测的为正样本,其余得分小于该阈值的作为负样本,统计TP,FP,FN;

  4. 根据统计值计算当前阈值下的精确度和召回率;

  5. 从Top-1至Top-N重复步骤3和4;

  6. 将不同阈值下的P-R值绘制成P-R曲线图;

通常P-R曲线可以显示出分类器在查准率与查全率之间的权衡。在各大刷榜论文中给出的AP值就是指P-R曲线下面的面积。下图是包含A,B,C三个分类器的P-R曲线图:

根据P-R曲线图如何评估不同分类器的性能呢?

分类器C的P-R曲线被分类器A或B的P-R曲线完全包住,则说明分类器A和B的性能优于C;

当A和B两个分类器的P-R曲线交叉时又该怎么评估性能优劣呢?

一般可以统计A和B曲线下的面积来衡量,该面积又叫做平均精度AP,值越大性能越好。为了更加准确的计算,还可以采用平衡点或者F1 score的方式度量。

如果用户场景对模型的性能更偏向于全面性或者精确性怎么办?

我们知道F1 score是调和平均数,认为精确率和召回率重要程度一样的一个统计平均值。当用户的业务场景本身就需要偏向某一方时,该值就不在适用了。针对用户的不同偏好,可以在F1的基础上增加权重a,即(1 + a×a) P×R / ((a × a × P) + R),权重a>1时,召回率占比更大,权重a < 1时,精准率占比更大。

在P-R曲线中,不管是精确率还是召回率关注点都在于正样本的占比,如果在测试集中的正负样本占比发生变化后,P-R曲线的统计值就会发生很大的变化,但是在实际应用中,在类别不平衡的数据中用户关心的也还是正样本,所以P-R曲线仍然被广泛应用。

如果有小伙伴非要兼顾正样本和负样本,评估分类器的整体水平怎么办呢?这里我们有另一种曲线——ROC曲线!

ROC曲线和AUC值的用途

ROC曲线反映了真阳性率和假阳性率之间的变化关系。横轴就是FPR,纵轴就是TPR,然后选择不同的阈值时,就可以对应坐标系中一个点。

真阳性率即TPR = TP / (TP + FN),表示在所有正样本中被预测为正样本的比例,俗称命中率。

假阳性率即FPR = FP / (FP + TN),表示在所有负样本中被预测成正样本的比例,俗称虚警率。

如下图所示:我们主要看正方形的四个顶点(0,0),(0,1),(1,0),(1,1)的含义:

我们根据ROC计算的两个数学公式来进一步分析:

1、(0,0)点表示TPR=0且TFR=0,也就是说TP和FP都是0,换句话说就是给我任何一个样本,都会被预测成正样本。

2、(1,1)点表示TPR=1且TFR=1,也就是说TP和FP都是1,和(0,0)点的含义刚好相反,给我任何一个样本,都会被预测成负样本。

3、(0,1)点表示FPR=0且TPR=1,也就是说FP和FN都是0,既没有把任何一个负样本预测成正样本,也没有把任何一个正样本预测成负样本,这不是完美嘛!所以曲线越趋近于左上角,预测结果越准确。

4、(1,0)点表示FPR=1且TPR=0,也就是说TP和TN都是0,这简直是史上运气最差的分类器,没有一个正样本预测正确,也没有一个负样本预测正确。

这里计算的ROC仍然是根据固定阈值进行混淆矩阵的统计最后得到的一个点,曲线的绘制和P-R曲线流程相似,都是根据测试数据的类别置信度进行从高到低的排序,依次将置信度得分作为阈值统计不同区域时的FPR和TPR。

被绕进去的小伙伴可以在回到上面重温混淆矩阵,构建一个高性能的分类器我们希望假阳性率越小越好,真阳性率越大越好。相比于P-R曲线,TPR更加关注正样本,FPR更加关注负样本,所以是一种对正负样本更加均衡的评估方式。

ROC曲线在数据分布发生变化时表现的平稳性,也注定是它的缺陷所在,在模型评估的时候,当正负样本比例是1:1、1:10、1:100等等,ROC曲线形式都是惊人的相似,而P-R曲线更加明显的表现出模型之间的优劣。

AP表示P-R曲线下的面积,那么ROC曲线下的面积又有什么物理意义呢?

ROC曲线下面积越大,该模型越有可能将正样本排在负样本前面,表明分类器的性能越好,这个概率值就叫做AUC。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值