模型校準(model calibration)
/ MOD-ul kal-uh-BRAY-shun /
當一個模型「說出來的信心」與現實相符時,它就是校準好的:在它所有說「我有八成把握」的場合裡,它大約應當對八成。一位靠譜的天氣預報員就是這幅完美的畫面——一年裡他說「70%機率下雨」的那些日子,大約真有70%下了雨。校準說的不是「更準」;它說的是「就你有多準這件事,要誠實」。
這是一種與「準確率」截然不同的性質,二者還動不動就分道揚鑣。一個模型可以又很準,卻又嚴重地過度自信——在它其實只對九成的那些個案上張口就說「九成九有把握」。它也可能信心不足,在不該猶豫時猶豫。要檢驗,就把預測按「說出來的信心」分桶,再拿每個桶的信心去比對它實際的命中率;一張「可靠性圖」會把這關係畫出來,而一個完美校準的模型,會落在對角線上。當它沒落在上頭時,「溫度縮放」之類的技術可以在訓練之後,把這些數字往誠實那邊推一推。
凡是有人或系統是依據那個「信心數字」、而非僅僅依據答案來行動之處,校準就要緊。一個分診工具若說「95%是良性」,那它就該只錯5%,否則醫生的優先級就會排錯。現代深度網路以「過度自信」而臭名昭著——它們原始的機率,尤其是末端softmax給出的那些,往往遠高於其真實的準確率;這恰恰就是為什麼:不經校準與核查,那些數字絕不能照單全收。
把模型所有聲稱「90%有把握」的預測都拿出來,看看其中究竟有多少是真的對了。如果是90%,那模型在這個水平上就校準得很好。如果只有72%對了,那模型就是過度自信——它的「90%」其實意思是「大約72%」,而任何信了那個字面數字的決策,也都會跟著失準。
數字上的過度自信:一個其實只有72%的「90%」,會把下游所有人都帶偏。
校準與準確率彼此獨立。一個拋硬幣的模型可以校準得完美無缺(永遠說50%),卻毫無用處;一個很犀利的模型卻可能校準得一塌糊塗。兩者你都需要。而且,在某個資料分布上測得的校準,可能在分布偏移下徹底失效——一個校準好的模型,只對「它當初被核查時的那個世界」校準。