searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

算法评测指标

2023-07-14 07:37:33
23
0

 

二分类-混淆矩阵

理解三步走

  1. 一看到头字母缩写,想到这几个单词
    第一位:True正确的,False 错误的
    第二位:Positive 肯定的(正类), Negative 否定的(负类)
  2. 理解代表的含义
    第一位:模型判断的对错(形容词,对了or错了)
    第二位:模型判断的结果(名词,正类or负类)
  3. 混淆组合
    模型预测是否正确.预测的结果
    TP:判断对,判断结果是正类
    TN:判断对,判断结果是负类
    FP:判断错,判断结果是正类,误识(正类)
    FN:判断错,判断结果是负类,漏识(正类)




-------------基于混淆矩阵,衍生的一揽子指标--------------------------------------

先看这个,明白了这部分可以跳过了
TPR(真正率)+ FNR(漏识率) = 1
TNR(真负率)+ FPR(误识率) = 1

TPR(Recall)

True Positive Rate ,正类被报正类的比率,真正率
TPR = TP/(TP+FN) , 被上报为正/ 所有的正类
又叫recall,召回率,真正类率,真阳率,灵敏度(Sensitivity)
值越大越好

FNR

False Negative Rate,正类错报为负类,漏识率(假负率)
FNR = FN /(TP+FN),错预测为负类/所有正类
值越小越好

TNR

True Negative Rate,负类被报为负类的比率,真负率
TN = TN(TN+FP)
又叫Specific,值越大越好

FPR

False Positive Rate,负类被误报的比率,误识率(假正率)
FRP = FP/(TN+FP),被误报为正/所有的负类
又叫特异度,等价于1-Specific
值越小越好

Precision

精确率,正类的比率,分子预测正确的正类,分母预测出来的正类(包含True &false)
Precision = TP / (TP + FP)
注意和TPR的区别,TPR分母是实际正类

Accuracy

正确率,与精确率的区别,不只是考虑正类,也考虑负类,整体的正确率
A = (TP+TN)/(TP+TN+FP+FN)

ROC曲线(待补充)

不同阈值下,FP-TP曲线

-------------业务扩展使用的常用指标---------------------------------------------------

FAR

False Accept Rate,错误通过率,误识率
类FPR(false positive rate),误识率
类 IAR(imposter Accept rate),“冒名”通过率

FRR

False Reject Rate,正确未通过率,漏识率
类FNR,False Negative Rate,正类错报为负类,拒识率(假负率)
类SAR,Spoofing Accept Rate,“欺骗”接受率,常用于活体检测

相似度和阈值

如对比两张照片,算法会出一个相似度值,范围0~100
实际产品会设置阈值T,1e-6 = 1*10^(-6),即百万分之一,1e-5 十万一
相似度值>阈值T则判定为一个人,反之则不是

阈值和指标

一般阈值越高,误识率越低,漏识率越高
误识率FAR(T), 漏识率FRR(T) 都是基于T的单调函数
求逆,将FRR表示成关于FAR的函数FRR(FAR),就是ROC曲线
如百万一指标:就是FAR= 1e-5 时,对应的FRR(或TP)
千一95%的意思是指在FAR=0.1%的时候,可以做到TP=95%

-------------实际业务场景下理解指标---------------------------------------------------
易用性看正类的比率,真正、漏识
安全性看负类的比率,真负、误识

人脸识别

  • 描述通过指标(看易用性)
    对外:FRR
    参考:通过率、TPR、Recall
  • 描述误判率(看安全性)
    对外:FAR
    参考:误识率、FPR

活体检测

  • 描述对真人的通过率(看易用性)
    对外:FRR
    参考:真人误检率(真人误杀率)、真人通过率
  • 描述对攻击的防御能力(看安全性)
    对外:SAR
    参考:攻击检出率、攻击漏检率
  • 补充关于活体
    活体攻击,一般是想要识别出攻击(图片、头模型、假人等),所有攻击被定义为正类,术语常用真人误杀、攻击漏检
    在采集时,需采集算法容易错的样本

睁闭眼检测

  • 描述睁眼判断准确率
    对外:FRR(睁眼误判为闭眼)、FAR(闭眼误判为睁眼)
    参考:双百率(当正闭眼误判率调节相同的情况下,误判率为百分多少)
    描述更贴切场景,少用术语类,通过率、准确率;一般睁眼为正类

注意力检测

  • 描述注意力判断的准确率
    对外:FRR(注视误判非注视)、FAR(非注意误判为注视)
    参考:双百率(当注和非注判率调节相同的情况下,误判率为百分多少)
    描述更贴切场景,少用术语类,通过率、准确率;一般注视为正类

眼嘴鼻遮挡检测

  • 描述遮挡判断准确率,一般非遮挡为正类
    对外:FRR(非遮挡误判遮挡)、FAR(遮挡误判为遮挡)

注意场景类的,要明确好哪种场景是正类
一般期望的场景是正类
如,注视、非遮挡(虽然有个非,但是不遮挡是想要的结果)

-------------衍生衍生再衍生的可用指标------------------------------------------------

FPPI

False Positive num Per Image 每张图中错误检索的数目,值越小越好

FPPV

FP num per Video

FPPH

FP num per Hour

FPPD

FP num per day

-------------还有什么呢,包含但不限于------------------------------------------------

存储指标

一般指的是模型站内存大小,常见单位兆M

速度

计算速度,模型训练和预测需要的时间,处理1次需要的时间,常见单位ms(毫秒)

鲁棒性

处理缺失值和异常值的能力

可拓展性

处理大数据集的能力

可解释性

模型预测标准的可解释性,比如决策树产生的规则容易理解,而神经网络黑盒有大量参数不好理解

易集成性

模型是为了实现某种场景,比如手机人脸识别,要集成到手机平台
集成的难易程度,也是甲
方考虑的因素之一

其他

比如人脸检测,看可以兼容的角度范围、最小人脸的pixel值、可检测的人力数目

-------------如果指标异常,来找找原因------------------------------------------------

测试数据量不够?

人脸比对示例:
100人,每人1张底库(100张底图)10张查询图(1000张查询图)
总共对比100*1000次= 100000次
其中1000对正样本(自己对比自己),99000对负样本(自己对比别人)
可以看万一的指标,但侧十万一就不太可信了

正负样本是否均匀采样?

正负样本要均衡

底库质量不好?

这个很好理解,模糊、遮挡、跨年龄等等

数据标注错误?

同个人标注为不同人,会出现相似分比较高的误识别
非采集人员的人脸混入数据集离,导致同一人的数据有其他的脸,出现相似分低的拒识别

train和val集是否干净?

  • val的干净程度决定了模型选取的标准,train集的感觉程度决定了模型的优劣,
  • 一般train比val量大,有点noise影响不大,有问题优先check val集->train集
  • train集清洗,可以重采样把loss最大的部分挑出重标注
  • 清洗val集时,应该让数据定义更纯粹,把有歧义的(需要仔细分别或凭干净判断)的样本去除,除非要故意设立hard_case集
  • 清洗train集时,应该让数据定义更符合需求,如眯眼定义为睁眼,那就标注为睁眼,而非去掉歧义样本

看badcase

从难到易,定位原因
用线上demo(成熟模型基线)跑识别分数,对分

哪些情形容易出错

大角度、遮挡(口罩、墨镜、刘海、帽子)、模糊、低信噪比、化妆




0条评论
作者已关闭评论
z****n
3文章数
0粉丝数
z****n
3 文章 | 0 粉丝
z****n
3文章数
0粉丝数
z****n
3 文章 | 0 粉丝

算法评测指标

2023-07-14 07:37:33
23
0

 

二分类-混淆矩阵

理解三步走

  1. 一看到头字母缩写,想到这几个单词
    第一位:True正确的,False 错误的
    第二位:Positive 肯定的(正类), Negative 否定的(负类)
  2. 理解代表的含义
    第一位:模型判断的对错(形容词,对了or错了)
    第二位:模型判断的结果(名词,正类or负类)
  3. 混淆组合
    模型预测是否正确.预测的结果
    TP:判断对,判断结果是正类
    TN:判断对,判断结果是负类
    FP:判断错,判断结果是正类,误识(正类)
    FN:判断错,判断结果是负类,漏识(正类)




-------------基于混淆矩阵,衍生的一揽子指标--------------------------------------

先看这个,明白了这部分可以跳过了
TPR(真正率)+ FNR(漏识率) = 1
TNR(真负率)+ FPR(误识率) = 1

TPR(Recall)

True Positive Rate ,正类被报正类的比率,真正率
TPR = TP/(TP+FN) , 被上报为正/ 所有的正类
又叫recall,召回率,真正类率,真阳率,灵敏度(Sensitivity)
值越大越好

FNR

False Negative Rate,正类错报为负类,漏识率(假负率)
FNR = FN /(TP+FN),错预测为负类/所有正类
值越小越好

TNR

True Negative Rate,负类被报为负类的比率,真负率
TN = TN(TN+FP)
又叫Specific,值越大越好

FPR

False Positive Rate,负类被误报的比率,误识率(假正率)
FRP = FP/(TN+FP),被误报为正/所有的负类
又叫特异度,等价于1-Specific
值越小越好

Precision

精确率,正类的比率,分子预测正确的正类,分母预测出来的正类(包含True &false)
Precision = TP / (TP + FP)
注意和TPR的区别,TPR分母是实际正类

Accuracy

正确率,与精确率的区别,不只是考虑正类,也考虑负类,整体的正确率
A = (TP+TN)/(TP+TN+FP+FN)

ROC曲线(待补充)

不同阈值下,FP-TP曲线

-------------业务扩展使用的常用指标---------------------------------------------------

FAR

False Accept Rate,错误通过率,误识率
类FPR(false positive rate),误识率
类 IAR(imposter Accept rate),“冒名”通过率

FRR

False Reject Rate,正确未通过率,漏识率
类FNR,False Negative Rate,正类错报为负类,拒识率(假负率)
类SAR,Spoofing Accept Rate,“欺骗”接受率,常用于活体检测

相似度和阈值

如对比两张照片,算法会出一个相似度值,范围0~100
实际产品会设置阈值T,1e-6 = 1*10^(-6),即百万分之一,1e-5 十万一
相似度值>阈值T则判定为一个人,反之则不是

阈值和指标

一般阈值越高,误识率越低,漏识率越高
误识率FAR(T), 漏识率FRR(T) 都是基于T的单调函数
求逆,将FRR表示成关于FAR的函数FRR(FAR),就是ROC曲线
如百万一指标:就是FAR= 1e-5 时,对应的FRR(或TP)
千一95%的意思是指在FAR=0.1%的时候,可以做到TP=95%

-------------实际业务场景下理解指标---------------------------------------------------
易用性看正类的比率,真正、漏识
安全性看负类的比率,真负、误识

人脸识别

  • 描述通过指标(看易用性)
    对外:FRR
    参考:通过率、TPR、Recall
  • 描述误判率(看安全性)
    对外:FAR
    参考:误识率、FPR

活体检测

  • 描述对真人的通过率(看易用性)
    对外:FRR
    参考:真人误检率(真人误杀率)、真人通过率
  • 描述对攻击的防御能力(看安全性)
    对外:SAR
    参考:攻击检出率、攻击漏检率
  • 补充关于活体
    活体攻击,一般是想要识别出攻击(图片、头模型、假人等),所有攻击被定义为正类,术语常用真人误杀、攻击漏检
    在采集时,需采集算法容易错的样本

睁闭眼检测

  • 描述睁眼判断准确率
    对外:FRR(睁眼误判为闭眼)、FAR(闭眼误判为睁眼)
    参考:双百率(当正闭眼误判率调节相同的情况下,误判率为百分多少)
    描述更贴切场景,少用术语类,通过率、准确率;一般睁眼为正类

注意力检测

  • 描述注意力判断的准确率
    对外:FRR(注视误判非注视)、FAR(非注意误判为注视)
    参考:双百率(当注和非注判率调节相同的情况下,误判率为百分多少)
    描述更贴切场景,少用术语类,通过率、准确率;一般注视为正类

眼嘴鼻遮挡检测

  • 描述遮挡判断准确率,一般非遮挡为正类
    对外:FRR(非遮挡误判遮挡)、FAR(遮挡误判为遮挡)

注意场景类的,要明确好哪种场景是正类
一般期望的场景是正类
如,注视、非遮挡(虽然有个非,但是不遮挡是想要的结果)

-------------衍生衍生再衍生的可用指标------------------------------------------------

FPPI

False Positive num Per Image 每张图中错误检索的数目,值越小越好

FPPV

FP num per Video

FPPH

FP num per Hour

FPPD

FP num per day

-------------还有什么呢,包含但不限于------------------------------------------------

存储指标

一般指的是模型站内存大小,常见单位兆M

速度

计算速度,模型训练和预测需要的时间,处理1次需要的时间,常见单位ms(毫秒)

鲁棒性

处理缺失值和异常值的能力

可拓展性

处理大数据集的能力

可解释性

模型预测标准的可解释性,比如决策树产生的规则容易理解,而神经网络黑盒有大量参数不好理解

易集成性

模型是为了实现某种场景,比如手机人脸识别,要集成到手机平台
集成的难易程度,也是甲
方考虑的因素之一

其他

比如人脸检测,看可以兼容的角度范围、最小人脸的pixel值、可检测的人力数目

-------------如果指标异常,来找找原因------------------------------------------------

测试数据量不够?

人脸比对示例:
100人,每人1张底库(100张底图)10张查询图(1000张查询图)
总共对比100*1000次= 100000次
其中1000对正样本(自己对比自己),99000对负样本(自己对比别人)
可以看万一的指标,但侧十万一就不太可信了

正负样本是否均匀采样?

正负样本要均衡

底库质量不好?

这个很好理解,模糊、遮挡、跨年龄等等

数据标注错误?

同个人标注为不同人,会出现相似分比较高的误识别
非采集人员的人脸混入数据集离,导致同一人的数据有其他的脸,出现相似分低的拒识别

train和val集是否干净?

  • val的干净程度决定了模型选取的标准,train集的感觉程度决定了模型的优劣,
  • 一般train比val量大,有点noise影响不大,有问题优先check val集->train集
  • train集清洗,可以重采样把loss最大的部分挑出重标注
  • 清洗val集时,应该让数据定义更纯粹,把有歧义的(需要仔细分别或凭干净判断)的样本去除,除非要故意设立hard_case集
  • 清洗train集时,应该让数据定义更符合需求,如眯眼定义为睁眼,那就标注为睁眼,而非去掉歧义样本

看badcase

从难到易,定位原因
用线上demo(成熟模型基线)跑识别分数,对分

哪些情形容易出错

大角度、遮挡(口罩、墨镜、刘海、帽子)、模糊、低信噪比、化妆




文章来自个人专栏
AI算法测试
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0