异常检测模型常用的评价指标I-AUROC、PRO等。。。
1、TPR & FPR
混淆矩阵:
TP:真实值为异常,预测值也为异常
FN:真实值为异常,预测值为正常
。。。以此类推。。。
真正率(True Positive Rate,TPR),也称为召回率 (Recall),是指在所有实际异常样本中,被正确检测为异常的比例。
T P R a t e = T P T P + F N TPRate = {\frac {TP} {TP+FN}} TPRate=TP+FNTP
假正率(False Positive Rate,FPR),是指在所有实际正常样本中,被错误地检测为异常的比例。
F P R a t e = F P F P + T N FPRate = {\frac {FP} {FP+TN}} FPRate=FP+TNFP
在异常检查中,TPR越大,FPR越小,表示异常检测模型检测效果越好
2、ROC & AUROC(AUC)
ROC(Receiver Operating Characteristic Curve)曲线,通过在不同的阈值下绘制假阳性率和真阳性率,可以展示模型在各种分类阈值下的性能。在ROC-AUC曲线图中,其横坐标是假正率FPR,纵坐标是真正率TPR。
异常检测性能的评估
AUROC (Area Under the Receiver Operating Characteristic),是接收者特性曲线下方的面积,也称AUC(Area Under ROC Cure),即 ROC曲线下的面积
。用于评估异常检测性能。
A U R O C = ∫ 0 1 ( T P R ) d ( F P R ) AUROC = {\int_{0}^{1} (TPR) d(FPR)} AUROC=∫01(TPR)d(FPR)
AUROC通过接受者操作特征曲线与坐标轴之间的⾯积⼤⼩来反应分类器的性能。
其意义在于:
- 因为AUROC是在ROC曲线1x1的方格里求面积,所以取值范围必在0~1之间。
- AUROC值反映了,若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本的概率。
- 简单说:
AUROC值越大的分类器,预测正确率越高。
ROC曲线(Receiver Operating Characteristic curve)
- I-AUROC(Image Level AUROC)
- I-AUROC关注的是整个图像是否包含异常(
图像级别
的异常识别能力)。 - 计算方法通常是对每张图像生成一个异常分数(可能是图像中所有像素异常分数的最大值或其他统计值),然后通过改变阈值来确定图像是否异常,并计算ROC曲线下的面积。
- 这种方法适用于评估模型能否准确识别出含有异常的图像,而不关心异常的具体位置。
- I-AUROC关注的是整个图像是否包含异常(
- P-AUROC(Pixel Level AUROC)
- P-AUROC关注的是模型在
像素级别
识别异常的能力。 - 计算方法是使用模型输出的异常热度图(anomaly heatmap),通常是一个与输入图像大小相同的二维数组,其中每个值表示该像素异常的可能性。
- 通过设定不同的阈值,将热度图二值化,得到异常像素的预测掩码,然后与真实的异常掩码进行比较,计算TPR和FPR,并绘制ROC曲线,最终计算曲线下的面积。即反映像素级别异常检测的准确性。
- P-AUROC关注的是模型在
3、IoU & PRO
IoU(Intersection over Union,交并比),预测框和真实框相交区域面积和合并区域面积的比值,一般用于衡量定位精度 。
I o U = P ∪ G P ∩ G IoU = {\frac {P∪G} {P∩G}} IoU=P∩GP∪G
即:
异常定位性能的评估
PRO(Per-Region-Overlap)是一种用于评估异常检测模型性能的指标,特别是在评估模型在图像中定位异常的能力方面。与像素级别的评估(如P-AUROC)不同,PRO关注的是 图像中异常区域的定位准确性
,而不管这些区域的大小如何(平等地对待任何大小的异常区域)。
P R O = 1 N ∑ n = 1 N P ∩ G n G n = 1 N ∑ n = 1 N T P n T P n + F N n PRO = {{\frac {1} {N}}{\sum_{n=1}^{N} {\frac {P∩G_n} {G_n}}}} = {{\frac {1} {N}}{\sum_{n=1}^{N} {\frac {TP_n} {TP_n + FN_n}}}} PRO=N1n=1∑NGnP∩Gn=N1n=1∑NTPn+FNnTPn
其中,
N
N
N 是异常区域的总数;
P
P
P 是预测的异常区域;
G
n
G_n
Gn 表示是第n个真实异常区域,实际上的真实异常区域按连通域划分为N个区域;
T
P
N
TP_N
TPN 表示第n个真实异常区域,并且准确地预测出异常区域,即预测结果P和真实异常区域
G
n
G_n
Gn的交集;
F
N
N
FN_N
FNN 表示第n个真实异常区域,但是没有正确预测出异常区域;
(其实,
T
P
N
=
P
∩
G
n
,
F
N
N
=
G
n
TP_N = P∩G_n,FN_N=G_n
TPN=P∩Gn,FNN=Gn)
PRO的计算方法:
- 二值化:首先,模型为测试集中的每个像素输出一个异常分数,然后通过设定一个阈值将这些分数转换为二值图像(即异常或正常)。
- 连通域标记:在二值图像中,将连通的异常像素区域标记为一个个独立的区域。
- 计算重叠:对于每个异常区域,计算预测结果与真实标注之间的重叠部分。这通常通过计算预测区域与真实区域的交集和并集,然后计算交集占并集的比例来完成,即计算IOU(Intersection over Union)。
- 平均计算:计算所有异常区域的IOU平均值,得到PRO分数。
PRO分数越高,表示模型在定位异常区域方面的表现越好
。PRO指标特别适用于那些异常区域的大小和形状多变的情况,因为它不依赖于异常区域的大小,而是关注预测区域与真实区域之间的重叠程度。
此外,为了更全面地评估模型性能,可以绘制PRO曲线,通过在不同的假阳性率(FPR)下计算PRO分数,然后选择FPR在0-30%之间的阈值来计算PRO曲线下的面积(AUPRO),这可以提供一个与阈值选择无关的性能度量。
选择FPR在0-30%之间的阈值来计算AUPRO的原因是:
- 避免高FPR的影响:当FPR很高时,意味着有大量正常区域被错误地识别为异常区域,这会导致PRO值虚高,不能准确反映模型的定位精度。
- 平衡灵敏度和特异性:在FPR较低的区间内,模型的假阳性较少,能够更好地平衡模型的灵敏度(检测到异常的能力)和特异性(正确识别正常区域的能力)。
- 实用性:在实际应用中,通常更关注模型在较低的FPR水平上的性能,因为这有助于减少误报,提高模型的实用性。
因此,通过限制FPR在0-30%的范围内计算AUPRO,可以更准确地评估模型在实际应用中的异常检测和定位能力。
PRO & P-AUROC 的区别:
- P-AUROC 关注的是像素级别的异常检测性能,而 PRO 关注的是区域级别的异常检测和定位性能。
- P-AUROC 通过改变阈值来计算模型在不同情况下的性能,而 PRO 直接关注预测区域与真实区域之间的重叠程度。
- PRO 指标平等地对待任何大小的异常区域,而 P-AUROC 可能会受到异常区域大小的影响。
P-AUROC 可能会受到异常区域大小的影响的原因:
P-AUROC(Pixel Level AUROC)是一种评估异常检测模型性能的方法,它在像素级别上进行操作。这意味着模型为图像的每个像素生成一个异常分数,然后根据一系列不同的阈值将这些分数转换成二值图像(异常或正常)。在计算P-AUROC时,真正例(TP)和假正例(FP)的计数是基于像素的,而不是基于区域或对象的。因此,如果模型能够正确识别出一个大的异常区域,即使这个区域只占整个图像的一小部分,它也可能会显著提高TPR(True Positive Rate),从而提高AUROC分数。
P-AUROC的缺点是它可能会受到异常区域大小的影响。如果一个图像中的异常区域较大,那么即使模型只是略微准确地定位了这个区域的一部分,也可能由于异常像素的绝对数量较多,而错误地提高了模型性能的评估。相反,如果模型错误地将一个小的异常区域识别为正常,这在整体上对FP(False Positive)的影响可能较小,因此对AUROC分数的影响也较小。
相比之下,PRO(Per-Region-Overlap)是一种更加关注异常区域定位准确性的评估指标。它通过计算模型预测的异常区域与真实异常区域之间的重叠部分来评估模型性能。PRO考虑的是区域级别的重叠,而不是像素级别的,因此它平等地对待任何大小的异常区域,而不是仅仅基于像素计数。
总结来说,P-AUROC可能会因为异常区域的大小而受到影响,而PRO提供了一个更加公平的评估,因为它关注的是预测区域与真实区域之间的重叠程度,而不是区域的大小。
[REFERENCE]
异常检测专栏(二):评价指标及常用数据集
缺陷异常检测及定位性能评价指标–AUROC,PRO(per-region-overlap)
异常检测常用评价指标
神经网络常见评价指标超详细介绍(ROC曲线、AUC指标、AUROC)