1. 程式人生 > >深度學習常用評價指標

深度學習常用評價指標

評價指標:

  準確率 (Accuracy),混淆矩陣 (Confusion Matrix),精確率(Precision),召回率(Recall),平均正確率(AP),mean Average Precision(mAP),交除並(IoU),ROC + AUC,非極大值抑制(NMS)。

1、準確率 (Accuracy)

  分對的樣本數除以所有的樣本數 ,即:準確(分類)率 = 正確預測的正反例數 / 總數。

  準確率一般用來評估模型的全域性準確程度,不能包含太多資訊,無法全面評價一個模型效能。

2、混淆矩陣 (Confusion Matrix)

  混淆矩陣中的橫軸是模型預測的類別數量統計,縱軸是資料真實標籤的數量統計。

  對角線表示模型預測和資料標籤一致的數目,所以對角線之和除以測試集總數就是準確率。對角線上數字越大越好,在視覺化結果中顏色越深,說明模型在該類的預測準確率越高。如果按行來看,每行不在對角線位置的就是錯誤預測的類別。總的來說,我們希望對角線越高越好,非對角線越低越好。

3、精確率(Precision)與召回率(Recall)

  

  一些相關的定義。假設現在有這樣一個測試集,測試集中的圖片只由大雁和飛機兩種圖片組成,假設你的分類系統最終的目的是:能取出測試集中所有飛機的圖片,而不是大雁的圖片。

  • True positives : 正樣本被正確識別為正樣本,飛機的圖片被正確的識別成了飛機。 
  • True negatives: 負樣本被正確識別為負樣本,大雁的圖片沒有被識別出來,系統正確地認為它們是大雁。 
  • False positives: 假的正樣本,即負樣本被錯誤識別為正樣本,大雁的圖片被錯誤地識別成了飛機。 
  • False negatives: 假的負樣本,即正樣本被錯誤識別為負樣本,飛機的圖片沒有被識別出來,系統錯誤地認為它們是大雁。

  Precision其實就是在識別出來的圖片中,True positives所佔的比率。也就是本假設中,所有被識別出來的飛機中,真正的飛機所佔的比例。

  

  Recall 是測試集中所有正樣本樣例中,被正確識別為正樣本的比例。也就是本假設中,被正確識別出來的飛機個數與測試集中所有真實飛機的個數的比值。

  

  Precision-recall 曲線:改變識別閾值,使得系統依次能夠識別前K張圖片,閾值的變化同時會導致Precision與Recall值發生變化,從而得到曲線。

  如果一個分類器的效能比較好,那麼它應該有如下的表現:在Recall值增長的同時,Precision的值保持在一個很高的水平。而效能比較差的分類器可能會損失很多Precision值才能換來Recall值的提高。通常情況下,文章中都會使用Precision-recall曲線,來顯示出分類器在Precision與Recall之間的權衡。

4、平均精度(Average-Precision,AP)與 mean Average Precision(mAP)

  AP就是Precision-recall 曲線下面的面積,通常來說一個越好的分類器,AP值越高。

  mAP是多個類別AP的平均值。這個mean的意思是對每個類的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]區間,越大越好。該指標是目標檢測演算法中最重要的一個。

  在正樣本非常少的情況下,PR表現的效果會更好。

  

5、IoU

  IoU這一值,可以理解為系統預測出來的框與原來圖片中標記的框的重合程度。 計算方法即檢測結果Detection Result與 Ground Truth 的交集比上它們的並集,即為檢測的準確率。

  IOU正是表達這種bounding box和groundtruth的差異的指標:

  

6、ROC(Receiver Operating Characteristic)曲線與AUC(Area Under Curve)

     

  ROC曲線:

  • 橫座標:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有負樣本中錯誤預測為正樣本的概率,假警報率;
  • 縱座標:真正率(True positive rate, TPR),TPR  = TP / [ TP + FN] ,代表所有正樣本中預測正確的概率,命中率。

  對角線對應於隨機猜測模型,而(0,1)對應於所有整理排在所有反例之前的理想模型。曲線越接近左上角,分類器的效能越好。

  ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。

  ROC曲線繪製:

  (1)根據每個測試樣本屬於正樣本的概率值從大到小排序;

  (2)從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本;

  (3)每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。 

   當我們將threshold設定為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連線起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。

   AUC(Area Under Curve)即為ROC曲線下的面積。AUC越接近於1,分類器效能越好。

   物理意義:首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類演算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。當然,AUC值越大,當前的分類演算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。

  計算公式:就是求曲線下矩形面積。

  

 7、PR曲線和ROC曲線比較

  ROC曲線特點:

  (1)優點:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。因為TPR聚焦於正例,FPR聚焦於與負例,使其成為一個比較均衡的評估方法。

      在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。

  (2)缺點:上文提到ROC曲線的優點是不會隨著類別分佈的改變而改變,但這在某種程度上也是其缺點。因為負例N增加了很多,而曲線卻沒變,這等於產生了大量FP。像資訊檢索中如果主要關心正例的預測準確性的話,這就不可接受了。在類別不平衡的背景下,負例的數目眾多致使FPR的增長不明顯,導致ROC曲線呈現一個過分樂觀的效果估計。ROC曲線的橫軸採用FPR,根據FPR ,當負例N的數量遠超正例P時,FP的大幅增長只能換來FPR的微小改變。結果是雖然大量負例被錯判成正例,在ROC曲線上卻無法直觀地看出來。(當然也可以只分析ROC曲線左邊一小段)

  PR曲線:

  (1)PR曲線使用了Precision,因此PR曲線的兩個指標都聚焦於正例類別不平衡問題中由於主要關心正例,所以在此情況下PR曲線被廣泛認為優於ROC曲線。

  使用場景:

  1. ROC曲線由於兼顧正例與負例,所以適用於評估分類器的整體效能,相比而言PR曲線完全聚焦於正例。
  2. 如果有多份資料且存在不同的類別分佈,比如信用卡欺詐問題中每個月正例和負例的比例可能都不相同,這時候如果只想單純地比較分類器的效能且剔除類別分佈改變的影響,則ROC曲線比較適合,因為類別分佈改變可能使得PR曲線發生變化時好時壞,這種時候難以進行模型比較;反之,如果想測試不同類別分佈下對分類器的效能的影響,則PR曲線比較適合。
  3. 如果想要評估在相同的類別分佈下正例的預測情況,則宜選PR曲線。
  4. 類別不平衡問題中,ROC曲線通常會給出一個樂觀的效果估計,所以大部分時候還是PR曲線更好。
  5. 最後可以根據具體的應用,在曲線上找到最優的點,得到相對應的precision,recall,f1 score等指標,去調整模型的閾值,從而得到一個符合具體應用的模型。

 8、非極大值抑制(NMS)

   Non-Maximum Suppression就是需要根據score矩陣和region的座標資訊,從中找到置信度比較高的bounding box。對於有重疊在一起的預測框,只保留得分最高的那個。

  (1)NMS計算出每一個bounding box的面積,然後根據score進行排序,把score最大的bounding box作為佇列中首個要比較的物件;

  (2)計算其餘bounding box與當前最大score與box的IoU,去除IoU大於設定的閾值的bounding box,保留小的IoU得預測框;

  (3)然後重複上面的過程,直至候選bounding box為空。

  最終,檢測了bounding box的過程中有兩個閾值,一個就是IoU,另一個是在過程之後,從候選的bounding box中剔除score小於閾值的bounding box。需要注意的是:Non-Maximum Suppression一次處理一個類別,如果有N個類別,Non-Maximum Suppression就需要執行N次。