Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Model Ensemble

모델 앙상블은 여러 모델의 예측을 결합해 더 정확하고 강건한 하나의 출력을 만듭니다. 투표, 평균화, 박스 융합, 장단점을 다룹니다.

모델 앙상블은 투표, 평균 또는 학습된 조합을 통해 학습된 여러 모델의 예측을 하나의 출력으로 결합하여 개별 모델의 오류를 상쇄합니다. 각 모델이 서로 다른 오류를 범하면 앙상블은 가장 성능이 좋은 모델보다 더 정확하고 강건해집니다. 이것이 앙상블이 머신러닝 경진대회에서 우세한 이유입니다. Netflix Prize는 여러 모델의 예측을 결합한 팀이 2009년에 우승했고, 2012년 ImageNet 챌린지에서 우승한 딥러닝 참가 모델은 컨볼루션 네트워크 7개의 예측을 평균하여 top-5 오류율 15.3%를 달성했습니다. 단점은 계산 비용입니다. 모든 입력에 대해 각 구성 모델을 실행해야 하므로 앙상블의 크기가 커질수록 메모리 사용량과 추론 지연 시간이 증가합니다.

모델 앙상블의 작동 방식#

앙상블은 구성 모델이 서로 다른 오류를 낼 때만 도움이 됩니다. 오류가 독립적인 모델의 출력을 평균하면 결합된 예측의 분산은 줄어드는 반면, 같은 입력에서 실패하는 모델을 결합해도 얻는 이점은 적습니다. 배깅은 랜덤 포레스트 결정 트리처럼 학습 데이터의 무작위 재표본으로 각 구성 모델을 학습해 다양성을 만듭니다. 부스팅은 XGBoost 및 LightGBM처럼 새 구성 모델이 이전 모델의 오류를 수정하도록 학습합니다. 딥 앙상블은 하나의 신경망을 서로 다른 무작위 시드로 복제해 학습하며, 예측의 분산으로 모델의 불확실성도 측정합니다. 컨볼루션 신경망과 비전 트랜스포머처럼 아키텍처를 결합하면 귀납적 편향이 다르고 오류의 상관관계가 낮은 모델을 구성할 수 있습니다.

결합 규칙은 구성 모델의 출력에 따라 달라집니다.

가지치기되지 않은 결정 트리처럼 분산이 큰 모델이 가장 큰 이점을 얻습니다. 이 scikit-learn 예제는 무작위 시드만 다른 트리 5개를 학습하고 예측 확률의 평균을 계산합니다.

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이며, 트리 5개를 모두 결합한 앙상블 점수는 0.901로 어떤 구성 모델보다 높습니다. 각 트리가 서로 다른 이미지에서 오류를 범하기 때문입니다.

객체 탐지기 앙상블#

객체 탐지 앙상블은 박스도 병합해야 합니다. 여러 모델이 대개 같은 객체를 약간씩 다른 위치에서 찾기 때문입니다. 가장 간단한 방법은 모든 모델의 박스를 모아 비최대 억제(NMS)를 적용하는 것입니다. 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): 학습된 라우터가 각 입력을 소수의 전문가 서브네트워크에만 전달하므로 모든 입력에 모든 전문가를 실행하지 않고도 모델 용량을 늘릴 수 있습니다.
  • 지식 증류: 전체 앙상블을 포함할 수 있는 교사 모델을 모방하도록 단일 학생 모델을 학습합니다. Geoffrey Hinton, Oriol Vinyals, Jeff Dean이 2015년에 발표한 증류 논문에서는 음성 인식 모델 앙상블을 단일 모델로 압축하면서 앙상블 성능 향상의 상당 부분을 유지했습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요