檢測、識別


假如某個班級有男生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四種分類情況。按照前面例子,我們需要從一個班級中的人中尋找所有女生,如果把這個任務當成一個分類器的話,那麼女生就是我們需要的,而男生不是,所以我們稱女生爲」正類」,而男生爲」負類」.

通過這張表,我們可以很容易得到例子中這幾個分類的值:TP=20,FP=30,FN=0,TN=50.

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的對比 


目標檢測性能指標

  1. 識別精度
  2. 識別效率
  3. 定位準確性

在目標檢測的評價體系中,有一個參數叫做 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