什么是mAP?
1.先在詞義上理解一下這個東西
mAP(mean Average Precision)
1.1Precision
Precision的定義如下也就是在預測的結果當中有多少是真正的:
Precision和ReCall都是很好的評價因素,具體選擇哪個主要是看我們更加在乎什么?
我們用目標檢測舉例子,目標檢測的時候:
- 如果錯誤的圈出來的空框對我們影響很大我們就應該使用Precision,
- 如果沒有圈出來的物體對我們影響很大我們就應該使用Recall
1.2Average
有幾個朋友跟我反饋看不懂,我準備換成兩個方式解讀,如果您方式一看不懂,可以試一下方式二:
1.2.1 方式1:簡單粗暴,直奔主題
均值的目的:在評估模型在不同的Recall要求下工作的平均表現。
既然是求一個均值,那么我們就得確定一個分類標準
- 什么是分類標準?
例如我們可以選擇這樣的分類標準,就是將每個元素都分成一個類,這樣對所有類別求平均就是我們熟知的求平均方式了。所以分類其實是我們平時計算分類忽略的小細節。我們認為每個物體都當做一個分類是理所應當的。 - 在AP當中我們是否可以沿用每個個體都當做一個分類的方式?
采用我們熟知的單獨分類顯然不行,因為我們上面也說了Precision的計算方法,如果對于一個物體來計算有點不對勁。 - 那么我們能不能用Precision作為分類標準?
能不能使用Precision的值作為分類標準?
顯然也不行,如果這樣子的話,我們就相當于將每個Precision的值當做權重相等來看待(就算某個Precision值只出現一次,他也會被當做一個類,和其他類具有相同的權值),這個是不太對勁的。 - 那么為什么用使用Recall作為分類標準?
這個使用Recall作為分類標準的思想,就是實際的做法,其實想一下他的思想,確實很好。使用Recall的目的就是,在評估模型在不同的Recall要求下工作的平均表現。
確定一個分類標準之后,怎么在相同的Recall當中選定代表這個Recall類別的值?
- 選擇這個Recall當中的所有值得平均值可以嗎?
這樣不好吧,因為我們在實際選擇的時候在滿足這個Recall的前提下,不會將所有的Precision的值都取到,我們肯定會取一個最好的Precision。 - 所以我們怎么選?
上面的分析中其實我們已經確定了,直接選擇最大的Precision就完事了。 - 怎么選擇最大值?
就是選定恰好合適的confidence就完事了唄。
1.2.2 方式2:順序理解這個東西
這個是平均,對什么求平均,我們回憶yolo當中的confidence,預測的結果是一個置信度,但是可沒有確定多少的置信度我們需要將其真正的標記出來吧。所以,就有了下面這個在眾多博客中出現的圖片:
這個東西就是預測出來的結果
我們按照置信度排順序之后,就成了下面的結果
這樣就出現了下面的情況,就是我們選定某個confidence閾值作為判定樸準時的情況,得到不同的Precision,之后求均值。
這里最關鍵的就是怎么分成這么多類的,這里既然是評估Precision就得用另外的Recall作為衡量標準,所以這里是使用Recall值得不同來完成劃分的。
總結:
1.用recall值的不同劃分小組
2.之后各組選一個最大值(就是在把持當前recall的情況下最好的precision可以達到的情況。)
3.用最大值求一個均值就是AP了
1.3mean
這里又是一個均值,和之前的average又有什么區別呢?其實這兩個是完全不同的,之前的AP是對某一個確定類別做事,但是有很多類別,所以我們需要對所有的類別求一個均值。
2.總結
2021年7月24日23:33:16太晚了鐵子們,明個寫吧。
總結
- 上一篇: 卷积核个数和输入输出通道数的关系
- 下一篇: YOLO系列阅读(一) YOLOv1原文