Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Конформное прогнозирование

Узнайте, как метод конформного прогнозирования позволяет оценивать погрешность без использования распределений в системах искусственного интеллекта. Реализуйте наборы прогнозов с помощью Ultralytics , чтобы обеспечить достоверность результатов модели.

Конформное прогнозирование — это статистическая методология в области машинного обучения (ML), которая обеспечивает независимые от распределения меры неопределенности для прогнозов модели. Вместо выдачи точечного прогноза — например, одной конкретной метки класса — конформный прогнозирующий алгоритм выдает набор прогнозов или интервал, в котором с заданной пользователем вероятностью (например, 90 % или 95 %) находится истинное значение. Эта структура может быть применена к любой модели искусственного интеллекта (ИИ) для обеспечения формальных статистических гарантий без необходимости изменения архитектуры модели. Чтобы ознакомиться с исчерпывающим списком актуальных инструментов и исследований, вы можете посетить репозиторий Awesome Conformal Prediction.

Как работает конформное прогнозирование

В основе этого механизма лежит оценка того, насколько новый прогноз отличается от предыдущих примеров, с помощью показателя несоответствия.

  • Обучение модели: Сначала обучите базовую модель с использованием стандартного обучающего набора данных.
  • Этап калибровки: Пропустите отдельный, выделенный набор данных калибровки через обученную модель. Рассчитайте показатель несоответствия для каждого прогноза, например обратную вероятность при классификации изображений.
  • Расчет квантилей: Определите целевой уровень доверия (например, 95%) и найдите соответствующий квантиль этих калибровочных оценок для построения наборов прогнозов.
  • Применение метода вывода: Во время вычисления выводов в реальном времени оценивайте новые входные данные и включайте все возможные метки, оценки которых ниже калибровочного квантиля.

Вы можете ознакомиться с математическими доказательствами этого подхода в учебном пособии «Введение в конформное прогнозирование » или узнать о методах прогнозирования временных рядов, позволяющих учитывать временную неопределенность.

Разграничение термина «конформное прогнозирование» от смежных терминов

Очень важно отличать эту структуру от стандартных метрик, используемых при тестировании моделей:

Применение в реальном мире

Конформное прогнозирование незаменимо в сферах с высокими рисками, где крайне важно знать о «слепых зонах» модели.

  • Медицинская диагностика: При использовании ИИ в здравоохранении для анализа результатов сканирования модель может выдать набор вероятных диагнозов вместо одного, потенциально неверного. Это гарантирует, что врачи рассмотрят все возможные варианты, что подтверждается результатами недавних исследований в области надежной геномной медицины и визуализации.
  • Автономное вождение: В системах искусственного интеллекта для автомобилей применение интервалов предсказания к обнаружению объектов создает пространственную зону достоверности вокруг пешехода, что позволяет тормозным системам автомобиля безопасно учитывать движения в худшем случае.

Внедрение наборов прогнозов

Библиотеки, такие как MAPIE (Model Agnostic Prediction Interval Estimator), предоставляют встроенные инструменты для 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 последними track , представленными на ежегодной конференции COPA.

Давайте вместе создадим будущее искусственного интеллекта!

Начните свой путь в будущее машинного обучения