머신러닝 심화 7일차 - 앙상블 학습 ② Boosting 계열

컬럼월드·2025년 11월 20일
post-thumbnail

앙앙앙 ૮ •.• ა
앙상블!!!
앙상블 - 시카고 뮤지컬 공연 영상

오늘의 키워드
1. Boosting : 머신러닝, 혼자가 아닌 팀으로 일하기
2. AdaBoost : 잘못 분류된 데이터에 가중치 주기
3. Gradient Boosting : 잔차 학습하기
4. 과적합 제어 및 하이퍼파라미터 전략

1. 🚀 부스팅(Boosting) : 머신러닝, 혼자가 아닌 팀으로 일하기

안녕하세요! 오늘은 인공지능이 문제를 풀 때 '팀워크'를 발휘하는 마법 같은 방법, 바로 앙상블 학습 중에서도 특히 강력한 부스팅(Boosting) 계열을 아주 쉽게 설명해 드릴게요. 마치 약한 친구들을 모아 최강의 팀을 만드는 과정과 같아요!

  1. 🤝 부스팅 vs. 배깅: 팀워크의 스타일 차이
    앙상블 학습은 여러 개의 약한 모델(Weak Learner)을 모아 하나의 강력한 모델(Strong Learner)을 만드는 전략입니다. 팀워크에도 스타일이 있죠.
구분비유핵심
배깅 (Bagging)여러 명이 동시에 문제를 풀고 답을 평균병렬 학습 (각자 알아서 풀고 취합)
부스팅 (Boosting)첫 번째 사람이 틀린 문제를 두 번째 사람이 집중해서 풀기순차적 학습 (이전 모델의 실수를 다음 모델이 보완)

부스팅의 아이디어: 수학 문제집을 푸는 것과 같아요.
단계별로 나타내자면

1단계. 처음엔 쉬운 문제부터 풀기 (약한 학습기 1).
2단계. 틀린 문제를 표시하고 다시 풀기 (약한 학습기 2).
3단계. 또 틀린 문제에 더 집중하기 (약한 학습기 3).
4단계. 결론 ➡️ 결국 모든 문제를 풀 수 있게 됩니다.

2. 🎯 AdaBoost: 잘못 분류된 데이터에 가중치 주기

AdaBoost는 Adaptive(적응적으로)로 어렵게 분류된 샘플에 가중치를 높여가며 학습하는 최초의 실용적인 부스팅 알고리즘입니다.

핵심 원리 (가중치 업데이트)

AdaBoost는 다음 두 가지를 활용합니다:

  1. 데이터 가중치 (Data Weights): 다음 모델에게 "이 데이터는 중요해! 틀리면 안 돼!"라고 알려주는 역할입니다.
  • 맞은 데이터: 가중치 감소합니다.
  • 틀린 데이터: 가중치 증가. →\rightarrow 다음 모델은 가중치가 큰 데이터에 더 집중합니다.
  1. 모델 신뢰도 (Model Confidence): 각 약한 학습기가 얼마나 믿을 만한지를 나타내는 값입니다.
  • 에러율이 낮을수록 (정확할수록): 신뢰도 높다.
  • 최종 예측: 정확한 모델(신뢰도 높은 모델)의 의견을 더 중요하게 반영하여 가중 투표로 결합합니다.

✨ AdaBoost 알고리즘 단계

단계설명공식
초기화모든 샘플의 가중치를 동일하게 설정합니다wi=1/Nw_i = 1/N
오차 계산tt번째 약한 분류기가 틀린 샘플들의 가중치 합을 계산합니다.ϵt=∑iwi⋅I(yi≠ht(xi))\epsilon_t = \sum_i w_i \cdot \mathbb{I}(y_i \neq h_t(x_i))
분류기 중요도오차가 작을수록 (정확할수록) 이 모델의 신뢰도(αt\alpha_t)는 커집니다34.αt=0.5⋅log⁡((1−ϵt)/ϵt)\alpha_t = 0.5 \cdot \log((1-\epsilon_t) / \epsilon_t)
가중치 업데이트틀린 샘플은 가중치를 증가(eαte^{\alpha_t}), 맞은 샘플은 감소(e−αte^{-\alpha_t})시킵니다36.맞은 경우: wt+1(i)=wt(i)×e−αtw_{t+1}(i) = w_t(i) \times e^{-\alpha_t} 37틀린 경우: wt+1(i)=wt(i)×eαtw_{t+1}(i) = w_t(i) \times e^{\alpha_t} 38
정규화다음 학습을 위해 모든 가중치의 합을 1로 만듭니다.Wnew=W/∑WW_{\text{new}} = W / \sum W
최종 예측모든 약한 학습기의 예측을 신뢰도(αt\alpha_t)만큼 가중 투표합니다41.H(x)=sign(∑t=1Tαt⋅ht(x))H(x) = \text{sign}(\sum_{t=1}^T \alpha_t \cdot h_t(x))

3. 📉 Gradient Boosting (GBM): '잔차'를 학습하기

AdaBoost가 분류에 집중했다면, Gradient Boosting은 잔차(Residual), 즉 '오차'를 학습하는 방식으로 더욱 일반화된 부스팅 알고리즘입니다.

핵심 원리 (잔차 학습)

  1. 1차 모델로 예측: 첫 번째 모델이 예측을 합니다 (예: 78.75점).

  2. 잔차 계산: 실제값과 예측값의 차이(오차)를 계산합니다. (예: 실제 95점 - 예측 78.75점 = 오차 +16.25점) .

  3. 잔차 학습: 두 번째 모델은 이 오차(잔차) +16.25점을 예측하도록 학습합니다.

  4. 최종 예측: 초기 예측에 각 모델의 잔차 예측값을 합산합니다.

➡️ 경사하강법과의 연결: 잔차(오차)를 학습하는 것은 사실 손실 함수(Loss Function)를 최소화하는 경사하강법(Gradient Descent)의 원리를 적용하는 것과 같습니다.

✨ GBM 알고리즘 단계 (코드로 보는 공식)

혁신 요소GBMXGBoost비유
수학적 근거1차 미분 (방향만 알려줌)1차 + 2차 미분 (방향 + 곡률)브레이크: 급브레이크 vs. 거리 계산 후 적절한 브레이크기화
학습 속도느림 (순차 처리)매우 빠름 (병렬 처리 지원)요리: 혼자 하나씩 vs. 여러 명이 동시에
과적합 제어기본 수준강력한 정규화 (γ,λ\gamma, \lambda 등) 내장학생 평가: 시험 점수만 vs. 이해도/응용력 종합 평가
결측치 처리사전 전처리 필수자동 처리 (최적의 방향을 학습)설문조사: 빈칸 에러 vs. 빈칸 자동 처리
트리 최적화Pre-pruning (미리 제한)Post-pruning (다 자란 후 불필요한 가지 제거)나무 관리: 성장 중 강제 중단 vs. 다 자란 후 불필요한 가지치기

이걸보면 XGBoost는 GBM보다 더 빠르고 , 더 정확하며 , 대용량 데이터와 실전 환경(경진대회, 프로덕션)에 가장 적합한 알고리즘이라고 판단이 됩니다.

4. 과적합 제어 및 하이퍼파라미터 전략

아무리 좋은 모델이라도 과적합이 되면 소용이 없습니다. 훈련 데이터는 100점이지만, 테스트 데이터에서는 엉터리가 되면 안됩니다. 이를 막는 전략이 4가지 있습니다.

전략설명XGBoost 파라미터
Learning Rate각 모델의 기여도를 작게(η=0.01∼0.1\eta=0.01\sim0.1) 만들어 천천히 학습 (Shrinkage)81818181.learning_rate (eta)
Tree 제약트리가 너무 깊어지거나 복잡해지는 것을 막습니다.max_depth, min_samples_split
Subsampling각 모델을 학습할 때 데이터나 특성의 일부만 사subsample, colsample_bytree
Early Stopping검증 데이터 성능이 더 이상 개선되지 않으면 학습을 중단하여 최적의 반복 횟수를 찾습니다.early_stopping_rounds
profile
안녕하세요, 코딩과 잡다한 얘기도 좋아해요.

1개의 댓글

comment-user-thumbnail
2025년 11월 28일

우와 +ㅁ+ 블로그 읽는데 감동의 쓰나미가....
예진님~ 이건 기업의 뉴스레터급 퀄이잖아요~

답글 달기