1、准确率和召回率
真实值与预测值之间的关系如下左图所示,右图是二者之间的一个直观表示,同时也能清晰的看出准确率和召回率的具体含义。准确率
P
P
P 给出了“预测为真值的样本中确实有多少比例为真值”,召回率
R
R
R 则给出了“本来就是真值的样本模型预测出来了多少”。所以,准确率也称为“查准率”,它说明的是预测真值中有多少是对的;召回率也称为“查全率”,它说明的是真实真值中有多少被找到了。准确率(precision)和召回率(recall)作为统计值,各自的计算方式(实例计算方式看这里):
P
=
T
P
T
P
+
F
P
R
=
T
P
T
P
+
F
N
P=\frac{TP}{TP+FP} \\ R=\frac{TP}{TP+FN}
P=TP+FPTPR=TP+FNTP一般来说,
P
P
P 和
R
R
R 是相互制约的,一个越高另一个就越低,统计上用
P
R
PR
PR 曲线来描述二者的关系。
对于一个抽样集合,模型的预测值和真实值都是确定的,
P
P
P、
R
R
R 也应该是一个确定的值,为什么会出现一条曲线?实际上如果是一个
b
a
t
c
h
=
128
batch=128
batch=128 的集合,我们并不是直接计算128个样本的
P
/
R
P/R
P/R,而是按照每个样本的置信度概率将它们从大到小排序,然后从第一个样本开始计算
P
/
R
P/R
P/R,然后加入第二个再计算
P
/
R
P/R
P/R,以此类推;这样
R
R
R 的值就会一步步增大、逐渐接近1,而
P
P
P 则逐渐下降,这也意味着模型的预测中有
F
P
FP
FP 的出现。
这里,在将样本一个个加入计算集合的过程中,
R
R
R 的值可能不变(也就是没有
T
P
TP
TP 出现),但是
P
P
P 的值却发生改变(出现了
F
P
FP
FP),这导致一个
R
R
R 对应多个
P
P
P,这时我们只将最大的
P
P
P 值考虑进来(同一
R
R
R 值取最大
P
P
P 值)。
PR曲线反映了模型对正例的识别准确度和识别覆盖能力之间的权衡。
从以上
P
R
PR
PR 曲线的性质可以看出,如果模型
A
A
A 的
P
R
PR
PR 曲线包含了模型
B
B
B 的
P
R
PR
PR 曲线,那么模型
A
A
A 的性能要优于
B
B
B。但是如果二者发生交叉呢?下图就是实际应用中会经常看到的一组模型性能对比图。如果
P
/
R
P/R
P/R 值都很高,很难直接通过
P
R
PR
PR 曲线去比较哪个模型更好时,可以用
F
1
F1
F1 值来替代衡量:
F
1
=
2
P
R
P
+
R
F1=\frac{2PR}{P+R}
F1=P+R2PR另外,也可以观察平衡点
P
=
R
P=R
P=R,二者相等时的取值越大表明模型性能越好。
2、mAP
在论文中经常见到一种参数是 m A P mAP mAP(平均均值精度),常见的目标检测数据集 VOC/COCO都是以此为衡量标准,它跟 P R PR PR 曲线息息相关。先看一下 A P AP AP 的计算,以2010年为界它有两种不同的计算方法,现在更常用的是第二种:
- 2010年以前:针对某一分类将召回率 R R R 等距划分为十一个值 [ 0 , 0.1 , 0.2 , . . . , 1 ] [0,0.1,0.2,...,1] [0,0.1,0.2,...,1],对于每一个 R R R 值计算对应的最大准确率 P P P(从 P R PR PR 曲线就可以查到),然后对这十一个 P P P 值求均值,也就是 A v e r a g e P r e c i s i o n Average Precision AveragePrecision。
- 2010年以后:针对某一分类的 n n n 个样本,假设它有 m m m 个正例,每一个正例就对应一个召回率 R R R 值( 1 / m , 2 / m , . . . , 1 1/m,2/m,...,1 1/m,2/m,...,1),对每一个召回率计算最大准确率 P P P,然后对这 m m m 个 P P P 值求均值。 A P = 1 m ∑ i m P i = 1 m ∗ P 1 + 1 m ∗ P 2 + ⋯ + 1 m ∗ P m = ∫ P ( R ) d R AP=\frac{1}{m}\displaystyle\sum_i^m{P_i}=\frac{1}{m}*P_1+\frac{1}{m}*P_2+\dots+\frac{1}{m}*P_m=\int{P(R)}dR AP=m1i∑mPi=m1∗P1+m1∗P2+⋯+m1∗Pm=∫P(R)dR
注意到 A P AP AP 是针对于某一个类的,而一个数据集往往包含相当多的分类,对数据集所有类的 A P AP AP 求均值就得到 m A P mAP mAP。 m A P = 1 C ∑ j C A P j mAP=\frac{1}{C}{\displaystyle\sum_j^C{AP}_j} mAP=C1j∑CAPj所以, m A P mAP mAP 中: P P P 代表一个样本的最大准确率, A P AP AP 代表一类样本的平均准确率, m A P mAP mAP 就是数据集的平均准确率。
3、COCO数据集中的AP/AP50/AP75
对于图像分类任务,
m
A
P
mAP
mAP 针对的就是类识别准确率,但是在目标检测任务中还有一个边框回归任务,框的准确率一般用交并比来
I
o
U
IoU
IoU 衡量。COCO数据集目标检测评价指标中,
A
P
/
A
P
50
/
A
P
75
AP/AP50/AP75
AP/AP50/AP75 指的是
A
P
I
o
U
=
0.5
:
0.05
:
0.95
/
A
P
I
o
U
=
0.5
/
A
P
I
o
U
=
0.75
AP^{IoU=0.5:0.05:0.95}/AP^{IoU=0.5}/AP^{IoU=0.75}
APIoU=0.5:0.05:0.95/APIoU=0.5/APIoU=0.75。
I
o
U
=
.
50
:
.
05
:
.
95
IoU=.50:.05:.95
IoU=.50:.05:.95 指的是交并比从0.5开始间隔0.05一直取值到0.95,然后求均值。
具体实例: