來源|米富
在人工智能領域,機器學習的效果需要用各種指標來評價。本文闡述了機器學習中常用的性能評價指標,不包括向量卷積和神經網格的評價指標。
培訓和認可
當壹個機器學習模型建立後,也就是模型訓練已經完成,我們就可以用這個模型進行分類識別了。
比如給模型輸入壹張電動車的照片,模型就能識別出是電動車;輸入壹張摩托車的照片,模型可以識別出這是壹輛摩托車。前提是:在模型訓練的過程中,大量的電動車和摩托車的照片被反復識別和訓練。
但即使模型有識別電動車和摩托車的能力,也不代表每次都能100%正確識別。當然,我們肯定希望識別準確率越高越好。識別準確率越高,模型的性能越好。
有哪些具體指標可以評價車型的優秀表現?讓我們從下面的例子中了解更多。
例如,測試樣本集S共有65,438+000張照片,其中包括60張電動車照片和40張摩托車照片。將這100張照片輸入模型(二分類模型)進行分類識別。我們的目標是找到這100張照片中的所有電動車。這裏說的目標是正面例子,非目標是負面例子。
假設模型給出的識別結果如下:
從上表的結果可以看出,在100張照片中,車型識別給出了50個電動車目標,剩下的50個是摩托車。這和實際情況(實際是:60輛電動車,40輛摩托車)有出入,所以有些標識是錯誤的。正確的識別數據體現在TP和TN(T代表真),錯誤的識別數據體現在FP和FN(F代表假)。
識別的50個電動車目標中,只有40個是對的(TP:真電動車),其他10個都是錯的(FP:假電動車,其實是摩托車)。
上述四個識別結果(TP、FP、TN、FN)是評價模型優良性能的常用基本參數。在詳細解釋TP、FP、TN、FN的含義之前,我們先來了解壹下正例(正例)和反例(負例)的概念。
正面例子和反面例子
正面:妳關註的識別目標就是正面的例子。
反面例子:任何不是正面例子的都是反面例子。
舉個例子,上面的例子,我們重點是電動車,所以電動車是正面例子,其余的摩托車是反面例子。
再舉個例子,假設壹個森林裏有三種動物:羚羊、馴鹿、考拉。我們的目標是識別羚羊,所以羚羊是正面例子,馴鹿和考拉是反面例子。
再比如有壹堆數字卡,我們的目標是找到數字為8的卡,那麽數字為8的卡就是正例,剩下的都是反例。
混淆矩陣
知道了正例與負例的概念,就可以很好的理解TP、FN、TN、FP(其中T代表真,F代表假,P代表正例,N代表負例)各自的含義了:
上述四個基本參數中,真情況和真否定情況是模型給出的正確識別結果,如電動車識別為電動車(真情況)、摩托車識別為摩托車(真否定情況);假陽性例子和假陰性例子是模型給出的錯誤識別結果,比如摩托車被識別為電動車(假陽性例子),電動車被識別為摩托車(假陰性例子)。其中,真實案例(TP)是評價模型性能的壹個關鍵參數,因為它是我們關註的目標的有用結果,數值越高越好。
可以看出,在壹個數據集中,模型給出的判斷結果之間的關系如下:
接下來,我們來了解壹下車型性能的各種評價指標。
模型性能指數1,精度。
準確率:即準確率,即正例(TP)和負例(TN)占總識別樣本的比例。
即:
A=(TP+ TN)/S
上例電動車,從上表可以看出,TP+ TN =70,S= 100,那麽正確率為:
A=70/100=0.7
壹般來說,正確率越高,模型性能越好。
2.誤差率
錯誤率:被錯誤識別的陽性病例(FP)和陰性病例(FN)占總識別樣本的比率。
即:
E=( FP+FN)/S
在上面的電動車例子中,從上表可以看出,FP+ FN =30,S= 100,那麽錯誤率為:
E=30/100=0.3
可以看出,正確率和錯誤率是從正反兩個方面進行評價的指標,兩個值之和正好等於1。正確率越高,錯誤率越低;正確率越低,錯誤率越高。
3、精度(Precision)
精確度:確定的陽性病例(TP)與確定的陽性病例的比例。其中,公認的正例等於正確的正例加上錯誤的正例。
即:
P=TP/(TP+ FP)
在上面的電動車例子中,TP=40,TP+ FP=50。也就是說,在100張照片的識別結果中,模型總是給出50個電動車目標,但這50個目標中只有40個被正確識別,所以準確率為:
P=40/50=0.8
因此,準確度是識別目標的正確比例。精度,也就是精度比,就像電動車的例子。模型找到了50個目標,但這50個目標的準確比例是多少?
4、召回率(Recall)
召回率:正確案例(TP)占實際總陽性案例的比例。其中,實際總正例等於正確正例加上錯誤負例(真例+假負例)。
即:
R=TP/(TP+ FN)
同樣,在上面的電動車例子中,TP=40,TP+FN =60。召回率是:
R=40/60=0.67
召回率在壹定意義上也可以說是“檢索率”,即在實際的60個目標中,檢索到40個,檢索比例為40/60。同時,召回率也就是召回率,即在實際的60個目標中,是否已經完全找到,比例是多少。
從公式中可以看出,查準率和查全率與TP值密切相關,TP值越大,查準率和查全率越高。理想情況下,我們希望準確率和召回率越高越好。但是單單高精度或者高召回率不足以體現模型的高性能。
例如,下面的例子:
高精度模型
從上表可以看出,該模型的識別結果給出了50個正例,200個負例。鑒定給出的50個正例都是正確的(都是實例,沒有假正例),所以準確率P是100%,非常高。但是識別給出的200個負例都是錯的(都是假負例),而且錯誤率很高,所以這個模型的性能其實很低。
高召回模型
從上表可以看出,該模型的識別結果給出了110個正例,0個負例。110個正例中,10為實例(正確識別),100為假正例(錯誤識別)。在這個測試數據集中,計算的召回率r為100%,非常好。也就是說,這個數據集中有10個目標,已經全部找到(召回)。但同時計算出的模型辨識結果的錯誤率E也很高,高達91%,所以這個模型的性能也很低,基本不可靠。
5.精確召回曲線
實際上,精確度和召回率是相互影響的。壹般精度高的時候,召回率往往低,召回率高的時候,精度低。這其實很好理解。我們之前說過,精確就是精確,回憶就是回憶。如果妳想檢查準確(壹次檢查準確),即模型給出的所有目標都是正確的,妳就得提高門檻。門檻壹提高,符合要求的目標數量就會減少,必然導致漏網之魚增多,召回率降低。
相反,如果召回率很高,沒有漏網之魚(所有目標都找到了),就要降低閾值,讓所有目標都入袋,同時也會包含壹些假目標,導致準確率降低。
例如,在不同的閾值(分別為0.6和0.5)下,模型給出15張圖片的識別結果如下:
上表中,1和0分別代表正反例。通過設置閾值(t),當置信度大於閾值時,識別為正例,當小於閾值時,識別為負例。在上表的識別結果中,當閾值T=0.6時,模型給出8個正例,當閾值T=0.5時,模型給出10個正例。
通過與真實屬性值的核對,我們可以得到這兩個閾值下的參數(TP,FP,FN),計算召回率(R)和準確率(P)如下:
可以看出,不同的閾值,查全率(R)和查準率(P)是不同的。因此,對於每個閾值,可以獲得(r,p)的相應集合。例如,從上述兩個閾值可以得到兩組(r,p),分別為(0.86,0.75)和(1,0.7)。如果我們取幾個不同的閾值,可以得到幾個組(r,p)。在坐標上畫出這些坐標點(r,p),然後用曲線連接坐標點,得到PR曲線。
所以PR曲線是以召回率r為橫軸,精度p為縱軸繪制的曲線,如下圖所示:
6.平均精度值
PR曲線下的面積稱為AP(平均精度),代表召回率從0到1的平均精度值。AP怎麽算?顯然,根據數學知識,積分可以用來計算,公式如下:
顯然,這個區域的值不會大於1。PR曲線下的面積越大,模型性能越好。高性能的模型在查全率(R)提高的同時,應該將查準率(P)保持在壹個較高的水平,而低性能的模型為了提高R值,往往需要犧牲大量的P值。如下圖所示,有兩條PR曲線。可以看出,PR1曲線是性能較好的模型,PR1曲線下的面積明顯大於PR2曲線下的面積。對於PR1曲線,隨著R值的增加,P值仍能維持在較高水平;對於PR2曲線,隨著R值的增大,P值不斷減小,所以R值的增大可以通過犧牲P值來獲得。
除了用積分法計算AP值外,實際應用中還經常用到插值法。常見的插值方法是選取11個精度點值,然後計算這11個點的平均值作為AP值。
如何選擇11精度點值?通常先設置壹組閾值,比如[0,0.1,0.2…,1]。對於大於每個閾值的R(R >;0,R & gt0.1,…,R & gt1),妳會得到壹個對應的最大精度值Pmax,所以妳會得到11個最大精度值(pmax1,pmax2,…,pmax11)。
然後:
AP =(pmax 1+pmax 2+…+pmax 11)/11
7.mAP(平均精度)值
AP是模型在單個類別中的平均精度的度量,而mAP是模型在所有類別中的平均精度的度量。每個類別對應壹個AP。假設有n個類別,則有n個AP,即:AP1,AP2,…,APn,mAP是所有類別AP的平均值,即:
mAP= (AP1+ AP2+…+ APn)/n
8、綜合評價指數F-測度
F-Measure又稱F-Score,是召回率R和精度P的加權調和平均值,顧名思義就是調和召回率R和精度P的增減矛盾,綜合評價指標F引入壹個系數α來加權調和R和P,表達式如下:
而我們最常用的F1的指標是上式中系數α為1的情況,即:
F1=2P。R/(P+R)
F1的最大值是1,最小值是0。
9.ROC曲線和AUC
Roc(受試者工作特征)曲線和AUC(曲線下面積)
ROC曲線,又稱受試者的工作特征。ROC曲線與真陽性率(TPR)和假陽性率(FPR)密切相關。
真實率(TPR):正確陽性案例(TP)占實際總陽性案例的比例,實際計算值與召回率相同。即:
TPR =TP/(TP+ FN)
假陽性率(FPR):錯誤識別的陽性病例(FPs)占實際陰性病例總數的比例。也可以說,誤判的反面案例(實際上是反面案例,沒有正確判決)占實際反面案例總數的比例。計算公式如下:
FPR =FP/(FP+ TN)
以FPR為橫軸,TPR為縱軸,繪制的曲線為ROC曲線,繪制方法類似PR曲線。繪制的ROC曲線示例如下:
壹般來說,ROC曲線越靠近左上方越好。
ROC曲線下的面積為AUC。面積越大,模型的分類性能越好。如上圖所示,綠線分類模型AUC=0.83大於紅線分類模型AUC=0.65,因此綠線分類模型的分類性能更好。而且綠線比紅線更平滑。壹般來說,ROC曲線越平滑,過度擬合的程度越小。綠線分類模型的整體性能優於紅線分類模型。
10,IoU(交集/並集)索引
IoU縮寫為交並比,顧名思義,數學上的交並比。假設有兩個集合a和b,iou等於a和b的交集除以a和b的並集,表達式如下:
IoU=A∩B/A∪B
在目標檢測中,IoU是預測和地面真實的交比。如下圖所示,在小貓的目標檢測中,紫色邊框是預測幀,紅色邊框是地面真相幀。
如下圖所示提取預測幀和真實幀。預測幀和真實幀的交叉區域是左下圖中的對角線填充區域,預測幀和真實幀的聯合區域是右下圖中的藍色填充區域。欠條是:
左邊用對角線填充的面積/右邊用藍線填充的總面積。
預測框和真實框的交集和並集示例
在目標檢測任務中,通常以IoU≥0.5為召回率。如果IoU閾值設置的更高,召回率會降低,但定位框會更準確。
理想情況下,預測幀與真實幀重疊越多越好。如果完全重疊,交集和並集面積相同,IoU等於1。
11,Top1和TopK
Top1:對於壹張圖片,在模型給出的識別概率(即置信度得分)中,如果得分最高的就是正確的目標,則認為是正確的。這裏的目標是我們所說的正面例子。
TopK:對於壹張圖片,如果得分的前k位包含正確的目標(正確的正例),則模型給出的識別概率(即置信度得分)被認為是正確的。
k的取值壹般可以在100的量級,但是取值越小越實用。例如,如果k的值為5,則意味著Top5,這意味著前5個置信度得分中的壹個是正確的目標。如果k的值是100,則意味著Top100,這意味著前100個置信度得分中有壹個是正確的目標(正確的正例)。可以看出,隨著K的增加,難度降低。
例如,在壹個數據集中,我們對前5個置信度得分進行排序,結果如下:
上表中,如果閾值T=0.45,前5名的置信度得分都大於閾值,所以都被認定為正例。對於Top1,也就是ID號為4的圖片,實際屬性是負例,所以目標識別是錯誤的。對於Top5,前5個置信度得分已經識別了正確的目標,即ID號為2和20的圖片,因此認為它們是正確的。
在常見的人臉識別算法模型中,正確率是第壹應用宣傳指標。實際上,對於同壹個模型,每個性能指標都不是壹個靜態的數字,它會隨著應用場景和人臉庫數量的變化而變化。所以實際應用場景下的正確率和實驗室環境下得到的正確率肯定是有差距的。某種程度上,實際應用場景下的正確率對評測更有意義。