Узнайте, как ансамбли моделей объединяют несколько архитектур, таких как Ultralytics , для повышения точности и надежности. Изучите ключевые методы и советы по внедрению.
Модельный ансамбль — это стратегический подход в машинном обучении, при котором прогнозы нескольких отдельных моделей объединяются для получения конечного результата, который часто бывает более точным и надежным, чем результат, который могла бы дать любая отдельная модель в отдельности. Подобно комитету экспертов, обсуждающему вопрос для принятия более оптимального решения, чем отдельный человек, ансамбль моделей использует преимущества различных архитектур для снижения погрешностей. Эта техника широко используется для повышения производительности при решении сложных задач, снижения риска переобучения и устранения присущего статистическому моделированию компромисса между смещением и дисперсией .
Основной принцип, лежащий в основе ансамбля моделей, — это «разнообразие». Обучая несколько моделей — часто называемых «базовыми обучающимися» или «слабыми обучающимися» — на разных подмножествах обучающих данных или с использованием разных алгоритмов, ансамбль гарантирует, что ошибки, допущенные одной моделью, скорее всего будут исправлены другими. В контексте глубокого обучения это часто предполагает параллельную работу нескольких нейронных сетей во время вывода.
Общие методы объединения этих прогнозов включают:
Модельные ансамбли необходимы в условиях высоких рисков, где максимальная точность имеет первостепенное значение, а вычислительные ресурсы позволяют запускать несколько моделей.
Хотя сложные ансамблевые стратегии можно создавать с помощью библиотек, таких как Scikit-learn, вы можете создать базовый ансамбль инференции для компьютерного зрения, просто загрузив несколько моделей и обработав один и тот же входной сигнал. В следующем примере показано, как загрузить две разные Ultralytics YOLO для генерации прогнозов по одному и тому же изображению.
from ultralytics import YOLO
# Load two different model variants to create a diverse ensemble
model_a = YOLO("yolo26n.pt") # Nano model (Speed focused)
model_b = YOLO("yolo26s.pt") # Small model (Higher accuracy)
# Perform inference on an image with both models
# In production, results are typically merged programmatically
results_a = model_a("https://ultralytics.com/images/bus.jpg")
results_b = model_b("https://ultralytics.com/images/bus.jpg")
print(f"Model A detected {len(results_a[0].boxes)} objects.")
print(f"Model B detected {len(results_b[0].boxes)} objects.")
Полезно отличать стандартный набор моделей от смеси экспертов (MoE), термин, который часто встречается в современных исследованиях больших языковых моделей (LLM).
Основным преимуществом использования ансамбля моделей является повышение производительности. Ансамбли часто занимают лидирующие позиции в рейтингах по науке о данных, таких как соревнования Kaggle, поскольку они могут моделировать сложные паттерны, которые упускают отдельные модели. Однако это имеет свою цену: развертывание ансамблей требует большего объема памяти и вычислительной мощности.
Для команд, стремящихся эффективно управлять этими ресурсами, Ultralytics предлагает инструменты для обучения, track и сравнительного анализа различных архитектур моделей. Благодаря простому сравнению показателей производительности разработчики могут решить, оправдывает ли повышение точности ансамбля дополнительную инфраструктуру, необходимую для развертывания в сценариях периферийного ИИ.