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

Ансамбль

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

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

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

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

  • Bagging (Bootstrap Aggregating): Эта техника предполагает обучение нескольких экземпляров одного и того же алгоритма на разных подмножествах набора данных. Наиболее известным примером является алгоритм Random Forest, который агрегирует решения многих дереев решений для уменьшения дисперсии.
  • Бустинг: в отличие от баггинга, бустинг обучает модели последовательно. Каждая новая модель фокусируется на исправлении ошибок, допущенных предыдущими. Популярные фреймворки, такие как LightGBM и CatBoost, используют это для создания высокоточных прогнозирующих систем.
  • Слоение (Stacked Generalization): Это включает в себя обучение новой «мета-модели» для объединения предсказаний нескольких гетерогенных базовых моделей (например, нейронной сети и машины поддержки векторов).

Ансамблирование в компьютерном зрении

В области компьютерного зрения (CV) ансамбли часто используются для максимального повышения производительности в соревнованиях и критически важных приложениях, связанных с безопасностью. Для обнаружения объектов это часто предполагает запуск нескольких моделей, таких как разные версии YOLO26, на одном и том же изображении. Полученные ограничительные рамки затем объединяются с помощью таких методов, как немаксимальное подавление (NMS) или взвешенное слияние рамок (WBF), чтобы получить наиболее вероятные местоположения объектов.

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

Методы ансамбля широко используются в отраслях, где надежность прогнозов имеет первостепенное значение.

  1. Медицинская диагностика и визуализация: В здравоохранении крайне важно избегать ложноотрицательных результатов. Ансамбль может сочетать сверточную нейронную сеть (CNN) , обученную на рентгеновских снимках, с Vision Transformer (ViT) для detect аномалий. Консенсус между моделями обеспечивает более высокий показатель достоверности, помогая радиологам в обнаруженииопухолей или диагностике редких заболеваний.
  2. Обнаружениеdetect вого мошенничества: Финансовые учреждения используют ансамбли для анализа моделей транзакций. Комбинируя логистические регрессионные модели с градиентными бустинг-машинами, система может обнаруживать незаметные признаки мошенничества, которые могут быть упущены одной моделью, при этом сохраняя низкий уровень ложных срабатываний.

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

Вы можете смоделировать базовый ансамбль инференции, загрузив несколько обученных моделей и сгенерировав прогнозы для одного и того же входа. Ultralytics позволяет легко обучать эти варианты . В следующем примере показана загрузка двух различных Ultralytics YOLO (YOLO26n и YOLO26s) для проверки обнаружений на изображении.

from ultralytics import YOLO

# Load two distinct YOLO26 model variants
# 'n' (nano) is faster, 's' (small) is more accurate
model_nano = YOLO("yolo26n.pt")
model_small = YOLO("yolo26s.pt")

# Define the image source
source = "https://ultralytics.com/images/bus.jpg"

# Run inference with both models
results_n = model_nano(source)
results_s = model_small(source)

# Compare the number of objects detected by each model
print(f"Nano Model Found: {len(results_n[0].boxes)} objects")
print(f"Small Model Found: {len(results_s[0].boxes)} objects")

Ансамбль против увеличения объема данных

Важно отличать ансамблевое обучение от увеличения объема данных.

  • Ensemble фокусируется на архитектуре и этапе прогнозирования, объединяя несколько обученных отдельных моделей для улучшения результатов.
  • Увеличение объема данных сосредоточено на этапе обучения данных, искусственно увеличивая разнообразие набора данных (например, посредством вращения или переворачивания) для обучения единой, более надежной модели.

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

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

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

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