返回专辑
·Johan·3 分钟阅读

Temperature scaling 与 ECE

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

Temperature scaling 与 ECE

1. 零点九九置信度仍常错

分类器输出 softmax 0.99,人工复核却错三成——这不是模型「不够准」,是分数不是概率。过拟合、缺少标签平滑、训练与验证分布差都会让 logits 过度自信。部署里用置信度做阈值、风险路由或人机协同时, miscalibration 会直接转化为错误决策。

高置信度错误比低置信度错误更危险:后者会触发人工复核,前者直接放行。质检场景里「模型很自信但错」的代价往往高于「模型说不准让人看」。

2. ECE 与 reliability diagram

Expected Calibration Error(ECE)把预测按置信度分桶,比较每桶平均置信度与真实准确率。理想情况下两者应接近——reliability diagram 应贴近对角线。ECE 单标量便于跨模型对比,但 per-class 和 per-slice 仍要单独看:某类 overconfident 会在 aggregate ECE 里被平均掉。

python
# 简化 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 预测( 对排序无影响)。实现简单,是部署前默认应做的一步。

python
# 验证集上 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 是部署前必查项。把可靠性图与各类别校准误差存档进发版材料,让人工复核与自动放行阈值有据可依。校准改善但准确率略降时,要在业务侧明确说明阈值策略如何调整。定期用影子流量复评校准漂移。上线后若业务规则依赖置信度路由,应季度复评可靠性图并在漂移超阈值时重新拟合温度参数。 高置信度区间若长期偏离对角线,应优先排查标签平滑、混合增广与域偏移,而不是反复重训同一结构。

← 全部文章

johan's blog