[학습 일기 # 29] 머신러닝 심화_Ensemble

Ariel_Jeong·2026년 2월 5일

[학습 일기 시리즈]

목록 보기
29/44

오늘 정리 들어가기에 앞서 먼저

Ensemble 모델이란?

여러 개의 약한 학습기(Weak Learners) 를 결합하여
단일 모델보다 더 안정적이고 일반화 성능이 높은 예측 모델을 만드는 방법

이때 핵심은 단순한 평균이 아니라,

  • 서로 다른 오류 패턴을 가진 모델들의 다양성(Diversity) 을 확보하고
  • 각 모델의 강점을 집단 지성처럼 결합하는 데 있다.

앙상블 학습은 본질적으로 편향–분산 트레이드오프(Bias–Variance Tradeoff)를 개선하기 위한 전략이며,
크게 다음 두 계열로 나뉜다.

  • 배깅(Bagging): 분산 감소 중심
  • 부스팅(Boosting): 편향 감소 중심

그럼 더 자세하게 각 모델들에 대해 알아보자.




1. 배깅(Bagging)

Variance(분산)를 줄이는 데 집중하는 앙상블 전략
훈련 데이터에서 복원 랜덤 샘플링(Bootstrap)을 통해 여러 서브셋을 만들고,
모델들을 독립적으로 병렬 학습시켜 결과를 집계(Aggregating)하는 방식이다.

1.1. 랜덤 포레스트(Random Forest)

배깅 + 무작위성(Randomness)을 결합한 대표적인 앙상블 모델

1.1.1. 작동 원리

  • Step 1. 부트스트랩 샘플링 (Bootstrap Sampling)
    • 원본 데이터에서 중복 허용 랜덤 샘플링
      (행(데이터 샘플링)과 열(특성 무작위 선택) 모두에 랜덤 요소를 부여)
    • 단순히 무작위 선택을 하는 것이 아니라, 이를 통해 트리들 간의 상관관계를 낮춰
      앙상블의 다양성을 극대화(Decorrelation)
  • Step 2. 무작위 특성 선택 (Random Feature Selection)
    • 노드 분할 시 전체 특성 중 일부만 랜덤 선택
    • 트리 간 상관관계 감소 → 분산 감소
  • Step 3. 결과 결합
    • 분류: 다수결(Hard Voting/Soft Voting)
    • 회귀: 평균(mean)

1.1.2. 편향–분산 관점

  • 분산 ↓↓↓
  • 편향은 단일 트리 수준 유지

1.1.3. 특징 요약

  • 안정적인 성능
  • 과적합에 강함



1.2. ExtraTrees(Extremely Randomized Trees)

Random Forest보다 극도의 무작위성(Extreme Randomness)을 추가한 모델


1.2.1. Random Forest와의 차이

  • 데이터 샘플링

    • Random Forest: 부트스트랩 샘플 사용
    • ExtraTrees: 전체 원본 데이터 사용
  • 노드 분할 방식

    • Random Forest: 최적 분할 탐색
    • ExtraTrees: 무작위 분할(Random Split)
      (최적의 분할 지점을 탐욕적으로 찾지 않고, 무작위로 분할 지점(Random Split)을 선택하여 최선의 분할을 결정)
  • 트레이드오프:
    무작위성 덕분에 연산 속도가 압도적으로 빠르고 분산(Variance)을 효과적으로 낮추지만,
    개별 트리의 정확도가 낮아져 편향(Bias)이 소폭 증가할 수 있다


1.2.2. 언제 유리한가?

  • 데이터가 크고 노이즈가 많은 경우
  • 빠른 학습 속도가 필요한 경우
  • 하이퍼파라미터 튜닝 부담을 줄이고 싶을 때




2. 부스팅(Boosting)

모델을 순차적으로 학습시키며 이전 모델이 만든 오류를 다음 모델이 보완하도록 설계된 앙상블 전략

배깅“여러 모델을 동시에 학습”한다면,
부스팅“하나씩 이어서 점점 더 정교하게 학습”한다.

2.1. AdaBoost

잘못 분류된 데이터에 가중치를 부여하며 점진적으로 성능을 개선


2.1.1. 학습 방식

  • Step 1. 모든 데이터에 동일한 가중치로 시작
  • Step 2. 약한 학습기 학습
  • Step 3. 오분류된 데이터의 가중치 증가
  • Step 4. 다음 모델은 어려운 데이터에 더 집중
  • Step 5. 반복 후 가중합으로 최종 예측

2.1.2. 특징

  • 단순한 모델로도 높은 성능 가능
  • 마진(Margin)을 최대화하는 방향으로 학습
    • AdaBoost의 역설(훈련 오류가 0이 된 후에도 테스트 성능이 지속적으로 향상되는 현상)이 나타나기도 함
  • 노이즈와 이상치에 매우 민감

“틀린 데이터를 끝까지 붙잡고 학습하는 방식”



2.2. GradientBoost

잔차(Residual)를 학습하며 정답에 다가가는 방식

cf) Gradient Descent(경사 하강법) 개념 요약

학습이란 본질적으로 손실 함수(loss function)를 최소화하는 weight를 찾는 과정

Gradient Descent는

  • 현재 지점에서 손실 함수의 기울기(Gradient)를 계산하고
  • 손실이 가장 빠르게 감소하는 방향으로
  • learning rate만큼 이동

이를 반복해 손실 최소 지점(Global Minimum)에 도달한다.


2.2.1. Gradient Boosting의 핵심 아이디어

"이전 모델의 예측 오차(잔차)를 다음 모델이 학습하도록 하자"

이를 손실 함수 관점에서 보면,

  • 현재 모델이 만든 손실의 기울기(Gradient) 를 계산하고
  • 그 기울기를 줄이는 방향으로 새로운 모델을 추가

즉, 모델 하나를 추가하는 행위 자체가 Gradient Descent의 한 스텝이다.

2.2.2. 학습 흐름

  • Step 1. 초기 예측값 설정
  • Step 2. 실제값 − 예측값 = 잔차(residual) 계산
  • Step 3. 잔차를 예측하는 모델 학습
  • Step 4. learning rate를 곱해 기존 모델에 누적
  • Step 5. 반복

2.3. AdaBoost vs Gradient Boosting

구분AdaBoostGradient Boosting
핵심 관점데이터 가중치손실 함수의 기울기
이론 기반경험적최적화 이론
손실 함수지수 손실임의의 손실 함수
profile
R&D 분야의 경험을 토대로 커리어 확장에 도전중인 개발꿈나무입니다.

0개의 댓글