背景:突發奇想,雖然一直有接觸這個指標。

為什麼不是直接用top-1error,或者accuracy表示模型性能?

使用top-5,或者top-k,是為了多一個參考模型性能指標(有沒有意義)嗎?

有什麼其他意義嗎?


top-5 error 應該是 ImageNet 比賽所引入的一種評價指標。在2010年的第一屆比賽說明中就有所提及,並在2011年的比賽說明中給予了解釋。

The idea is to allow an algorithm to identify multiple objects in an image and not be penalized if one of the objects identified was in fact present, but not included in the ground truth.

ImageNet Large Scale Visual Recognition Competition 2011 (ILSVRC2011)?

image-net.org

即在分類任務中,每張圖像只標記了一個ground truth ,但由於圖像都來源網路拍攝條件不可控,圖像中可能實際包含多個物體。如果演算法預測出了實際出現、但是沒有標記到的物體,也應該算預測正確。因此讓演算法預測出5個物體,其中之一為ground truth就算正確。


  1. 給數據標註者一些機會

圖片的分類任務中,一般主要是單標籤分類,也就是說對於一張圖片只有一個正確標籤,但一般的圖片中,往往會存在多個對象,也就是說實際上可能應該是個多標籤,此時,由於數據標註者並沒有完全標註出所有對象,因此,top-k的預測實際上一定程度上可以緩解數據標註不夠精確的問題,也就是給數據標註者一些機會,從而能更好地評估模型的性能,降低標註誤差帶來的影響。

2. 給數據預測者一些機會

除了多標籤問題外,還有一個問題:實際生活中,很多東西就是很難分辨,就算是給人去分辨,也很難保證一次就分對,一擊即中要求太高,而且也容易產生過擬合。因此,不妨稍微降低一點難度,我給你k次機會,讓你猜你覺得最有可能的那幾個結果,如果猜對了,這樣我也可以認為模型的性能是可以接受的,也就是給數據預測者一些機會。


如果你的模型用於決策的場景是和用戶進行一輪交互,展位是複數且有限的,即只有一次機會提供複數個選擇,目的是為了解決用戶一個問題,那麼這個指標就很有價值。

比如在客服場景中,要預測用戶可能遇到的問題,並對問題的提供解答,在展位有限的情況下,衡量top-k的準確率比top-1更有意義,比如退票問題和改簽問題,本來就有替換性。


Top-K accuracy 適用於: 1) 類別之間存在較大相似性 (如人臉圖像, 行人圖像等), 同時對漏檢率要求高的任務, 這時返回TopK個目標, 可以更大概率保證不存在漏檢 (想想刑偵中的人臉檢索); 2) 還有 @lixin liu 說的情況 (圖像中可能實際包含多個物體, 如 ImageNet 數據集).

更一般的指標是 CMC (Cumulative Match Characteristic) 曲線,其常見於人臉識別,行人重識別,圖像檢索等任務中。


直觀感受來強答一下。

小時候考試的時候如果沒考好,家長會問你,是不會還是太粗心了?粗心的話說明你會,只是沒看清題目或是計算出錯罷了。個人直觀感覺top5這個東西就是判斷模型是真的不會還是粗心。


注重召回率的任務可以關注這個指標


推薦閱讀:
相关文章