📌 주니어 PM 혼자 AI 기초 공부: 머신러닝 - 그래디언트 부스팅(Gradient Boosting)
그래디언트 부스팅
그래디언트 부스팅(Gradient Boosting, 이하 GB)은 머신러닝의 앙상블 기법으로, 여러 개의 단순한 모델('약한 예측 모델'. 주로 의사결정 나무)을 순차적으로 결합하여 강력한 예측 모델을 만드는 방법입니다. 정형 데이터를 다루는 머신러닝 대회(Kaggle 등)에서 우승한 모델의 80% 이상이 GB 모델을 사용할 만큼 성능이 검증된 개념입니다.
그래디언트 부스팅이라 부르는 이유는 '그래디언트(경사)' 라는 수학적 도구를 사용해서 모델의 성능을 '부스팅' 하기 때문입니다. 이 방법이 등장하기 전에는 에이다부스트(Adaboost) 라는 기법이 있었는데, 틀린 데이터에 가중치를 주는 방식이라서 복잡한 오차 계산이나 다양한 목적에 유연하게 대응하기가 어려웠습니다. 이를 해결하기 위해, 연구자들은 오차를 줄이는 과정을 '최적화 문제' 로 보고 미분을 사용하기로 했습니다. 그 결과 어떤 형태의 오차라도 계산할 수 있는 범용적인 GB 기법이 탄생했습니다.
GB 기법 관련 도구에는 XGBoost (eXtreme Gradient Boosting), LightGBM, CatBoost 등이 있습니다.
약한 예측 모델
머신러닝에서 랜덤 예측보다 조금 더 나은 정도의 성능을 내는 단순한 모델을 말합니다. 일반적으로 얕은 의사결정 나무(Decision Tree)를 약한 학습자로 사용하며, 복잡하고 강한 모델에 비해 훈련 속도가 빠르고 과적합이 적습니다.
핵심 개념
- 순차적 학습
- 한 번에 학습하는 것이 아니라, 모델을 하나씩 차례대로 붙여나갑니다.
- 첫 번째 모델을 만든 후, 그 모델의 오류(잔차; residual)를 다음 모델이 보정하는 과정을 반복합니다.
- 점진적으로 정확도를 높입니다.
- 경사 하강법(Gradient Descent)
- 모델의 예측값과 실제값의 차이인 손실함수(Loss Function)를 최소화하는 방향으로 모델을 업데이트합니다.
- 앙상블 효과
- 각각의 '약한 예측 모델'은 성능이 낮지만, 여러 개의 모델이 모여서 강한 성능을 발휘합니다.
- 가중치 부여
- 각 단계에서 오차가 큰 데이터에 더 많은 집중력을 발휘하도록 설계됩니다.
- 회귀와 분류 모두 지원
- 숫자 예측(회귀)이나 카테고리 분류에 모두 적용할 수 있습니다.
- tabular 데이터에 특히 강력합니다.
Diagram

이미지 출처:
https://www.researchgate.net/figure/Flow-diagram-of-gradient-boosting-machine-learning-method-The-ensemble-classifiers_fig1_351542039
등장 배경
1999년에 Jerome Friedman이 제안한 GB 기법은, 노이즈 데이터에 취약하고 과적합이 발생하기 쉬웠던 기존 부스팅 알고리즘(에이다부스트)의 한계를 극복하기 위해 등장했습니다.
기존의 모델들은 한 번 학습하면 끝이거나, 모델을 병렬로 나열해서 투표하는 방식이었습니다. 이는 복잡한 데이터를 학습하게 되면, 틀린 문제를 계속 틀리는 문제가 있었습니다. GB 기법은 '틀린 문제만 모아서 다시 가르치면 어떨까?' 라는 아이디어에서 출발했습니다.
GB 기법은 손실 함수의 그래디언트를 사용해서 더 유연하게 오류를 보정하며, 일반화된 최적화 프레임워크를 제공하며 예측 오차를 획기적으로 줄이는 데 성공했습니다. 이는 1980년대부터 시작된 부스팅 이론을 발전시킨 결과입니다.
현재는 XGBoost 같은 구현체가 Kaggle 대회에서 우승하며 그 성능이 실전에서 입증되었고, 바이어스 오류를 효과적으로 줄였습니다. 그러나 여전히 컴퓨팅 자원이 많이 필요하기 때문에 효율성을 높이는 방향으로 연구가 진행되고 있습니다.
활용
GB 기법은 숫자로 이루어진 tabular 데이터가 많은 사업 분야에서 효과적입니다.
- 금융 분야: 신용 등급, 사기 탐지 예측
- 고객의 수입, 나이, 연체 기록 등을 바탕으로 대출 위험을 정교하게 예측합니다.
- JPMorgan Chase 는 GB 기법을 사용해 사기 탐지 정확도를 높였습니다.
- 마케팅 분야: 고객 이탈 예측
- Netflix나 Amazon은 사용자 행동을 분석해 구독 이탈을 예측하고, 맞춤 콘텐츠를 추천합니다.
- 이커머스: 구매 전환 예측
- 고객의 클릭 로그, 장바구니 체류 시간 등을 분석해 구매할 확률이 높은 고객을 타겟팅합니다.
- 보안: 이상 거래 탐지
- 신용카드 결제 패턴을 분석하여 평소와 다른 이상 거래의 징후를 실시간으로 잡아냅니다.
- 의료 분야: 질병 예측
- 병원에서 환자 데이터를 통해 조기 진단을 합니다.
- Mayo Clinic이 GB 기법으로 암 재발 예측 모델을 개발해 정확도를 대폭 끌어올렸습니다.
위의 각 분야에서 GB 기법이 최강의 성능을 발휘하지만, 목적에 따라 로지스틱 회귀(설명 가능성과 규제 대응) 기법과 랜덤 포레스트(사기 탐지) 기법도 많이 사용합니다. 보안 분야에서는 오토인코더(이상 패턴을 정교하게 감지) 기법과 아이솔레이션 포레스트(라벨이 없을 때, 또는 초기 탐지)가 사용됩니다.
Key words
- 앙상블(Ensemble): 여러 개의 모델을 합쳐 하나의 강력한 모델을 만드는 기법.
- 결정 트리(Decision Tree): 스무고개처럼 예/아니오 질문을 통해 결과를 도출하는 알고리즘.
- 잔차(Residual): 실제값과 모델 예측값의 차이. 오차.
- 학습률(Learning Rate): 오차를 수정할 때 얼마나 큰 폭으로 수정할지 결정하는 값.
- 과적합(Overfitting): 훈련 데이터에 너무 최적화되어 실제 현장의 새로운 데이터에 대해서는 성능이 떨어지는 현상. 일반화되지 않은 상태.
- 약한 예측 모델(Weak Learner): 보통 얕은 결정 트리. 단독으로는 성능이 낮지만 결합 시 강력해짐.
- 손실 함수(Loss Function): 모델의 오류를 측정하는 함수, 예: MSE(Mean Squared Error).
- 축소(Shrinkage): 학습률을 낮춰 과적합을 방지. 모델이 너무 복잡해지지 않도록 파라미터의 값을 작게 만드는 것.
GB 기법의 한계
- 과적합 위험
- 모델이 복잡해지면 훈련 데이터에 과도하게 적합해 일반화가 어렵습니다.
- 극복: 축소(shringkage) 기법 또는 의사 결정 나무에 제약 조건(tree constraints) 활용.
- 컴퓨팅 자원 소모
- 순차적으로 학습하기 때문에 훈련 시간이 길고, 대규모 데이터에 대해서는 자원이 많이 필요합니다.
- 극복: 병렬 처리를 강화하거나 멀티클래스 효율성을 높이는 작업이 진행중입니다.
- 해석 어려움
- 블랙박스 모델이기 때문에, 예측에 대한 이유를 설명하기 어렵습니다.
- 극복: SHAP(SHapley Additive exPlanations) 같은 설명 도구를 통합합니다. 이는 머신러닝 모델의 출력을 설명하기 위한 게임 이론 기반 접근법입니다.
- 노이즈 민감성
- 데이터에 노이즈가 많으면 성능이 떨어집니다.
- 극복: Robust Loss Functions를 연구합니다. 이는 노이즈와 이상치(outliers)의 부정적 영향을 완화하기 위해 제안된 손실 함수입니다.
- 멀티클래스 분류 한계
- 여러 클래스를 다룰 때 별도의 모델이 필요해서 복잡해집니다.
- 극복: Condensed-Gradient Boosting 기법을 사용합니다. 이 기법은 다중 출력 회귀기(multi-output regressors)를 기본 모델로 사용하여 다중 클래스 문제를 단일 작업으로 처리합니다. 다중 출력 회귀 트리는 모든 클래스의 정보를 한 번에 포착할 수 있습니다.
퀴즈
- Q1) 그래디언트 부스팅은 모델을 병렬로 학습하나요, 순차적으로 학습하나요?
- Q2) 그래디언트 부스팅에서 '잔차(Residual)'란 무엇을 의미하나요?
- Q3) 고객 이탈 예측 모델을 만들 때 이 알고리즘을 사용해도 좋을까요?
- A1) 순차적. 앞선 모델의 오차를 다음 모델이 이어받아야 하기 때문입니다.
- A2) 실제 정답과 현재 모델 예측값 사이의 차이/오차.
- A3) 대표적인 분류 문제이고 정형 데이터를 다루는 고객 이탈 문제에는 아주 적합합니다.
References
- https://www.datacamp.com/tutorial/guide-to-the-gradient-boosting-algorithm
- https://explained.ai/gradient-boosting/
- https://www.geeksforgeeks.org/machine-learning/ml-gradient-boosting/
- https://www.analyticsvidhya.com/blog/2021/09/gradient-boosting-algorithm-a-complete-guide-for-beginners/
- https://www.snowflake.com/en/fundamentals/what-is-gradient-boosting/
- https://stats.stackexchange.com/questions/648222/on-the-history-of-gradient-boosting
- https://mlcourse.ai/book/topic10/topic10_gradient_boosting.html
- https://www.cloudthat.com/resources/blog/a-deep-dive-into-gradient-boosting-and-its-real-world-applications/
- https://www.ibm.com/think/topics/gradient-boosting
- https://www.nature.com/articles/s41598-025-16526-z
- https://arxiv.org/pdf/2305.17094
- https://link.springer.com/article/10.1007/s13042-024-02279-0
- https://www.digitalocean.com/community/tutorials/gradient-boosting-for-classification
'AI Study > 머신러닝(ML)' 카테고리의 다른 글
| 주니어 PM 혼자 AI 기초 공부: 머신러닝 - LightGBM (0) | 2025.12.22 |
|---|---|
| 주니어 PM 혼자 AI 기초 공부: 머신러닝 - XGBoost (0) | 2025.12.19 |
| 주니어 PM 혼자 AI 기초 공부: 머신러닝 모델과 알고리즘 (0) | 2025.12.17 |
| 주니어 PM 혼자 AI 기초 공부: 강화 학습(Reinforcement Learning) (1) | 2025.12.16 |
| 주니어 PM 혼자 AI 기초 공부: 마스크 언어 모델링(Masked Language Modeling, MLM) (0) | 2025.12.15 |