앙앙앙 ૮ •.• ა
앙상블!!!
앙상블 - 시카고 뮤지컬 공연 영상
오늘의 키워드
1. Boosting : 머신러닝, 혼자가 아닌 팀으로 일하기
2. AdaBoost : 잘못 분류된 데이터에 가중치 주기
3. Gradient Boosting : 잔차 학습하기
4. 과적합 제어 및 하이퍼파라미터 전략
안녕하세요! 오늘은 인공지능이 문제를 풀 때 '팀워크'를 발휘하는 마법 같은 방법, 바로 앙상블 학습 중에서도 특히 강력한 부스팅(Boosting) 계열을 아주 쉽게 설명해 드릴게요. 마치 약한 친구들을 모아 최강의 팀을 만드는 과정과 같아요!
| 구분 | 비유 | 핵심 |
|---|---|---|
| 배깅 (Bagging) | 여러 명이 동시에 문제를 풀고 답을 평균 | 병렬 학습 (각자 알아서 풀고 취합) |
| 부스팅 (Boosting) | 첫 번째 사람이 틀린 문제를 두 번째 사람이 집중해서 풀기 | 순차적 학습 (이전 모델의 실수를 다음 모델이 보완) |
부스팅의 아이디어: 수학 문제집을 푸는 것과 같아요.
단계별로 나타내자면
1단계. 처음엔 쉬운 문제부터 풀기 (약한 학습기 1).
2단계. 틀린 문제를 표시하고 다시 풀기 (약한 학습기 2).
3단계. 또 틀린 문제에 더 집중하기 (약한 학습기 3).
4단계. 결론 ➡️ 결국 모든 문제를 풀 수 있게 됩니다.
AdaBoost는 Adaptive(적응적으로)로 어렵게 분류된 샘플에 가중치를 높여가며 학습하는 최초의 실용적인 부스팅 알고리즘입니다.
핵심 원리 (가중치 업데이트)
AdaBoost는 다음 두 가지를 활용합니다:
✨ AdaBoost 알고리즘 단계
| 단계 | 설명 | 공식 |
|---|---|---|
| 초기화 | 모든 샘플의 가중치를 동일하게 설정합니다 | |
| 오차 계산 | 번째 약한 분류기가 틀린 샘플들의 가중치 합을 계산합니다. | |
| 분류기 중요도 | 오차가 작을수록 (정확할수록) 이 모델의 신뢰도()는 커집니다34. | |
| 가중치 업데이트 | 틀린 샘플은 가중치를 증가(), 맞은 샘플은 감소()시킵니다36. | 맞은 경우: 37틀린 경우: 38 |
| 정규화 | 다음 학습을 위해 모든 가중치의 합을 1로 만듭니다. | |
| 최종 예측 | 모든 약한 학습기의 예측을 신뢰도()만큼 가중 투표합니다41. |
AdaBoost가 분류에 집중했다면, Gradient Boosting은 잔차(Residual), 즉 '오차'를 학습하는 방식으로 더욱 일반화된 부스팅 알고리즘입니다.
핵심 원리 (잔차 학습)
1차 모델로 예측: 첫 번째 모델이 예측을 합니다 (예: 78.75점).
잔차 계산: 실제값과 예측값의 차이(오차)를 계산합니다. (예: 실제 95점 - 예측 78.75점 = 오차 +16.25점) .
잔차 학습: 두 번째 모델은 이 오차(잔차) +16.25점을 예측하도록 학습합니다.
최종 예측: 초기 예측에 각 모델의 잔차 예측값을 합산합니다.
➡️ 경사하강법과의 연결: 잔차(오차)를 학습하는 것은 사실 손실 함수(Loss Function)를 최소화하는 경사하강법(Gradient Descent)의 원리를 적용하는 것과 같습니다.
✨ GBM 알고리즘 단계 (코드로 보는 공식)
| 혁신 요소 | GBM | XGBoost | 비유 |
|---|---|---|---|
| 수학적 근거 | 1차 미분 (방향만 알려줌) | 1차 + 2차 미분 (방향 + 곡률) | 브레이크: 급브레이크 vs. 거리 계산 후 적절한 브레이크기화 |
| 학습 속도 | 느림 (순차 처리) | 매우 빠름 (병렬 처리 지원) | 요리: 혼자 하나씩 vs. 여러 명이 동시에 |
| 과적합 제어 | 기본 수준 | 강력한 정규화 ( 등) 내장 | 학생 평가: 시험 점수만 vs. 이해도/응용력 종합 평가 |
| 결측치 처리 | 사전 전처리 필수 | 자동 처리 (최적의 방향을 학습) | 설문조사: 빈칸 에러 vs. 빈칸 자동 처리 |
| 트리 최적화 | Pre-pruning (미리 제한) | Post-pruning (다 자란 후 불필요한 가지 제거) | 나무 관리: 성장 중 강제 중단 vs. 다 자란 후 불필요한 가지치기 |
이걸보면 XGBoost는 GBM보다 더 빠르고 , 더 정확하며 , 대용량 데이터와 실전 환경(경진대회, 프로덕션)에 가장 적합한 알고리즘이라고 판단이 됩니다.
아무리 좋은 모델이라도 과적합이 되면 소용이 없습니다. 훈련 데이터는 100점이지만, 테스트 데이터에서는 엉터리가 되면 안됩니다. 이를 막는 전략이 4가지 있습니다.
| 전략 | 설명 | XGBoost 파라미터 |
|---|---|---|
| Learning Rate | 각 모델의 기여도를 작게() 만들어 천천히 학습 (Shrinkage)81818181. | learning_rate (eta) |
| Tree 제약 | 트리가 너무 깊어지거나 복잡해지는 것을 막습니다. | max_depth, min_samples_split |
| Subsampling | 각 모델을 학습할 때 데이터나 특성의 일부만 사 | subsample, colsample_bytree |
| Early Stopping | 검증 데이터 성능이 더 이상 개선되지 않으면 학습을 중단하여 최적의 반복 횟수를 찾습니다. | early_stopping_rounds |
우와 +ㅁ+ 블로그 읽는데 감동의 쓰나미가....
예진님~ 이건 기업의 뉴스레터급 퀄이잖아요~