Temperature scaling 与 ECE
Softmax 分数不是概率——高置信度仍可能常错时,threshold 和 risk 决策会误导;ECE、温度缩放和 isotonic 要在部署域上评。

1. 零点九九置信度仍常错
分类器输出 softmax 0.99,人工复核却错三成——这不是模型「不够准」,是分数不是概率。过拟合、缺少标签平滑、训练与验证分布差都会让 logits 过度自信。部署里用置信度做阈值、风险路由或人机协同时, miscalibration 会直接转化为错误决策。
高置信度错误比低置信度错误更危险:后者会触发人工复核,前者直接放行。质检场景里「模型很自信但错」的代价往往高于「模型说不准让人看」。
2. ECE 与 reliability diagram
Expected Calibration Error(ECE)把预测按置信度分桶,比较每桶平均置信度与真实准确率。理想情况下两者应接近——reliability diagram 应贴近对角线。ECE 单标量便于跨模型对比,但 per-class 和 per-slice 仍要单独看:某类 overconfident 会在 aggregate ECE 里被平均掉。
# 简化 ECE 计算思路
bins = np.linspace(0, 1, 11)
ece = 0
for i in range(len(bins)-1):
mask = (conf >= bins[i]) & (conf < bins[i+1])
if mask.sum() > 0:
acc = (pred[mask] == target[mask]).float().mean()
conf_mean = conf[mask].mean()
ece += mask.sum() / len(conf) * abs(acc - conf_mean)3. Temperature scaling
Temperature scaling(Guo 等)在验证集上优化单标量 :。 soften overconfident predictions; sharpen。只改校准,不改 argmax 预测( 对排序无影响)。实现简单,是部署前默认应做的一步。
# 验证集上 optimize T
scaled_logits = logits / T保序回归、Platt scaling 更灵活,但需要更多校准数据。小验证集上 isotonic 容易过拟合校准集——部署域上重新评 ECE。
4. 部署域上评,不是训练域
校准在训练验证域上看起来好,上线域 shift 后 ECE 可能暴涨。应用部署域的 hold-out 做 temperature fit 和 ECE 评估;训练域 calibrate 只作 sanity check。per-class threshold 决策前必查 calibration——某类 ECE 高,该类的 operating point 不可信。
5. 与标签平滑、mixup 的关系
标签平滑和 mixup 有时改善 calibration,有时 hurt top-1 acc——两者要分开评。accuracy 和 calibration 不是同一指标;刷 acc 的模型可能 ECE 很差。上线前同时报 acc 和 ECE,按业务选 operating point。
6. 案例:高置信度误放行
某风控模型用 0.95 阈值自动通过,审计发现该 bin 真实准确率只有 0.7——温度缩放后阈值重新标定,人工复核量略增但误放行降一半。校准是业务规则的前置步骤。
7. 验收
- reliability diagram 接近对角线;ECE 在部署域 hold-out 上可接受。
- temperature scaling 在验证集上 fit,在独立校准集上验证。
- per-class ECE 无极端 outlier。
- 高置信度 bin 的真实准确率与置信度匹配。
- 阈值决策基于校准后的分数,不是 raw softmax。
8. 落地与衔接
部署流水线里在校准集上拟合温度参数,把温度与各类别阈值写入推理配置,与模型权重同版本发布。上线前在部署域留出数据上同时报告准确率与期望校准误差,高置信度区间的真实准确率必须可核对。业务规则若依赖置信度路由,应定期用影子流量重评校准漂移。校准参数变更走与模型同级的回滚流程,避免只回滚权重却沿用旧温度。文档里写清校准集来源与更新频率。
Softmax 输出是排序分数,不是概率。Temperature scaling 便宜有效;ECE 和 reliability diagram 是部署前必查项。把可靠性图与各类别校准误差存档进发版材料,让人工复核与自动放行阈值有据可依。校准改善但准确率略降时,要在业务侧明确说明阈值策略如何调整。定期用影子流量复评校准漂移。上线后若业务规则依赖置信度路由,应季度复评可靠性图并在漂移超阈值时重新拟合温度参数。 高置信度区间若长期偏离对角线,应优先排查标签平滑、混合增广与域偏移,而不是反复重训同一结构。
相关
也可以看看
- ·3 分钟阅读
Shadow deploy 与 p99 latency SLA
离线涨点不上线,多半是 val 分布与生产不一致、latency 超标或 operating threshold 未重调——A/B 要看业务指标和 slice,不只看 mAP。
- ·4 分钟阅读
KL 蒸馏温度 T 与 feature MSE
大教师教小学生,学生会在教师也错的区域过度自信——温度 T、loss 权重和 hard label 仍要保留,蒸馏不是复制 logits 就完事。
- ·5 分钟阅读
fbgemm PTQ 与 per-channel scale
PTQ 校准数据不代表部署分布时 INT8 掉点惨烈——校准集、per-channel 和 sensitive layer fp16 保留要一起调。
johan's blog