3. 置信度基本概念
在感知系统中,模型输出的“检测框”“类别标签”只是结果的一半,另一半是“这个结果有多可信”。置信度(Confidence)就是用来量化这种可信程度的数值,通常位于 0 到 1 之间。它既不是简单的“分数”,也不是准确率本身,而是模型对当前预测正确性的一种主观估计。理解置信度的定义、校准方式、不确定性来源以及它与准确率的关系,是构建安全降级策略的前提。
一、置信度的定义:从“分数”到“概率”
在目标检测中,置信度通常由分类分支输出,表示“该框内存在目标且类别正确”的联合概率估计。以 YOLO 系列为例,每个预测框会输出 objectness 与 class_prob,最终置信度常写为:
confidence = objectness × class_prob
# 例如:objectness=0.92,class_prob=0.85
# confidence = 0.92 × 0.85 = 0.782
需要强调的是,这个数值是模型内部的“信念”,并不自动等于真实世界中的正确概率。一个输出 0.9 的框,可能实际只有 0.6 的概率正确。因此,置信度必须经过校准,才能作为安全决策的输入。
二、概率校准:让置信度“说真话”
概率校准的目标是让模型输出的置信度与真实正确率对齐。理想情况下,当模型给出 0.8 的置信度时,这批样本中应有约 80% 是正确的。常用的校准方法包括温度缩放(Temperature Scaling)、Platt Scaling 和 Isotonic Regression。其中温度缩放最简单,只引入一个温度参数 T:
# 温度缩放示例(PyTorch 风格)
logits = model(x)
calibrated = torch.softmax(logits / T, dim=-1)
# T > 1 使分布更平滑,降低过度自信
# T < 1 使分布更尖锐,增强区分度
校准后,置信度才具备“可解释的概率语义”,才能用于设定降级阈值。例如,当校准后置信度低于 0.5 时触发告警,低于 0.3 时切换冗余传感器。
校准效果评估指标:ECE(Expected Calibration Error)衡量置信度分桶后与真实准确率的平均偏差;MCE(Maximum Calibration Error)关注最差桶的偏差。工程上通常要求 ECE 小于 0.05。
三、不确定性来源:置信度为何会“失真”
置信度并非凭空产生,它的波动来自多个层面。理解这些来源,才能有针对性地设计降级策略。
- 数据不确定性(Aleatoric):传感器噪声、遮挡、运动模糊、光照变化等。这类不确定性无法通过增加数据消除,只能通过多传感器融合缓解。
- 模型不确定性(Epistemic):训练数据覆盖不足、分布外样本(OOD)、模型容量有限。这类不确定性可通过增加数据或集成模型降低。
- 标注不确定性:标注边界模糊、类别定义歧义、标注员不一致,导致模型学到“模棱两可”的映射。
- 任务不确定性:分类与回归任务耦合时,定位误差会传导至分类置信度,造成“框不准但分很高”的假象。
在自动驾驶感知中,雨天、逆光、隧道出入口是典型的高不确定性场景。此时模型可能仍输出较高置信度,但实际错误率显著上升,这就是“过度自信”陷阱。
四、置信度与准确率的关系:不是一回事
置信度是模型自评,准确率是客观统计结果。两者关系可以用“校准曲线”描述:横轴为置信度分桶,纵轴为该桶内的真实准确率。理想曲线为对角线;若曲线低于对角线,说明模型过度自信;高于对角线则说明模型过度保守。
| 置信度区间 | 样本数 | 真实准确率 | 偏差 | 状态判断 |
|---|---|---|---|---|
| 0.9 ~ 1.0 | 1200 | 0.82 | -0.08 | 过度自信 |
| 0.7 ~ 0.9 | 2300 | 0.71 | +0.01 | 校准良好 |
| 0.5 ~ 0.7 | 1800 | 0.58 | -0.02 | 基本校准 |
| 0.3 ~ 0.5 | 900 | 0.41 | +0.01 | 校准良好 |
| 0.0 ~ 0.3 | 600 | 0.12 | -0.03 | 轻微过度自信 |
从表中可见,高置信度区间往往最容易出现过度自信。安全降级策略不能只看置信度绝对值,而应结合校准后的置信度与历史准确率曲线,动态调整阈值。
工程建议:在部署前,用验证集绘制可靠性图(Reliability Diagram),并计算 ECE。若高置信度区间偏差超过 0.05,必须进行温度缩放或重新训练,否则降级阈值将失去意义。
五、案例:置信度校准在安全降级中的应用
某 L2+ 辅助驾驶系统在夜间高速场景下,前向摄像头对锥桶的检测置信度普遍在 0.85 以上,但实际漏检率高达 18%。分析发现,模型在低照度下过度自信。团队引入温度缩放后,置信度整体下移,并设定:
if calibrated_conf < 0.45:
trigger_warning("感知置信度低,请接管")
elif calibrated_conf < 0.30:
switch_to_radar_fusion()
reduce_speed(0.7)
else:
keep_lane_keeping()
调整后,误报率下降 32%,漏检导致的急刹次数减少 41%。这说明:置信度本身不是安全指标,校准后的置信度才是。
六、常见误区与复盘
- 误区一:置信度越高越安全。未校准的高置信度可能是“盲目自信”,反而更危险。
- 误区二:用准确率代替置信度。准确率是全局统计量,无法反映单帧样本的可信程度。
- 误区三:忽略不确定性来源。只调阈值不分析来源,会导致降级策略在 OOD 场景下失效。
- 误区四:校准一次就一劳永逸。传感器老化、场景迁移都会使校准漂移,需定期复校。
复盘要点:置信度是“模型语言”,准确率是“世界语言”。安全降级工程的核心任务,就是建立两者之间的翻译机制——概率校准。没有校准的置信度,不能直接用于安全决策。
总结来看,置信度是感知系统自我评估的起点,概率校准是让它可信的桥梁,不确定性分析是理解其边界的钥匙,而置信度与准确率的关系则是安全降级策略的标尺。只有把四者串联起来,才能让“降级”不是拍脑袋,而是有据可依的工程决策。