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









