Expected Calibration Error (ECE)模型校准原理解析
對於高風險應用來說,機器學習模型對其預測的置信度是至關重要的。
model calibration(模型校准)
就是要讓模型結果預測概率和真實的經驗概率保持一致。模型校准這個話題比較小眾,博主也是在看一篇Self-KD的論文時才看到的。模型校准的metrics有很多,這里博主僅僅討論Expected Calibration Error (ECE)
這一個比較經典的模型校准metric。
參考資料
- Measuring Calibration in Deep Learning,有公式
- 叫我如何相信你?聊一聊語言模型的校准
- On Calibration of Modern Neural Networks
1. 什么是模型校准?
模型校准就是要讓模型結果預測概率和真實的經驗概率保持一致。說人話也就是,在一個二分類任務中取出大量(M個)模型預測概率為0.6的樣本,其中有0.6M個樣本真實的標簽是1。總結一下,就是模型在預測的時候說某一個樣本的概率為0.6,這個樣本就真的有0.6的概率是標簽為1。
上面是一個正面的例子,下面我再來舉一個反面的例子說明模型校准的重要性。還是在一個二分類任務中取出大量(M個)模型預測概率為0.6的樣本,而這些樣本的真實標簽全部都是1。雖然從accuracy的角度來考察,模型預測樣本概率為0.6最后輸出時會被賦予的標簽就是1,即accuracy是100%。但是從置信度的角度來考察,這個模型明顯不夠自信,本來這些全部都是標簽為1的樣本,我們肯定希望這個模型自信一點,輸出預測概率的時候也是1。
2. Expected Calibration Error (ECE)
有了前面對模型置信度的感性了解,我們接下來看看該怎么用Expected Calibration Error去定量度量。首先來一張原論文On Calibration of Modern Neural Networks的圖:
為了能夠定量地度量置信度,作者將[0, 1]區間划分為多個bin(這里划分為了5個bin),所有的二分類樣本都將根據模型對其預測的結果分別落入這5個bin之中的1個。在每個bin之中計算平均的模型confidence,再與該bin中樣本真實標簽的平均accuracy進行對比,兩者之差的絕對值就能度量模型的置信度,差距越大代表模型置信度越小。公式如下:
E C E = ∑ b = 1 B n b N ∣ a c c ( b ) − c o n f ( b ) ∣ (1) ECE = \sum_{b=1}^B \frac{n_b}{N} |acc(b) - conf(b) | \tag{1} ECE=b=1∑BNnb∣acc(b)−conf(b)∣(1)
其中,b代表第b個bin,B代表bin的總數, n b n_b nb代表第b個bin中樣本的總數,acc(b)代表第b個bin中樣本真實標簽的平均值,conf(b)代表第b個bin中模型預測概率的平均值。