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

Ансамбль моделей

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

Ансамбль моделей - это сложная техника в машинного обучения (ML), при котором прогнозы нескольких независимых моделей объединяются для получения единого, лучшего конечного результата. Вместо того чтобы полагаться на возможности принятия решений одним алгоритмом, ансамбль использует принцип "мудрости толпы" для повышения общей точности и стабильности. Объединяя результаты различных моделей, инженеры могут значительно снизить риск чрезмерной подгонки к обучающему множеству и создать системы, которые гораздо более устойчивые к шуму в обучающих данных. Этот подход часто используется для для достижения самых высоких результатов в соревновательных средах, таких как соревнованиях Kaggle.

Механизмы ансамблевого обучения

Эффективность модельного ансамбля зависит от разнообразия его составных частей. Если все модели имеют одинаковые слабые стороны, то их объединение не даст никаких улучшений. Поэтому практики часто вносят разнообразие, изменяя архитектуры нейронной сети, используя различные подмножества данных или применяя различные стратегий дополнения данных.

Существует три основных метода создания ансамблей:

  • Bagging (Bootstrap Aggregating): Это предполагает обучение нескольких версий одной и той же модели, например например, дерева решений, на различных случайных выборках набора данных. Классическим примером является алгоритм Random Forest, который усредняет предсказания многих деревьев для сглаживания дисперсии, как подробно описано в документации по ансамблю Scikit-learn.
  • Бустинг: В этой итерационной технике модели обучаются последовательно. Каждая новая модель фокусируется на исправлении ошибок, допущенных предшественниками. Такие популярные реализации, как XGBoost и LightGBM, используют этот метод для преобразования слабых обучаемых моделей в высокоточную составную модель.
  • Сложение: Этот продвинутый подход обучает "метаученика" объединять прогнозы нескольких различных базовых моделей, например, комбинируя машины опорных векторов (SVM) с модель глубокого обучения. Метаучитель оптимизирует, как взвесить мнение каждого эксперта, чтобы минимизировать итоговую функцию потерь.

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

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

  1. Анализ медицинских изображений: Диагностика сложных заболеваний часто требует анализа тонких закономерностей в данных визуализации. В диагностической системе может использоваться ансамбль моделей, сочетающий в себе Конволюционная нейронная сеть (CNN) специализирующуюся на анализе текстур, и преобразователя зрения (ViT), который отлично справляется с задачей понимания глобального контекста. Такая комбинация помогает обнаружении опухолей при медицинской визуализации с более высокой чувствительностью, чем может достичь любая отдельная архитектура.
  2. Автономные системы: Для Автономные транспортные средства, системы восприятия должны быть отказоустойчивыми. Инженеры часто используют ансамбль моделей обнаружения объектов - например, объединяя высокоскоростные возможности YOLO11 с трансформаторной точностью RT-DETR. Это гарантирует, что пешеходов или препятствий, даже если одна из моделей не справляется со специфическим освещением или окклюзией.

Ансамбль по сравнению со смесью экспертов (MoE)

Важно отличать стандартный ансамбль моделей от Смесь экспертов (MoE). Хотя и те, и другие используют несколько субмоделей, они по-разному работают во время вывода:

  • Ансамбль моделей: Обычно запрашивает все модели в коллекции для каждого входного сигнала и объединяет результаты. Это позволяет добиться максимальной точности, но увеличивает время ожидания вывода и вычислительные затраты.
  • Смесь экспертов: Использует сеть стробирования для направления данных только нескольким конкретным "экспертам". (субмоделям), лучше всего подходящим для текущих входных данных. Это позволяет добиться огромной масштабируемости в базовых моделей, таких как Switch Transformers без вычислительных затрат на прогон каждого параметра для каждого маркера.

Реализация ансамблей с помощью Ultralytics

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

from ultralytics import YOLO

# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo11n.pt")  # Nano model
model_b = YOLO("yolo11s.pt")  # Small model

# Perform inference on an image with both models
# In a production ensemble, you would merge these results (e.g., via NMS)
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")

print(f"Model A detections: {len(results_a[0].boxes)}")
print(f"Model B detections: {len(results_b[0].boxes)}")

Реализация ансамблей требует тщательного учета ресурсов MLOps, поскольку развертывание нескольких моделей увеличивает расход памяти. Однако для задач, требующих максимально возможной производительности в компьютерного зрения (КВ), компромисс часто бывает оправдан.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас