神经网络为什么可能过度自信?如何做校准?
简化版
神经网络校准要求预测置信度与真实发生频率一致,例如所有 0.8 置信度样本约有 80% 正确。可用可靠性图、NLL、Brier/ECE 评估,并在独立校准集上用 temperature scaling 等方法校准。
详细版
-
准确率与校准是独立维度,高准确模型仍可过度自信。
-
temperature scaling 用单个 T 缩放 logits,通常保持类别排序和准确率。
-
ECE 受分桶数与样本量影响,不能单独作为真值。
-
分布漂移会使离线温度失效,需要按时间和业务切片监控。
-
校准集不能与基础模型训练集或最终测试集混用。
完整版教学
一、置信度需要对应可验证的频率语义
softmax 会把最大 logit 转成看似规范的概率,但交叉熵训练的深网常继续放大 logit 间隔,造成过度自信。
温度 T>1 压平分布,T<1 变尖。
优化校准集 NLL 可找到 T,而预测 argmax 不变,因为所有 logit 同除一个正数。
二、底层机制与公式
p_k(T) = exp(z_k/T) / sum_j exp(z_j/T)
Brier = mean(sum_k (p_k-1[y=k])^2)
三、带数字的推演
logits [4,2,0] 在 T=1 时 softmax 约 [0.867,0.117,0.016];T=2 后约 [0.665,0.245,0.090],类别仍为第 1 类,但置信度下降。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| Temperature scaling | 单参数、保持排序 | 只能修正整体锐度 |
| Platt/向量缩放 | 表达更强 | 过拟合风险更高 |
| Isotonic | 非参数单调映射 | 需要更多校准数据 |
五、执行流程
训练基础模型 -> 冻结权重 -> 校准集拟合 T
-> 测试集画 reliability diagram -> 报 NLL/Brier/ECE -> 分切片上线监控
六、边界条件与工程代价
多分类总体 ECE 可能掩盖某一类别严重失准,需看 classwise calibration;样本少的置信度桶还应报告数量或置信区间。
标签平滑、Mixup 和 focal loss 都会改变 logit 与置信度,不能凭“更不自信”断言更校准,必须在独立数据测量。
记忆钩子:回答校准先说“0.8 是否真有八成正确”,再区分排序、准确率与概率质量。
七、常见误区与追问
-
误区:softmax 输出天然就是可信概率。 归一化只保证和为 1,不保证频率校准。
-
追问:T 为什么不改变准确率? 正温度缩放保持 logits 的大小排序。
-
误区:ECE 越低一定越好。 结果依赖分桶且可能牺牲区分能力,应联合 NLL/Brier。
-
追问:校准器在哪个数据集拟合? 未参与基础模型训练的独立校准集。
-
追问:上线后为何会失效? 类别先验与条件分布漂移会改变置信度—频率关系。
八、加强记忆
回答校准先说“0.8 是否真有八成正确”,再区分排序、准确率与概率质量。
温度只调锐度,验收靠独立数据和可靠性图。