模型校准(model calibration)
/ MOD-ul kal-uh-BRAY-shun /
当一个模型「说出来的信心」与现实相符时,它就是校准好的:在它所有说「我有八成把握」的场合里,它大约应当对八成。一位靠谱的天气预报员就是这幅完美的画面——一年里他说「70%概率下雨」的那些日子,大约真有70%下了雨。校准说的不是「更准」;它说的是「就你有多准这件事,要诚实」。
这是一种与「准确率」截然不同的性质,二者还动不动就分道扬镳。一个模型可以又很准,却又严重地过度自信——在它其实只对九成的那些个案上张口就说「九成九有把握」。它也可能信心不足,在不该犹豫时犹豫。要检验,就把预测按「说出来的信心」分桶,再拿每个桶的信心去比对它实际的命中率;一张「可靠性图」会把这关系画出来,而一个完美校准的模型,会落在对角线上。当它没落在上头时,「温度缩放」之类的技术可以在训练之后,把这些数字往诚实那边推一推。
凡是有人或系统是依据那个「信心数字」、而非仅仅依据答案来行动之处,校准就要紧。一个分诊工具若说「95%是良性」,那它就该只错5%,否则医生的优先级就会排错。现代深度网络以「过度自信」而臭名昭著——它们原始的概率,尤其是末端softmax给出的那些,往往远高于其真实的准确率;这恰恰就是为什么:不经校准与核查,那些数字绝不能照单全收。
把模型所有声称「90%有把握」的预测都拿出来,看看其中究竟有多少是真的对了。如果是90%,那模型在这个水平上就校准得很好。如果只有72%对了,那模型就是过度自信——它的「90%」其实意思是「大约72%」,而任何信了那个字面数字的决策,也都会跟着失准。
数字上的过度自信:一个其实只有72%的「90%」,会把下游所有人都带偏。
校准与准确率彼此独立。一个抛硬币的模型可以校准得完美无缺(永远说50%),却毫无用处;一个很犀利的模型却可能校准得一塌糊涂。两者你都需要。而且,在某个数据分布上测得的校准,可能在分布偏移下彻底失效——一个校准好的模型,只对「它当初被核查时的那个世界」校准。