Conformal Prediction
Узнай, как конформное прогнозирование обеспечивает оценку неопределенности без учета распределения для ИИ. Реализуй наборы предсказаний с Ultralytics YOLO26 для получения надежных результатов модели.
Конформное предсказание — это статистический фреймворк в машинном обучении (ML), который предоставляет не зависящие от распределения показатели неопределенности для прогнозов моделей. Вместо вывода одного точечного прогноза — например, одной конкретной метки класса — конформный предсказатель выдает набор или интервал прогнозов, содержащий истинное значение с заданной пользователем вероятностью (например, 90% или 95%). Этот фреймворк охватывает любую модель искусственного интеллекта (ИИ), обеспечивая формальные статистические гарантии без необходимости изменения архитектуры модели. Для получения исчерпывающего списка актуальных инструментов и исследований изучи репозиторий Awesome Conformal Prediction.
Link to this sectionКак работает конформное предсказание#
Фундаментальный механизм основан на оценке того, насколько необычным является новый прогноз по сравнению с прошлыми примерами, с использованием оценки неконформности.
- Обучение модели: Сначала обучи базовую модель, используя стандартный набор данных для обучения.
- Этап калибровки: Пропусти отдельный отложенный набор данных для калибровки через обученную модель. Вычисли оценку неконформности для каждого прогноза, например, обратную вероятность в классификации изображений.
- Вычисление квантиля: Определи целевой уровень достоверности (например, 95%) и найди соответствующий квантиль этих калибровочных оценок для формирования наборов прогнозов.
- Применение при выводе: Во время инференса в реальном времени оценивай новые входные данные и включай все возможные метки, оценки которых попадают ниже калибровочного квантиля.
Ты можешь ознакомиться с математическими доказательствами этого подхода в руководстве A Gentle Introduction to Conformal Prediction или узнать о подходах к прогнозированию временных рядов для работы с временными неопределенностями.
Link to this sectionОтличие конформного предсказания от смежных терминов#
Крайне важно отличать этот фреймворк от стандартных метрик, используемых при тестировании моделей:
- Конформное предсказание против оценок уверенности: Стандартная оценка уверенности отражает внутреннюю уверенность модели, но часто плохо откалибрована и не имеет математических гарантий. Конформное предсказание преобразует эти необработанные оценки в гарантированные наборы. Для традиционных корректировок см. калибровку вероятности в scikit-learn.
- Конформное предсказание против точности: Точность — это общая историческая метрика, описывающая, как часто модель оказывается права во всем наборе данных, тогда как конформный вывод предоставляет локальный, специфичный для каждого случая интервал для любого нового прогноза.
Link to this sectionРеальные приложения#
Конформное предсказание незаменимо в критически важных областях, где необходимо знать «слепые зоны» модели.
- Медицинская диагностика: При использовании ИИ в здравоохранении для анализа сканов модель может выдать набор вероятных диагнозов вместо одного, потенциально неверного класса. Это гарантирует, что врачи исследуют все возможные варианты, что подтверждается недавними исследованиями в области надежной геномной медицины и визуализации.
- Автономное вождение: В системах ИИ для автомобилей применение интервалов прогнозирования к обнаружению объектов создает пространственную область уверенности вокруг пешехода, позволяя тормозным системам автомобиля безопасно учитывать наихудшие сценарии движения.
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.






