對mAP進行分解,讓你了解的更清楚

2019-10-08     AI公園
作者:Ren Jie Tan
編譯:ronghuaiyang

導讀

如果你做過PASCAL Visual Object Classes (VOC)和MS Common Objects in Context (COCO)挑戰,或者涉足過信息檢索和重識別(ReID)的項目,那麼你可能非常熟悉一個叫做mAP的度量。

mAP的Wikipedia定義:

其中Q為集合中的查詢數量,AveP(q)為給定查詢q的平均精度(AP)。

這個公式本質上告訴我們的是,對於給定的查詢q,我們計算它對應的AP,然後所有這些AP得分的平均值會給我們一個單獨的數字,稱為mAP,它量化了我們的模型在查詢方面的性能有多好。

這個定義讓(像我一樣的)剛開始從事這個領域的人感到困惑。我的問題是這組查詢是什麼?AP是什麼意思?它只是精度的平均值嗎?

本文希望解決這些問題,並為物體檢測和信息檢索任務計算mAP。本文還將探討為什麼mAP是用於信息檢索和物體檢測任務的合適且常用的度量標準。

1. 基礎

精確率和召回率是判斷給定分類模型性能的兩個常用指標。要理解mAP,我們首先需要檢查精確率和召回率。

給定分類類別的精確率,即正預測值,表示為真陽性(TP)與預測陽性總數的比值。公式如下:

同樣,給定分類類別的召回率,即真陽性率或靈敏度,定義為TP與ground truth真陽性率之和的比值。公式如下:

僅通過查看公式,我們就可以懷疑,對於給定的分類模型,其精確率和召回率性能之間存在權衡。如果我們使用神經網絡,這種平衡可以通過模型的最終層softmax閾值來調整。

為了提高精確度,我們需要減少FP的數量,這樣做會減少召回率。同樣地,通過減少FN的數量會增加我們的召回率,降低我們的精確度。通常對於信息檢索和物體檢測案例,我們希望我們的精度很高(我們的預測陽性值為TP)。

準確度和召回率通常與其他指標一起使用,如accuracy、F1-score、specificity又名真負率(TNR)、ROC等。

然而,當決定一個模型在信息檢索或物體檢測任務中是否表現良好時,所有這些度量都失敗了。這就是mAP發揮作用的地方!

需要注意的是,用於物體檢測和信息檢索任務的mAP的計算略有不同。下面幾節將演示如何計算和一些關於為什麼要這樣做的討論。

2. 信息檢索的AP和mAP

計算AP

信息檢索中的一個典型任務是用戶向資料庫提供查詢,並檢索與查詢非常相似的信息。現在讓我們用一個帶有三個ground truth陽性(GTP)的示例來執行AP的計算。

附加術語:ground truth陽性是標記為陽性的數據。

我們將定義以下變量:

  • Q為用戶查詢
  • G是資料庫中的一組標記數據
  • d(i,j)是一個分數函數,用來表示i和j有多相似
  • G '是根據score函數d(,)得到的G的有序集合。
  • k是G '的指標

用戶使用圖像Q查詢G

通過對每一幅帶有Q的圖像進行d(,)的計算,我們可以對G進行排序,得到G '。回憶一下精度的定義,現在我們將使用它來計算G '中的每張圖像的AP。

使用GT=3,計算給定查詢Q的AP

這個查詢的總體AP是0.7。需要注意的是,由於我們知道只有三個GTP,所以AP@5就等於整個AP。一般的AP@k公式可以這樣寫:

其中GTP為查詢的ground truth陽性總數,TP為查詢到k時的真值陽性總數。

對於另一個查詢Q,如果返回的G '排序為:

使用GT=3,計算給定查詢Q的AP

在這種情況下,AP所做的是懲罰那些不能以TPs為主導對G '排序的模型。它提供了一個數字,能夠基於評分函數d(,)量化排序的優劣。通過用總GTP除以精度和而不是除以G '的長度,可以更好地表示只有幾個GTP的查詢。

計算mAP

對於每個查詢Q,我們可以計算一個對應的AP。用戶可以對這個標記的資料庫進行任意數量的查詢。mAP只是使用的所有查詢的平均值。

3. 物體檢測的AP和mAP

計算AP(Traditional IoU = 0.5)

交並比(IoU)

為了計算用於目標檢測的AP,我們首先需要了解IoU。IoU由預測邊界框與ground truth邊界框的交面積與並面積之比給出。

IoU用於確定預測邊界框(BB)是TP、FP還是FN。TN不被計算,因為每個圖像中都假定有一個物體。讓我們考慮下面的圖像:

圖片中,一個人和一匹馬使用ground truth邊界框進行標記

圖像包含一個人和一匹馬,以及它們對應的ground truth邊界框。我們暫且不談那匹馬。我們在此圖像上運行我們的物體檢測模型,並收到一個人的預測邊界框。傳統上,如果IoU為> 0.5,我們將預測定義為TP。可能出現的情況如下:

True Positive (IoU > 0.5)

IoU的預測BB(黃色)和GT BB(藍色)> 0.5具有正確的分類

False Positive

有兩種可能的情況,BB將被視為FP:

  • IoU < 0.5
  • 多餘的BB

舉例說明不同的場景,預測的BB(黃色)將被視為FP

False Negative

當預測的BB的IoU > 0.5,但分類錯誤時,預測的BB為FN。

FN BB作為預測的類是一匹馬而不是一個人

精確率/召回率曲線(PR曲線)

通過正式定義TP、FP和FN,我們現在可以計算出我們對整個測試集中給定類的檢測的精度和召回率。每個BB都有它的置信級別,通常由它的softmax層給出,並用於對輸出進行排序。注意,這與信息檢索案例非常相似,只是我們沒有使用相似函數d(,)來提供排名,而是使用了模型預測的BB的置信度。

插值精度

在繪製PR曲線之前,我們首先需要知道插值精度。插值精度p_interp在每個召回級別r上進行計算,取該r測量的最大精度。公式如下:

其中p (r)˜為在在召回率r˜上的測量精度。

他們插值PR曲線的目的是為了減少由於探測等級的微小變化而引起的「擺動」的影響。

有了這些,我們現在可以開始繪製PR曲線。考慮一個person類的例子,它有3個TP和4個FP。我們根據上述公式計算出相應的精度、查全率和插值精度。

以一個有3個tp和4個fp的樣本為例繪製PR曲線的計算表。行對應於BB,按其各自的softmax置信度排序的人的分類。

從上述排名得到的精度-召回曲線

然後用PR曲線下的面積計算AP。這是通過將召回率平均分割為11個部分來實現的:{0,0.1,0.2,…,0.9,1}。我們得到如下結果:

計算mAP

用於物體檢測的mAP是對所有類計算的AP的平均值。同樣重要的是,對於某些論文,它們可以互換使用AP和mAP。

計算AP的其他方法

COCO提供了六種計算AP的方法。

其中三種方法是在對BB的iou使用不同的閾值:

  • AP: IoU時的AP = 0.50: 0.05: 0.95(主要挑戰指標)
  • AP@IoU=0.5(上面描述的傳統計算方法)
  • AP@IoU=0.75 (BBs IoU需要為> 0.75)

對於主AP, 0.5:0.05:0.95表示從IoU = 0.5開始,以0.05為步長,增加到IoU = 0.95。這將導致在10個不同的閾值上進行AP的計算。平均值是為了提供一個單一的數字,獎勵在定位方面做得更好的檢測器。

剩下的三種方法是跨尺度計算AP:

AP ^small:小物體的AP:面積< 32²px

AP ^medium:中等物體的AP:32²px<面積< 96²px

AP^large:大物體的AP:面積> 96²px

這將允許更好地區分模型,因為一些數據集具有比其他數據集更多的小物體。

英文原文:https://towardsdatascience.com/breaking-down-mean-average-precision-map-ae462f623a52

請長按或掃描二維碼關注本公眾號


文章來源: https://twgreatdaily.com/Tlwlsm0BMH2_cNUg-k7v.html