检测、识别
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.
某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了。
首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。
这样说听起来有点抽象,简单说就是,前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类。accuracy需要得到的是此君分正确的人占总人数的比例。很容易,我们可以得到:他把其中70(20女+50男)人判定正确了,而总人数是100人,所以它的accuracy就是70%(70 / 100).
由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取了argcv 100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工作,那我会把所有的页面都判断为”不是argcv的页面”,因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.
在说precision,recall和f1-measure之前,需要先需要定义TP,FN,FP,TN四种分类情况。按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为”正类”,而男生为”负类”.
2 指标
2.1 TNR
True Negative Rate(真阴性率或特指度(specificity))
TNR = TN /(TN + FP)
负样本正确判断为负样本结果数 / 负样本实际数
2.2 FPR
False Positive Rate (假阳性率, 可以称作误报率)
FPR = FP /(FP + TN)
负样本被判别为正样本的错误结果数 / 负样本实际数
2.3 FNR
False Negative Rate(假阴性率 , FNR) 可以称作漏报率
FNR = FN /(TP + FN)
正样本被判决为负样本的错误结果数 / 正样本实际数
另外在医学上FNR和FPR定义如下:
假阴性率(false negative rate,FNR),又称漏诊率或第Ⅱ类错误。指实际有病,但根据筛检试验被定为无病的百分比。它反映的是筛检试验漏诊病人的情况。
假阳性率(false positive rate,FPR),又称误诊率或第Ⅰ类错误的。指实际无病或阴性,但被判为有病或阳性的百分比。在科学实验或检测当中,出现假阳性结果的几率。无病但根据筛检被判为有病的百分比。
2.4 召回率(recall)
True Positive Rate(召回率、真阳性率或灵敏度(sensitivity))
计算公式是
recall-precision-false-positive-false-negative-2
它计算的是 正样本正确判断正样本的结果数 / 正样本实际数。
在开始介绍的例子中就是希望知道,得到的女生占本班中所有女生的比例,所以其recall也就是100%,即20女生/(20女生+ 0 误判为男生的女生)。
2.5 精确率(precision)
公式是recall-precision-false-positive-false-negative-3
它计算的是所有被检索到的个数(TP+FP)中”应该被检索到的个数(TP)”占的比例。
在开始介绍的例子中就是希望知道,正确的人(也就是女生)占有的比例。所以其precision也就是40%,即20女生/(20女生+30误判为女生的男生)。
2.6 F-Measure
定义:
recall-precision-false-positive-false-negative-4
定义recall-precision-false-positive-false-negative-6为P和 R 的调和平均数。
可得:
recall-precision-false-positive-false-negative-5
F-Measure又称为F-Score,是IR(信息检索)领域的常用的一个评价标准,计算公式为:其中β 是参数,P是精确率(Precision),R是召回率(Recall)。
当参数β=1时,就是最常见的F1-Measure了:
recall-precision-false-positive-false-negative-7
“召回率”与“准确率”虽然没有必然的关系(从上面公式中可以看到),然而在大规模数据集合中,这两个指标却是相互制约的。
PR曲线即查准率(Precision)与查全率(Recall),以查全率为坐标x轴,查准率为坐标y轴,从而画出了一条曲线。
P-R图直观地显示出学习器在样本总体上的查全率和查准率。在进行比较时,若一个学习器的P-R曲线完全被另一个学习器的曲线完全“包住”,则我们就可以断言后者的性能优于前者。
ROC曲线表示的是TPR(真阳率)和FPR(假阳率)的关系,PR去向表示的是precision和recall的关系。
AUC(Area Under Curve)即为ROC曲线下的面积。
为什么选择ROC曲线?
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线5的对比
目标检测性能指标
- 识别精度
- 识别效率
- 定位准确性
在目标检测的评价体系中,有一个参数叫做 IoU,简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率。在Pascal VOC中,这个值为0.5。而2014年以来出现的MS COCO竞赛规则把这个IoU变成了0.5-1.0之间的综合评价值,也就是说,定位越准确,其得分越高,这也侧面反映了目标检测在评价指标方面的不断进步。
目标检测进展
传统目标检测方法
传统的目标检测方法,这篇 overview [1] 里总结的比较全面,而且都给了性能和时间复杂度的比较,对传统方法比较感兴趣的建议可以精读一下。考虑到 detection 的精度与时间复杂度问题,就介绍下 SelectiveSearch [2] 和 Edgeboxes [3]。
基于深度学习的目标检测进展
R-CNN
Fast-R-CNN
Faster-R-CNN
YOLO
SSD