Узнайте, как метод конформного прогнозирования позволяет оценивать погрешность без использования распределений в системах искусственного интеллекта. Реализуйте наборы прогнозов с помощью Ultralytics , чтобы обеспечить достоверность результатов модели.
Конформное прогнозирование — это статистическая методология в области машинного обучения (ML), которая обеспечивает независимые от распределения меры неопределенности для прогнозов модели. Вместо выдачи точечного прогноза — например, одной конкретной метки класса — конформный прогнозирующий алгоритм выдает набор прогнозов или интервал, в котором с заданной пользователем вероятностью (например, 90 % или 95 %) находится истинное значение. Эта структура может быть применена к любой модели искусственного интеллекта (ИИ) для обеспечения формальных статистических гарантий без необходимости изменения архитектуры модели. Чтобы ознакомиться с исчерпывающим списком актуальных инструментов и исследований, вы можете посетить репозиторий Awesome Conformal Prediction.
В основе этого механизма лежит оценка того, насколько новый прогноз отличается от предыдущих примеров, с помощью показателя несоответствия.
Вы можете ознакомиться с математическими доказательствами этого подхода в учебном пособии «Введение в конформное прогнозирование » или узнать о методах прогнозирования временных рядов, позволяющих учитывать временную неопределенность.
Очень важно отличать эту структуру от стандартных метрик, используемых при тестировании моделей:
Конформное прогнозирование незаменимо в сферах с высокими рисками, где крайне важно знать о «слепых зонах» модели.
Библиотеки, такие как 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.
Начните свой путь в будущее машинного обучения