赞
踩
#c 引入 为什么要有指标
评价一个模型,有很多指标。模型往往不能同时兼顾准确率和推理速度。这些指标从不同方面衡量了模型好坏,我们便可根据这些指标来合理选择模型,对模型性能取舍。
在定义模型性能的指标前,需要定义几个基本概念。
#d TP (True positives)
正类判定为正类
#d FP (False positives)
负类判定为正类
#d FN (False negatives)
正类判定为负类
#d TN (True negatives)
负类判定为负类
#e FP、FP、FN、TN的例子(分类)
有10个人,前6个人是中国人,后4个是日本人。
1、2、3、4、5、6、7(日)、8(日)、9(日)、10(日)
目标:找出所有的日本人;
结果:模型找出的人是 1号、3号、7号、8号、9号;
分析:
此时的positives是
1号、3号、7号(日)、8号(日)、9号(日)(模型认为是日本人)
此时的negatives是
2号、4号、5号、6号、10号(日)(模型认为不是日本人)
我们根据真实标签可知
TP=3 对应positives的7号、8号、9号
FP=2 对应positives的1号、3号
TN=4 对应negatives的2号、4号、5号、6号
FN=1 对应negatives的10号
这几个概念不仅仅在目标检测任务中有,在机器学习任务中都有,不限于视觉任务。
从英文名称可以看出,后面Positives和negatibes对应着预测值。
#d 精度的定义 精度
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP
#e 精度的例子(分类) 精度
在上面的例子中:
P
r
e
c
i
s
i
o
n
=
3
3
+
2
Precision=\frac{3}{3+2}
Precision=3+23
#d 精度的意义 精度
TP+FP,可以看出,就是所有的Positives,即模型认为是正确的。但其中只有TP是真正正确的。也就是预测的正例(模型认为是日本人)中,有多少个是真正的正例(真正的日本人)。
#d 召回率的定义 召回率
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall=\frac{TP}{TP+FN}
Recall=TP+FNTP
#e 召回率的例子(分类) 召回率
R
e
c
a
l
l
=
3
3
+
1
Recall=\frac{3}{3+1}
Recall=3+13
#d 召回率的意义 召回率
TP+FN,对应着所有的真正例。TP也就是,模型拿从所有真正例中选出了几个。也就是所有日本人中,有多少个人本人被选了出去。所以又叫查全率。
以上例子都是分类中的。可以看到,要计算召回率和精度,我们需要TP、FP、FN三个量。在目标检测中,TP、FP、FN又有了新的形式,但本质是不变的。
#e TP、FP、FN的例子(目标检测)
我们需要定义两个阈值,置信度阈值和IOU阈值。
参考资料:阈值参考资料
此时,我们有1个动物检测模型。当模型性能足够好时,图片中所有的动物,图片中所有动物,都会被预测出。(!!!简单起见,模型不会区分是哪种动物。比如狗、马、人、羊都会被模型认为是动物。但我们的模型不care是哪种动物。虽然正常情况都有)
我们有一个图片:
随后,我们拿模型进行了一次预测,结果是这样:
其中,红色框是我们的标签,绿色框是我们的预测框。每个框都有一个变量,叫做置信度。简单来说,就是模型对这个框可靠程度的一种估计。我们设置了一个值,不要置信度0.3以下的框,或者说置信度阈值为0.3。这样,最终的预测框就成了这样:
此时,又有1个值,叫做IOU,也就是真实框和预测框的交并比(不过多解释了)。可以明显看到,人的框IOU还不错,但马的框IOU很小。经过计算 IOU人=0.7 IOU马=0.3
我们设置了另一个阈值,也就是IOU阈值。
(1)设IOU阈值为0.5。
现在,我们可以定义,此次检测结果
TP=1 (人身上的预测框)
FP=1 (马身上的预测框)
FN=2 (马和狗的框,并没有正确给出)
P
r
e
c
i
s
i
o
n
=
1
1
+
1
Precision=\frac{1}{1+1}
Precision=1+11
R
e
c
a
l
l
=
1
1
+
2
Recall=\frac{1}{1+2}
Recall=1+21
(2)设IOU阈值为0.2
TP=2(人和马)
FP=0(无)
FN=1(狗)
P
r
e
c
i
s
i
o
n
=
2
2
+
0
Precision=\frac{2}{2+0}
Precision=2+02
R e c a l l = 2 1 + 2 Recall=\frac{2}{1+2} Recall=1+22
可以看出,我们更改IOU阈值,会有不同的精度和召回率。
而且,两者是反向的。一个越高,另一个就会越低。
我们取11个阈值,绘制点于图中,可得到这样的曲线。
图片来源:一个知乎大佬的回答
#d AP
AP为既是RP曲线下的面积
#d mAP
mAP就是每所有目标类别AP的均值。
我们之前讨论的例子,是一个特例,也就是动物这个类别。如果继续细分的话,每一个类别都会有自己的RP曲线,进而得出map值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。