多标签图像分类任务的评价方法——mAP

来源:互联网 发布:附近编程培训班 编辑:程序博客网 时间:2024/06/01 18:29

在单标签图像分类任务中,一般使用top1 accuracy 或者 top5 accuracy 衡量分类的准确性。而多标签图像分类任务的评价方法一般采用的是和信息检索中类似的方法——mAP(mean average precision)。以下是mAP的计算方法:

在介绍mAP的计算方法之前,先介绍两个更基本的概念:precision and recall


如上图1所示,圆圈内的样本为选出的模型预测的n个“正样本positive”(包括true positive and false positive),矩形内的样本为模型测试的所有样本m(包括true positive and true negative)。precision表示的是:预测的n个”正样本positive”中true positive个数占预测的n个“正样本positive”的比例大小。recall表示的是:预测的n个”正样本positive”中true positive个数占该模型测试的所有样本中true positive的比例大小。


在对多标签图像分类时,首先用训练好的模型得到所有测试样本的confidence score,每一类(如car)的confidence score都保存到一个文件中(如test_car.txt)。假设该文件包含20个测试样本(即对应图1中的矩形),每个id, confidence score, ground truth label如下:


接下来按照confidence score从大到小排序,结果如下:


在此顺序下,逐渐增大选出图片的数量n(n从1到20,,即对应图1中圆圈内的图片数量)。计算每个n下的precision and recall。比如对20个测试图片在car分类器上的分类结果,我们选出排序后的前五个,如图所示:


在上图中,选出的5个图片中(图1中圆圈内的图片),true positive即第4和2张图片,false positive就是指第13,19,16张图片。剩下的15个图片是对应图1中圆圈外的图片,即:


其中,false negative是指第9,16,7,20张图片,true negative是指第1,18,5,15,10,17,12,14,8,11,3张图片。

那么,这个例子中,precision等于2/5,即选出的5个“positive”图片中有两个是true positive。recall等于2/6,即在所有测试图片中,有6个positive,但这次只召回了2个true positive。实际的多标签图像分类中,我们通常不满足只通过top5个测试图片来衡量模型,而是需要知道top1到topm(m是所有的测试样本个数,此例为20)对应的precision and recall。并且,当选出的图片数量n增加,recall是逐渐增大的(如1/6,2/6,...,6/6)。而随着recall增加,precision整体上呈现下降趋势。如果把recall当做横轴,precision当做纵轴,则可以得到precision-recall曲线,这个例子的曲线如下图:


计算结果的表格形式见下表:


从表中可以看到,同一recall值,可能具备多个precision值,通常的做法是取其中最大的precision,这样得到的precision-recall曲线如下图:


最后,对每个recall对应的precision求均值就得到所谓的average precision,即AP。这样就得到了对应一个类(分类器)的average precision,它表示的是该模型在某个类别上的好坏,如果要求模型在所有类别上的好坏,就求所有类别对应的AP的均值,即所谓的mAP。

reference:http://blog.sina.com.cn/s/blog_9db078090102whzw.html


原创粉丝点击