Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Model Ensemble

Ансамбль моделей объединяет предсказания нескольких моделей в один более точный и надёжный результат. Разбираем голосование, усреднение, объединение BBox и компромиссы.

Ансамбль моделей объединяет прогнозы нескольких обученных моделей в единый результат с помощью голосования, усреднения или обучаемого комбинирования, чтобы ошибки отдельных моделей компенсировали друг друга. Если участники ансамбля допускают разные ошибки, он точнее и надёжнее лучшей отдельной модели; поэтому ансамбли лидируют в соревнованиях по машинному обучению: в 2009 году Netflix Prize выиграла команда, объединившая прогнозы множества моделей, а победившая в 2012 году задача ImageNet по глубокому обучению усреднила прогнозы семи свёрточных сетей и достигла ошибки top-5 в 15.3%. Недостаток — вычислительные затраты: каждый участник обрабатывает каждый входной объект, поэтому использование памяти и задержка инференса растут с размером ансамбля.

Как работают ансамбли моделей#

Ансамбль полезен лишь тогда, когда его участники допускают разные ошибки. Усреднение выходов моделей с независимыми ошибками уменьшает дисперсию объединённого прогноза, тогда как от комбинирования моделей, ошибающихся на одних и тех же входных данных, мало пользы. Бэггинг обеспечивает такое разнообразие, обучая каждого участника на случайной выборке из обучающих данных, как в случайном лесе деревьев решений; бустинг обучает каждую новую модель исправлять ошибки предыдущих, как в XGBoost и LightGBM. Глубокие ансамбли обучают копии одной нейронной сети с разными случайными начальными значениями; разброс их прогнозов также характеризует неопределённость модели. Комбинирование разных архитектур, например свёрточной нейронной сети и визуального трансформера, даёт участников с разными индуктивными смещениями и менее коррелированными ошибками.

Правило комбинирования зависит от того, какие выходные данные выдают участники:

Больше всего выигрывают модели с высокой дисперсией, например непрореженные деревья решений. В этом примере scikit-learn обучает пять деревьев, различающихся только случайным начальным значением, и усредняет предсказанные ими вероятности:

import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=0)

# Five decision trees that differ only in their random seed, which changes the features each split considers
trees = [DecisionTreeClassifier(max_features="sqrt", random_state=seed) for seed in range(5)]
for tree in trees:
    tree.fit(X_train, y_train)
print("Single trees:", ", ".join(f"{tree.score(X_test, y_test):.3f}" for tree in trees))

# Ensemble: average the predicted class probabilities and pick the most likely class
probabilities = np.mean([tree.predict_proba(X_test) for tree in trees], axis=0)
accuracy = (probabilities.argmax(axis=1) == y_test).mean()
print(f"Ensemble of 5: {accuracy:.3f}")

На 899 отложенных изображениях цифр отдельные деревья показывают результаты от 0.736 до 0.805, а ансамбль всех пяти — 0.901, что выше результата любого участника, поскольку деревья ошибаются на разных изображениях.

Ансамблирование детекторов объектов#

Ансамбли детекторов объектов также должны объединять рамки: несколько моделей обычно находят один и тот же объект в немного разных позициях. Самый простой способ — собрать рамки всех моделей и применить подавление немаксимумов (NMS), которое оставляет рамку с наибольшей уверенностью в каждой группе перекрывающихся рамок. При взвешенном объединении рамок вместо этого усредняются координаты перекрывающихся рамок с учётом уверенности, поэтому каждая модель влияет на итоговую позицию. Ultralytics YOLO26 использует близкий подход к ансамблированию при прогнозировании: с параметром augment=True детектор обрабатывает изображение в исходном масштабе, а также при масштабе 83% и 67%; копия с масштабом 83% отражается по горизонтали, после чего три набора рамок объединяются с помощью NMS. В этом примере два YOLO26 разного размера объединяются таким же образом:

import torch
from torchvision.ops import batched_nms
from ultralytics import YOLO

# Two YOLO26 models of different sizes make different mistakes
models = [YOLO("yolo26n.pt"), YOLO("yolo26s.pt")]
results = [model("https://ultralytics.com/images/bus.jpg")[0] for model in models]

# Pool the boxes from both models
boxes = torch.cat([result.boxes.xyxy for result in results])
scores = torch.cat([result.boxes.conf for result in results])
classes = torch.cat([result.boxes.cls for result in results])

# Keep the highest-scoring box in each overlapping group of the same class
keep = batched_nms(boxes, scores, classes, iou_threshold=0.5)
print(f"{len(boxes)} boxes from both models, {len(keep)} after fusion")

Рамки, обнаруженные обеими моделями, сливаются в одну; объекты, найденные только одной моделью, сохраняются после объединения — так ансамбль детекторов повышает полноту.

Применение#

  • Анализ медицинских изображений: Диагностические модели объединяют несколько сетей для повышения чувствительности, а расхождение между результатами участников указывает на случаи, которые должен проверить рентгенолог.
  • Соревнования и бенчмарки: В решениях-победителях на Kaggle и подобных рейтинговых площадках обычно усредняются модели, обученные с разными архитектурами, начальными значениями и разделениями данных, поскольку прирост точности оправдывает дополнительные вычисления.
  • Автономные автомобили: Системы восприятия объединяют модели с разными сильными сторонами, например детектор на основе камеры и детектор на основе лидара, чтобы объект, пропущенный одной моделью, могла обнаружить другая.
  • Ансамблевое обучение: Синоним общего метода. Термин «ансамбль моделей» обычно обозначает получившийся объединённый набор моделей.
  • Объединение моделей: Усредняет веса совместимых моделей в одной сети, которая затем работает с вычислительными затратами одной модели.
  • Смесь экспертов (MoE): Обучаемый маршрутизатор направляет каждый входной объект лишь нескольким экспертным подсетям, увеличивая ёмкость модели без запуска каждого эксперта на каждом входном объекте.
  • Дистилляция знаний: Обучает одну ученическую модель имитировать учителя, которым может быть целый ансамбль. В статье Джеффри Хинтона, Ориола Виньялса и Джеффа Дина о дистилляции 2015 года ансамбль моделей распознавания речи сжали в одну модель, сохранившую большую часть улучшения качества ансамбля.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

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

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

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

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

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