Conformal Prediction
Узнай, как конформное прогнозирование обеспечивает оценку неопределенности без учета распределения для ИИ. Реализуй наборы предсказаний с Ultralytics YOLO26 для получения надежных результатов модели.
Конформное предсказание — это статистический фреймворк в machine learning (ML), который предоставляет distribution-free measures of uncertainty для предсказаний модели. Вместо выдачи единичного точечного предсказания — например, одной конкретной метки класса — конформный предиктор выдает множество или интервал предсказаний, содержащий истинное значение с заданной пользователем вероятностью (например, 90% или 95%). Этот фреймворк оборачивает любую модель artificial intelligence (AI), чтобы обеспечить формальные statistical guarantees без необходимости изменения архитектуры модели. Исчерпывающий список актуальных инструментов и исследований можно найти в репозитории Awesome Conformal Prediction.
Как работает конформное предсказание#
Фундаментальный механизм основан на оценке того, насколько необычным является новый прогноз по сравнению с прошлыми примерами, с использованием оценки неконформности.
- Model Training: Сначала обучи базовую модель на стандартном обучающем наборе данных.
- Calibration Phase: Пропусти отдельный отложенный набор данных для калибровки через обученную модель. Вычисли оценку несоответствия для каждого предсказания, например обратную вероятность в image classification.
- Quantile Calculation: Определи целевой уровень доверия (например, 95%) и найди соответствующий квантиль этих оценок калибровки для построения множеств предсказаний.
- Inference Application: Во время инференса в реальном времени оценивай новые входы и включай все возможные метки, чьи оценки попадают ниже калибровочного квантиля.
Ты можешь изучить математические доказательства этого подхода в учебнике A Gentle Introduction to Conformal Prediction или узнать о time-series forecasting approaches для работы с временными неопределенностями.
Отличие конформного предсказания от смежных терминов#
Крайне важно отличать этот фреймворк от стандартных метрик, используемых при model testing:
- Conformal Prediction vs. Confidence Scores: Стандартная оценка уверенности отражает внутреннюю уверенность модели, но часто плохо откалибрована и лишена математических гарантий. Конформное предсказание преобразует эти сырые оценки в гарантированные множества. Традиционные настройки описаны в scikit-learn's probability calibration.
- Conformal Prediction vs. Accuracy: Точность — это глобальная историческая метрика, описывающая, как часто модель права на всем наборе данных, тогда как conformal inference предоставляет локальный, специфичный для каждого экземпляра интервал для каждого нового предсказания.
Реальные приложения#
Конформное предсказание незаменимо в критически важных областях, где необходимо знать «слепые зоны» модели.
- Medical Diagnostics: При использовании ИИ в здравоохранении для анализа снимков модель может выдавать набор правдоподобных диагнозов вместо одного, потенциально неверного класса. Это гарантирует, что врачи изучат все возможные варианты, что подтверждается недавними исследованиями в области reliable genomic medicine and imaging.
- Autonomous Driving: В автомобильных системах на базе ИИ применение интервалов предсказаний к object detection создает пространственную область уверенности вокруг пешехода, позволяя тормозным системам автомобиля безопасно учитывать движения в худшем случае.
Реализация наборов предсказаний#
Библиотеки вроде MAPIE (Model Agnostic Prediction Interval Estimator) предоставляют встроенные инструменты для Python, а в задачах регрессии часто используется conformal quantile regression. Ты также можешь реализовать базовую логику конформного предсказания с помощью вероятностей от передовых моделей, таких как 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}")Создание надежных систем требует строгой работы с данными для предотвращения нарушения калибровки из-за data drift. Такие инструменты, как Ultralytics Platform, упрощают процесс сбора свежих classification datasets, дообучения моделей и безопасного управления model deployment. Ты можешь прочитать подробнее о подборе сбалансированных данных в нашем руководстве по understanding dataset bias или отслеживать последние достижения, представленные на ежегодной конференции COPA conference.






