深圳Yolo 视觉
深圳
立即加入
词汇表

符合性预测

了解共形预测如何为人工智能提供无需分布的信息的不确定性。使用Ultralytics 实现预测集,以确保模型结果的可靠性。

共形预测是机器学习(ML)中的一种统计框架, 它为模型预测提供了 无需假设分布的不确定性度量。 与输出单点预测(例如某个特定的类别标签)不同, 共形预测器会输出一个预测集或区间,该预测集或区间包含真实值的概率由用户指定(例如 90% 或 95%)。 该框架可适配任何 人工智能(AI)模型, 在无需 更改模型架构的情况下提供正式的统计保证。如需获取最新的工具和研究资源的完整列表,您可以 浏览 Awesome Conformal Prediction代码库。

共形预测的工作原理

其基本机制是通过使用 “非符合度评分”来评估新预测与过去案例相比的异常程度。

  • 模型训练:首先,使用标准训练数据集训练一个基线模型。
  • 校准阶段:将一组单独保留的校准数据集输入到已训练好的模型中。为每个 预测结果计算一个不一致分数,例如在 图像分类中的逆概率。
  • 分位数计算:确定目标置信水平(例如 95%),并找出这些校准分数的相应分位数 以构建预测集。
  • 推理应用:在实时推理过程中,对新输入进行评估,并纳入所有评分低于 校准分位数的可能标签。

您可以在 《共形预测入门指南》教程中探索该方法的数学证明,或了解 用于处理时间不确定性的 时间序列预测方法

区分“共形预测”与相关术语

必须将该框架与模型测试中使用的标准指标区分开来: model testing:

  • 共形预测与置信分数:标准置信度分数反映了模型的内部确定性,但通常校准不佳且缺乏 数学上的保证。符合性预测将这些原始分数转换为具有数学保证的结果集。关于传统的 调整方法,请参阅 scikit-learn 的概率校准
  • 符合性预测与准确率:准确率是一种全局历史指标,描述模型在整个数据集上预测正确的频率;而 符合性推断 则为每次新的预测提供一个局部、针对特定实例的置信区间。

实际应用

在风险极高的领域中,了解模型的盲点至关重要,因此符合性预测不可或缺。

  • 医学诊断:在医疗领域利用人工智能分析影像扫描数据时,模型可能会输出多组合理的诊断结果,而非 单一且可能不准确的诊断结果。这确保了临床医生能够全面排查所有可能的诊断方向,从而支持近期 关于 可靠基因组医学和影像学的研究。
  • 自动驾驶:在汽车系统的人工智能应用中,将预测区间应用于 目标检测,可在行人周围生成一个空间置信 区域,从而使车辆的制动系统能够安全地应对最坏情况下的移动。

实施预测集

诸如 MAPIE(模型无关预测区间估计器)之类的库为 Python 提供了内置工具,而回归任务通常会利用 符合性分位数回归。 您还可以 利用Ultralytics 等高级模型的概率值,实现基本的符合性预测逻辑。以下示例通过 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 之类的工具,能够简化收集最新 分类数据集、重新训练模型以及安全 管理模型部署的过程。您可以在我们关于 理解数据集偏差的指南中进一步了解 如何整理平衡的数据,或track 在年度 COPA 会议上展示track 最新track 。

让我们一起共建AI的未来!

开启您的机器学习未来之旅