Conformal Prediction
发现保形预测如何为 AI 提供无分布的不确定性估计。使用 Ultralytics YOLO26 实现预测集,确保模型结果可靠。
共形预测是机器学习 (ML) 中的一种统计框架,为模型预测提供无分布不确定性度量。共形预测器输出的不是单一的点预测(如特定的类标签),而是一个预测集或区间,其中包含以用户指定概率(例如 90% 或 95%)为真值的预测结果。此框架可封装任何人工智能 (AI) 模型,在无需更改模型架构的情况下提供正式的统计保证。如需获取详尽的最新工具和研究列表,你可以探索 Awesome Conformal Prediction 仓库。
Link to this section共形预测的工作原理#
其基本机制依赖于使用非一致性评分来评估新预测与过去示例相比的异常程度。
- 模型训练:首先,使用标准训练数据集训练基准模型。
- 校准阶段:将一个独立的预留校准数据集输入到训练好的模型中。计算每个预测的非一致性评分,例如图像分类中的逆概率。
- 分位数计算:确定目标置信水平(例如 95%),并找到这些校准分数的对应分位数以构建预测集。
- 推理应用:在实时推理期间,评估新的输入,并包含所有评分低于校准分位数的可能标签。
你可以在 A Gentle Introduction to Conformal Prediction 教程中探索此方法的数学证明,或了解时间序列预测方法以处理时间不确定性。
Link to this section区分共形预测与相关术语#
将此框架与模型测试期间使用的标准指标区分开来至关重要:
- 共形预测与置信度评分:标准置信度评分反映了模型的内部确定性,但通常校准较差且缺乏数学保证。共形预测将这些原始分数转换为有保证的集合。有关传统的调整方法,请参阅 scikit-learn 的概率校准。
- 共形预测与准确率:准确率是一个全局历史指标,描述了模型在整个数据集上的正确频率,而共形推理为每一个新的预测提供了局部的、实例特定的区间。
Link to this section实际应用#
在那些了解模型盲点至关重要的高风险领域,共形预测是不可或缺的。
- 医学诊断:当在医疗保健中利用 AI 分析扫描结果时,模型可能会输出一组合理的诊断结果,而不是单一的、可能错误的类别。这确保了临床医生能够调查所有可行的可能性,支持了近期关于可靠基因组医学和成像的研究。
- 自动驾驶:在汽车 AI 系统中,将预测区间应用于目标检测会在行人周围生成一个空间置信区域,使车辆的制动系统能够安全地应对最坏情况的移动。
Link to this section实现预测集#
像 MAPIE (Model Agnostic Prediction Interval Estimator) 这样的库提供了内置的 Python 工具,回归任务通常利用共形分位数回归。你还可以使用来自 Ultralytics YOLO26 等先进模型的概率来实现基本的共形预测逻辑。以下示例使用 YOLO26 分类概率构建了一个预测集,模拟了包含前几个类直到达到累积阈值的逻辑。
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0
# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5
for idx in sorted_indices:
class_name = results[0].names[idx]
class_prob = probs.data[idx].item()
prediction_set.append((class_name, round(class_prob, 3)))
cumulative_prob += class_prob
# Stop adding to the set once we reach the 95% coverage threshold
if cumulative_prob >= target_coverage:
break
print(f"95% Prediction Set: {prediction_set}")开发可靠的系统需要稳健的数据实践,以防止数据漂移破坏校准。像 Ultralytics Platform 这样的工具简化了收集新鲜分类数据集、重新训练模型以及安全管理模型部署的过程。你可以在我们关于理解数据集偏差的指南中阅读更多关于策划平衡数据的内容,或跟踪年度 COPA 会议 上展示的最新进展。






