M2-084M2: Classical Machine LearningModel CalibrationMedium
Mastery:
Model Calibration: 温度缩放(temperature scaling)如何校准深度网络?
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 在 logits 上除以温度 T,用验证集拟合 T;不改预测类别,只调整置信度。
📌 Key Takeaways
- •现代深度网络普遍过度自信(T>1)
- •单参数、几乎不损精度
📐 Mathematical Derivations
温度缩放的机制:深度网络的 softmax 输出为 p̂=softmax(z),其中 z 是 logits。温度缩放引入参数 T>0:p̂'=softmax(z/T)。当 T>1 时,分布变得更<strong>平坦</strong>(降低最大概率、抬高其他概率)→ 缓解过度自信;T<1 则更尖锐。<strong>关键性质</strong>:① <strong>不改变预测类别</strong>——因为 argmax(z/T)=argmax(z)(除以正数不改变排序),故准确率不变(或几乎不变);② <strong>单参数</strong>——只需在验证集上最小化 NLL 拟合一个 T,计算极便宜、不易过拟合;③ <strong>改善 NLL 与 ECE</strong>——实验表明温度缩放能显著降低深度网络的 ECE(如从 10% 降到 2%)。<strong>为什么深网过度自信</strong>:与训练目标(交叉熵)在过参数化模型上的行为有关——模型会把 logits 的尺度推得很大以降低训练损失,而 NLL 对'自信但错误'的惩罚在训练集上被最小化后,泛化到测试集时表现为过度自信;此外现代训练技巧(BN、大 batch、强数据)都会加剧过度自信。
🏭 Production Trade-offs
实践要点:① <strong>T 的拟合</strong>——在<strong>独立验证集</strong>上最小化 NLL(等价于最大化校准后的似然);可用 LBFGS 或简单网格搜索(T 通常落在 1–3)。② <strong>与知识蒸馏的区别</strong>——蒸馏中的温度 T 用于<strong>软化教师的输出</strong>(让学生学到类间相似性),是训练时用的;校准的温度用于<strong>修正已训练模型的置信度</strong>,是后处理;两者数学形式相同但目的不同(蒸馏的 T 常取 3–20,校准的 T 通常 <3)。③ <strong>与其他校准方法的对比</strong>——Platt scaling 在校准 sigmoid 后可能改变排序(多参数),温度缩放严格保持排序(单参数);Isotonic 更灵活但过拟合风险大;实践中温度缩放是深度网络的默认首选。④ <strong>局限</strong>——温度缩放只做<strong>全局</strong>缩放(所有样本同一 T),若模型的过度自信程度随样本变化(如难样本更过度自信),需更精细的方法(如输入相关的温度、直方图分箱、或 Mixup 等训练时正则化,后者同时改善泛化与校准)。⑤ <strong>分布漂移下失效</strong>——线上分布变化后 T 需重新拟合。
⚠️ Common Interview Pitfalls
- ✕用训练集拟合温度(应使用独立验证集)
- ✕认为温度缩放能提升准确率(它只改校准)
🎯 Interviewer Follow-ups
- ?为什么深网会过度自信?
- ?T 与知识蒸馏中的温度关系?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.