ROC与AUC,DET与EER,minDCF,Identification Accuracy
生活随笔
收集整理的這篇文章主要介紹了
ROC与AUC,DET与EER,minDCF,Identification Accuracy
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么需要這些指標
- 對于兩個說話人識別系統,我們希望比較它們的性能
- 比較它們的性能,我們需要這些性能指標
- 必須使用同一個評價集(Evaluation Set),并且指標的具體實現一致,比較才是有意義的
- 系統A可能在一個評價集上性能優于系統B,也可能在另一個評價集上性能劣于系統B
評價集
- 原則
- 訓練集中出現的話語(Utterances),不得出現在評價集中
- 訓練集中出現的說話人(Speakers),不得出現在評價集中
- 兩種類型
- 基于樣本對的評價
- 基于集合的評價
基于樣本對的評價
- 選取一系列樣本對
- 對于每個樣本對,要求:
- 有兩段話語
- 有一個二值標簽,表示這兩段話語來自同一個說話人(為正樣本,用1表示),或來自不同的說話人(為負樣本,用0表示)
- 例子:VoxCeleb官方樣本對
基于集合的評價
- 在許多現實應用中,用戶常常會提供多段話語用于注冊
- 為了更好的模擬這個過程,我們可以用基于集合的評價來評價說話人識別系統
- 評價集會被分為兩個子集:
- 注冊集
- 驗證集
- 這兩個子集覆蓋同一范圍的說話人,但是采用不同的話語代表每個說話人
- 步驟:
- 使用注冊集,用說話人編碼器(訓練出來的模型),從所有說話人的話語中,提取出嵌入碼,由于每個說話人有多端話語,因此需要將每個說話人的多個嵌入碼,聚合成一個speaker profile
- 使用驗證集,采樣出話語,與之前得到的speaker profile一一對比,得到樣本對,來自同一個說話人則為正樣本,來自不同的說話人則為負樣本
- 通常負樣本遠多于正樣本,因此需要對負樣本做下采樣
- 基于集合的評價,各集合示意圖(圖源:語音之家):
可見:訓練集和評估集中的說話人是不同范圍的,評估集中的兩個子集中的說話人是同一范圍的,但是同一說話人的話語,不在兩個子集中重復。
假陽率和假陰率
- 對于每一個樣本對,系統得到的結果可以分為四類:
| 1 | 1 | True Accept |
| 1 | 0 | False Reject / Type II Error |
| 0 | 1 | False Accept / Type I Error |
| 0 | 0 | True Reject |
- 假陽率:在所有的負樣本中,發生錯誤接受的比例
F A R = F A F A + T R = F A F a l s e FAR = \frac{FA}{FA + TR} =\frac{FA}{False} FAR=FA+TRFA?=FalseFA? - 假陰率:在所有的正樣本中,發生錯誤拒絕的比例
F R R = F R F R + T A = F A T r u e FRR = \frac{FR}{FR + TA} =\frac{FA}{True} FRR=FR+TAFR?=TrueFA?
錯誤與閾值
- 通過將相似度得分與閾值進行比較,系統才可以得出結果,此時的閾值也被稱為操作點
- 當閾值升高,所有接受率下降,所有拒絕率上升
- 由于FAR和FRR都基于閾值才能得到,所以無法直接比較兩個系統的FAR和FRR
- 要比較兩個系統,需要與閾值無關的性能指標
ROC(Receiver Operating Characteristic)曲線
- 遍歷閾值的所有可能取值(如:[0, 1]),并且記錄每個取值的FAR和TAR,將FAR作為橫坐標,TAR作為縱坐標
- 將這些點,畫到二維平面上,將得到一條單調遞增的曲線,如下:
- 利用ROC曲線比較系統性能:
- 對角線y=x(圖中虛線)為隨機猜測的結果,即對每個閾值,系統都判定一半樣本為正,另一半樣本為負
- 曲線越靠近左上角,性能越好
- 可以用AUC(Area Under Curve,ROC曲線下方的面積大小)來度量系統的性能,越大越好,取值[0, 1]
- 缺點:計算AUC時,不同的閾值分辨率,會帶來較大的結果浮動
DET(Detection Error Tradeoff)曲線
-
DET曲線和ROC曲線關系緊密:橫坐標都是FAR,但DET的縱坐標的FRR,ROC的縱坐標是TAR,比較如下:
-
DET曲線嘗試用對數刻度,從而看起來更接近直線
-
利用DET曲線比較系統性能:
- 曲線越靠近左下角,性能越好
- 在DET曲線中,繪制對角線,得到與曲線的交點,該點的FAR與FRR相等(理想狀態下),將此點的FAR和FRR的值稱為EER(Equal Error Rate,等錯誤率),將此點對應的閾值稱為EER閾值
- 可以用EER來度量系統的性能,越小越好,取值[0, 1]
-
EER的計算
- 由于閾值的分辨率有限,不一定能找到剛好使FAR和FRR相等的閾值
- 轉而尋找距離對角線最近的點,然后以對角線為對稱中心,得到對稱點,連接對稱點得到線段,線段與對角線的交點就是EER點
- 代碼
其中,csv文件為:
1,0.569124 0,0.476595 0,0.413035 0,0.293926 0,0.440901 0,0.368193 0,0.389329 0,0.376836 0,0.569162 1,0.638756 0,0.524672 1,0.661512 0,0.165377 0,0.420235 0,0.446507 0,0.482949 0,0.552219 0,0.378767 0,0.430548 1,0.747565 0,0.168463 0,0.278504 1,0.657658 0,0.229037 0,0.219550 0,0.424466 0,0.456832 1,0.555986 0,0.373798 0,0.426028 0,0.350222 0,0.290085 0,0.320089 0,0.425232 1,0.575289 0,0.439917 0,0.352562 0,0.256855 1,0.678153 0,0.546677 1,0.553341 0,0.546400 0,0.416762 0,0.320113 0,0.509082 0,0.296723 0,0.391334 1,0.632965 0,0.306316 0,0.317127 0,0.406913 0,0.540259 0,0.391180 0,0.302759 1,0.779792 0,0.455095 1,0.637135 0,0.248829 0,0.369333 0,0.493602 0,0.542002 0,0.431087 0,0.301929 1,0.631853 0,0.612609 0,0.449952 0,0.287069 0,0.265009 1,0.651048 0,0.520650 0,0.141886 0,0.042039 1,0.729197 0,0.364319 0,0.168674 0,0.319438 1,0.643376 0,0.267376 0,0.113846 0,0.248857 0,0.212427 1,0.527515 0,0.300285 0,0.264906 0,0.279250 0,0.525230 0,0.413385 0,0.305920 1,0.650475 0,0.588482 1,0.600876 0,0.570961 0,0.325268 0,0.269917 0,0.450660 1,0.541685 0,0.515372 0,0.337933 0,0.329257 0,0.446274注意:必須要先尋找使 a b s ( F A R ? F R R ) abs(FAR-FRR) abs(FAR?FRR) 最小的點,然后取 E E R = F A R + F R R 2 EER = \frac{FAR+FRR}{2} EER=2FAR+FRR?,而不能直接取使 F A R + F R R 2 \frac{FAR + FRR}{2} 2FAR+FRR? 最小的點,數學理由:
- 點到直線距離公式:
d = ∣ A x 0 + B y 0 + C ∣ A 2 + B 2 d = \frac{|Ax_0 + By_0 + C|}{\sqrt{A^2 + B^2} } d=A2+B2?∣Ax0?+By0?+C∣?
其中,點為 ( x 0 , y 0 ) (x_0,y_0) (x0?,y0?),直線為 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0。現在代入直線 x ? y = 0 x-y=0 x?y=0,點 ( F A R , F R R ) (FAR,FRR) (FAR,FRR),得:
d = ∣ F A R ? F R R ∣ 2 d = \frac{|FAR - FRR|}{\sqrt{2}} d=2?∣FAR?FRR∣?
當 a b s ( F A R ? F R R ) abs(FAR-FRR) abs(FAR?FRR) 最小時, d d d最小,設此時的點為 ( F A R 0 , F R R 0 ) (FAR_0,FRR_0) (FAR0?,FRR0?)。 - 過點 ( F A R 0 , F R R 0 ) (FAR_0,FRR_0) (FAR0?,FRR0?)作對角線的垂線,垂線的方程為:
x + y ? F A R 0 ? F R R 0 = 0 x + y - FAR_0 - FRR_0 = 0 x+y?FAR0??FRR0?=0
與 x ? y = 0 x-y=0 x?y=0 聯立,得到交點 ( F A R 0 + F R R 0 2 , F A R 0 + F R R 0 2 ) (\frac{FAR_0 + FRR_0}{2},\frac{FAR_0 + FRR_0}{2} ) (2FAR0?+FRR0??,2FAR0?+FRR0??),因此 E E R = F A R 0 + F R R 0 2 EER = \frac{FAR_0 + FRR_0}{2} EER=2FAR0?+FRR0??。 - 若直接取使 F A R + F R R 2 \frac{FAR + FRR}{2} 2FAR+FRR? 最小的點,結果會偏小,如下圖所示:
- 缺點,EER只能反映DET曲線的局部特性,沒有反映出DET曲線的整體形狀,如下圖所示,藍色曲線整體更偏左下,但是EER高于紅色曲線:
minDCF(Minimum Detection Cost Function,最小檢測代價函數)
- 不同的實際應用對不同類型的錯誤有不同的容忍程度,可以理解為不同類型的錯誤帶來的風險不相同
- 例如:
- 安全類應用:錯誤接受率過高是幾乎不可容忍的,因此錯誤接受的風險更大
- 喚醒類應用:錯誤拒絕率過高會導致較差的用戶體驗,因此錯誤拒絕的風險更大。而錯誤接受可以只開放部分權限,或者根據用戶的進一步操作來交叉驗證用戶身份
- DCF的公式:
C D e t = C F R ? F R R ? P T + C F A ? F A R ? P I C_{Det} = C_{FR} \cdot FRR \cdot P_{T} + C_{FA} \cdot FAR \cdot P_{I} CDet?=CFR??FRR?PT?+CFA??FAR?PI?
其中:- C F R C_{FR} CFR? 是錯誤拒絕的代價
- P T P_{T} PT? 是出現真實說話人的先驗概率
- C F A C_{FA} CFA? 是錯誤接受的代價
- P I P_{I} PI? 是出現仿冒說話人(Imposter)的先驗概率
- minDCF指:尋找使DCF取得最小值的閾值
Identification Accuracy(辨認準確率)
- 上述AUC、EER。minDCF都是針對說話人驗證定義的性能指標
- 對于說話人辨認任務,需要使用Identification Accuracy(辨認準確率)來評價
- 步驟:
- 對每個樣本,構造(k+1)個數據,其中k個數據為用于注冊的說話人話語,1個為待辨認的話語
- k個用于注冊的說話人,必須包含待辨認的話語所屬的說話人
- 系統將待辨認的話語,與k個用于注冊的話語分別計算相似度得分,得分最高的兩段話語屬于同一個說話人為辨認成功,否則辨認失敗
- 計算辨認成功的樣本,占總樣本的比例,即為辨認準確率
- 對于同一個系統,通常k越大,辨認準確率越低
總結
以上是生活随笔為你收集整理的ROC与AUC,DET与EER,minDCF,Identification Accuracy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: odoo如何完成员工借款、报销、归还余款
- 下一篇: 生活就是一种简单,心静了就平和了