Yolo 비전 선전
선전
지금 참여하기
용어집

앙상블

앙상블 학습이 정확도를 높이고 과적합을 줄이는 방법을 알아보세요. 우수한 컴퓨터 비전 결과를 위해 Ultralytics 같은 여러 모델을 결합하는 방법을 배우세요.

앙상블 학습은 기계 학습(ML) 에서 여러 개의 독립적인 모델(흔히 "약한 학습기"라 함)을 결합하여 단일 예측 결과를 생성하는 강력한 전략입니다. 기본 전제는 여러 모델의 집단이 단독으로 작동하는 어떤 단일 모델보다도 높은 정확도와 우수한 일반화 능력을 달성할 수 있다는 것입니다. 다양한 알고리즘의 예측을 통합함으로써 앙상블 방법은 훈련 데이터에 대한 과적합 위험을 효과적으로 줄이고, 무작위 오류를 완화하며, 전체 시스템 안정성을 향상시킵니다. 이 접근법은 중대한 결정을 내릴 때 한 개인의 의견에 의존하기보다 전문가 패널의 자문을 구하는 것과 유사합니다.

앙상블 학습의 메커니즘

앙상블 기법의 효과성은 편향-분산 상충관계를 조절하는 능력에 있다. 개별 모델은 높은 분산(잡음에 대한 민감도)이나 높은 편향(과도한 단순화)으로 인해 문제가 발생할 수 있다. 앙상블은 다음과 같은 특정 기법을 통해 이러한 문제를 완화한다:

  • 백킹(부트스트랩 집계): 이 기법은 동일한 알고리즘의 여러 인스턴스를 데이터 세트의 서로 다른 부분 집합에 대해 훈련시키는 것을 포함합니다. 가장 유명한 예는 랜덤 포레스트 알고리즘으로, 여러 의사 결정 트리의 결정을 집계하여 분산을 줄입니다.
  • 부스팅: 백킹과 달리 부스팅은 모델을 순차적으로 훈련시킵니다. 각 새 모델은 이전 모델의 오류를 수정하는 데 집중합니다. LightGBM CatBoost와 같은 인기 프레임워크는 이를 활용하여 매우 정확한 예측 시스템을 구축합니다.
  • 스태킹(스태킹 일반화): 이는 여러 이질적인 기본 모델(예: 신경망과 서포트 벡터 머신)의 예측을 결합하기 위해 새로운 "메타 모델"을 훈련하는 것을 포함합니다.

컴퓨터 비전에서의 앙상블링

컴퓨터 비전(CV) 분야에서는 대회 및 중요한 안전 응용 분야에서 성능을 극대화하기 위해 앙상블 기법이 자주 사용됩니다. 객체 탐지의 경우, 이는 동일한 이미지에 여러 모델(예: 다양한 버전의 YOLO26)을 실행하는 것을 수반하는 경우가 많습니다. 결과 생성된 바운딩 박스는 비최대 억제(NMS)가중치 박스 융합(WBF) 같은 기법을 통해 합쳐져 가장 가능성이 높은 객체 위치를 도출합니다.

실제 애플리케이션

예측 신뢰성이 최우선인 산업 분야에서는 앙상블 기법이 보편적으로 사용된다.

  1. 의료 진단 및 영상: 의료 분야에서는 위음성 결과를 피하는 것이 매우 중요합니다. 앙상블 모델은 X선 영상으로 훈련된 컨볼루션 신경망(CNN) 비전 트랜스포머(ViT)를 결합하여 이상 징후를 detect 수 있습니다. 모델 간 합의는 더 높은 신뢰도 점수를 제공하여 방사선과 의사가 종양을 발견하거나 희귀 질환을 진단하는 도움을 줍니다.
  2. 금융 사기 탐지: 금융 기관들은 거래 패턴 분석을 위해 앙상블 기법을 활용합니다. 로지스틱 회귀 모델과 그라디언트 부스팅 머신을 결합함으로써, 단일 모델로는 놓칠 수 있는 미묘한 사기 징후를 detect 오탐률을 낮게 유지할 수 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")

앙상블 vs. 데이터 증강

앙상블 학습과 데이터 증강을 구분하는 것이 중요하다.

  • 앙상블은 아키텍처와 예측 단계에 중점을 두며, 여러 개의 훈련된 개별 모델을 결합하여 결과를 개선합니다.
  • 데이터 증강은 훈련 데이터 단계에 초점을 맞추며, 데이터 세트의 다양성을 인위적으로 증가시킵니다(예: 회전 또는 뒤집기). 이를 통해 단일하고 더 견고한 모델을 훈련합니다.

데이터 증강은 단일 모델의 학습 성능을 향상시키는 반면, 앙상블 학습은 여러 모델이 서로의 출력을 검증하도록 돕습니다. 이러한 두 전략은 인스턴스 분할자세 추정과 같은 작업에서 최첨단 결과를 달성하기 위해 종종 함께 사용됩니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기