ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Gradient Boosting Machine: 약한 학습기를 순차적으로 쌓아 강한 학습기를 만드는 원리
    Knowledge Base/Foundations 2026. 2. 23. 00:54

    Author: Claude Opus 4.6, mangowhoiscloud
    Purpose: Gradient Boosting Machine의 수학적 원리, 트리 구축 메커니즘, LambdaMART로의 확장까지
    Date: 2026-02-22
    Related: Sigmoid 함수 Technical Report (26.02.22), Logistic Regression Foundations (26.02.08)

    Executive Summary

    Gradient Boosting Machine(GBM)은 함수 공간에서의 gradient descent입니다. 파라미터가 아닌 함수 자체를 최적화한다는 점에서 Neural Network의 역전파와 근본적으로 다릅니다. 각 iteration에서 이전 모델의 잔차(residual)에 새 Decision Tree를 적합(fit)시키고, 이를 누적 합산하여 예측력을 점진적으로 개선합니다.

    본 문서는 (1) Boosting의 직관과 수학적 프레임워크, (2) 한 그루의 트리가 학습되는 과정, (3) Regression/Classification/Ranking 세 변형의 gradient 유도, (4) regularization 3-Layer, (5) XGBoost·LightGBM·CatBoost 구현체 비교, (6) LambdaMART로의 확장을 다룹니다.


    1. Boosting의 직관: 실수를 반복적으로 교정한다

    1.1 핵심 아이디어

    시험 채점 비유:
    
    1번 채점자: 대략적으로 채점 → 잔차(오차) 발생
    2번 채점자: 1번이 틀린 부분만 재채점 → 잔차 감소
    3번 채점자: 2번까지도 못 잡은 부분만 재채점 → 잔차 더 감소
    ...
    최종 점수 = 1번 + 2번의 보정 + 3번의 보정 + ...
    
    각 채점자는 "약하지만"(weak learner), 순차적으로 쌓으면 "강하다"(strong learner)

     

    수학적으로 풀면 아래와 같습니다.

    F_M(x) = F_0(x) + Σ_{m=1}^{M} η · h_m(x)
    
    F_0(x): 초기 예측 (보통 평균값)
    h_m(x): m번째 Decision Tree (약한 학습기)
    η:      learning rate (0 < η ≤ 1)
    M:      총 트리 수 (boosting rounds)

    1.2 Bagging과의 구조적 차이

    Bagging (Random Forest):
      - 각 트리가 독립적으로 학습 → 병렬화 가능
      - 전체 데이터의 bootstrap sample 사용
      - 최종 예측: 다수결 또는 평균
      - 분산(variance) 감소가 목적
    
    Boosting (GBM):
      - 각 트리가 이전 트리의 잔차를 학습 → 순차적 (병렬화 제한)
      - 전체 데이터 사용, 단 잔차에 가중
      - 최종 예측: 가중 합산
      - 편향(bias) 감소가 목적
    Random Forest GBM
    학습 방식 독립·병렬 순차·의존
    트리 깊이 깊게 (full depth) 얕게 (3-8)
    트리 수 수백-수천 수백-수천 (조기 종료)
    주요 감소 분산(variance) 편향(bias)
    과적합 패턴 트리 수↑ → 수렴 트리 수↑ → 과적합 가능
    조정 난이도 쉬움 상대적 까다로움

    2. 수학적 프레임워크: 함수 공간에서의 Gradient Descent

    2.1 목적 함수

    F* = argmin_F Σ_{i=1}^{n} L(y_i, F(x_i))
    
    L: 손실 함수
    y_i: 실제 값
    F(x_i): 모델의 예측값

    일반적인 gradient descent는 파라미터 공간에서 최적화합니다:

    θ ← θ - η · ∂L/∂θ

    Friedman(2001)의 핵심 통찰: F(x) 자체를 함수 공간에서 최적화하면?

    F(x) ← F(x) - η · ∂L/∂F(x)
    
    여기서 -∂L/∂F(x_i) = "의사 잔차(pseudo-residual)"

     

    각 관측치 x_i에서의 pseudo-residual:

    r_im = -[∂L(y_i, F(x_i)) / ∂F(x_i)]_{F=F_{m-1}}

    이 pseudo-residual에 Decision Tree h_m을 적합시키면, h_m은 함수 공간에서의 gradient 방향을 근사합니다.

    2.2 GBM 알고리즘 (Friedman, 2001)

    Input: 학습 데이터 {(x_i, y_i)}_{i=1}^n, 손실 함수 L, 트리 수 M, learning rate η
    
    Step 1: 초기 모델
      F_0(x) = argmin_γ Σ_i L(y_i, γ)
      (regression: 평균, classification: log-odds)
    
    Step 2: for m = 1 to M:
    
      (a) Pseudo-residual 계산:
          r_im = -∂L(y_i, F_{m-1}(x_i)) / ∂F_{m-1}(x_i)    ∀i
    
      (b) Decision Tree h_m을 {(x_i, r_im)}에 적합
          → J개의 terminal node (leaf)
    
      (c) 각 leaf j의 최적 출력값:
          γ_jm = argmin_γ Σ_{x_i ∈ R_jm} L(y_i, F_{m-1}(x_i) + γ)
    
      (d) 모델 업데이트:
          F_m(x) = F_{m-1}(x) + η · Σ_{j=1}^{J} γ_jm · 𝟙(x ∈ R_jm)
    
    Output: F_M(x)

    2.3 왜 "Gradient" Boosting인가

    기존 Boosting 알고리즘(AdaBoost)은 오분류 샘플의 가중치를 높이는 방식이었습니다.

    Friedman은 이를 임의의 미분 가능한 손실 함수에 대한 gradient descent로 일반화했습니다:

    AdaBoost: exponential loss에 특화 → 이상치에 취약
    GBM:      임의 loss 사용 가능 → Huber loss 등으로 robustness 확보
    
    AdaBoost의 가중치 업데이트 = exponential loss의 gradient descent
    → AdaBoost는 GBM의 특수 경우

     

    이것이 Friedman의 논문 제목이 "Greedy Function Approximation"인 이유입니다.

    각 step에서 gradient 방향으로 한 그루의 트리를 추가하는 것은, 함수 공간에서의 greedy 탐색입니다.


    3. 한 그루의 트리: Decision Tree의 분할 메커니즘

    3.1 CART 알고리즘 (Classification and Regression Trees)

    GBM의 base learner는 CART Decision Tree입니다. 각 내부 노드에서:

    최적 분할 탐색:
      for each feature j:
        for each threshold t:
          왼쪽 = {x_i : x_ij ≤ t}
          오른쪽 = {x_i : x_ij > t}
          gain = 현재 불순도 - (왼쪽 불순도 + 오른쪽 불순도)
    
      best_split = argmax gain

    Regression (GBM에서 주로 사용):

    불순도 = MSE = (1/n) Σ(y_i - ȳ)²
    
    분할 이득:
    Gain = (1/n) [n_L · Var(y_L) + n_R · Var(y_R)]
    → 분산을 최대한 줄이는 분할 선택

    XGBoost의 분할 이득 (2차 근사):

    Gain = (1/2) [G_L² / (H_L + λ) + G_R² / (H_R + λ) - (G_L + G_R)² / (H_L + H_R + λ)] - γ
    
    G = Σ g_i (gradient의 합)
    H = Σ h_i (hessian의 합)
    λ = L2 regularization
    γ = 분할 복잡도 페널티

    3.2 수치 예시: 한 번의 분할

    데이터: 10개 샘플의 pseudo-residual
      x (feature): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      r (residual): [0.8, 0.6, 0.9, 0.3, 0.1, -0.2, -0.5, -0.8, -0.6, -0.9]
    
    가능한 분할 후보 (x ≤ t 기준):
      t=5: L=[0.8, 0.6, 0.9, 0.3, 0.1], R=[-0.2, -0.5, -0.8, -0.6, -0.9]
           ȳ_L = 0.54, ȳ_R = -0.60
           MSE_L = 0.0884, MSE_R = 0.0580
           Total MSE = 5·0.0884 + 5·0.0580 = 0.732
    
      t=3: L=[0.8, 0.6, 0.9], R=[0.3, 0.1, -0.2, -0.5, -0.8, -0.6, -0.9]
           ȳ_L = 0.767, ȳ_R = -0.371
           MSE_L = 0.016, MSE_R = 0.165
           Total MSE = 3·0.016 + 7·0.165 = 1.203
    
    원래 MSE (분할 전) = 10 · Var(r) = 10 · 0.389 = 3.89
    
    Gain(t=5) = 3.89 - 0.732 = 3.158  ← 최적
    Gain(t=3) = 3.89 - 1.203 = 2.687
    
    → x ≤ 5에서 분할, 왼쪽 leaf 출력 = 0.54, 오른쪽 leaf 출력 = -0.60

    3.3 트리 깊이의 의미

    depth=1 (stump):  하나의 feature, 하나의 threshold
                       → 가장 약한 learner, 가장 높은 bias
                       → 주효과(main effect)만 포착
    
    depth=3:          최대 8개 leaf
                       → 2-way interaction까지 포착
                       → 실전에서 가장 흔한 설정
    
    depth=6:          최대 64개 leaf
                       → 고차 interaction 포착 가능
                       → 과적합 위험 증가
    
    depth=무제한:     Random Forest 스타일
                       → GBM에서는 거의 사용하지 않음

     

    Q: GBM에서 트리 깊이를 왜 3-6으로 제한하나요?

    A: 각 트리는 잔차의 주요 패턴만 포착하면 됩니다. 세밀한 패턴은 다음 트리가 잡습니다.

    깊은 트리 하나보다 얕은 트리 여러 개가 더 좋은 일반화 성능을 보입니다.


    4. 세 가지 변형의 Gradient 유도

    4.1 Regression: MSE Loss

    L(y, F) = (1/2)(y - F)²
    
    pseudo-residual:
    r_i = -∂L/∂F = -(-(y_i - F(x_i))) = y_i - F(x_i)
    
    → 말 그대로 "잔차" (residual)
    → GBM의 이름이 직관적인 이유

     

    가장 단순한 경우로 pseudo-residual = 실제 잔차가 됩니다. 각 트리는 이전 모델이 맞추지 못한 오차를 예측합니다.

    4.2 Classification: Log Loss (Cross-Entropy)

    L(y, F) = -[y·log(σ(F)) + (1-y)·log(1-σ(F))]
            = -y·F + log(1 + e^F)
    
    여기서 p = σ(F) = 1/(1+e^(-F))  [sigmoid 연결]
    
    pseudo-residual:
    r_i = -∂L/∂F = y_i - σ(F(x_i)) = y_i - p_i
    
    → (실제 label - 예측 확률)
    → Logistic Regression의 gradient와 동일한 형태!

    sigmoid와의 연결: Classification GBM에서 각 트리는 F(x) 공간에서 동작하고, 최종 확률은 σ(F(x))로 변환됩니다. 이것이 Sigmoid Technical Report에서 다룬 "실수 → 확률 변환"의 GBM 적용입니다.

     

    leaf 출력의 Newton-Raphson 최적화:

    γ_jm = Σ_{x_i ∈ R_jm} r_i / Σ_{x_i ∈ R_jm} p_i(1-p_i)
         = (1차 gradient의 합) / (2차 gradient의 합)
    
    2차 gradient (hessian): h_i = p_i(1-p_i) = σ(F)(1-σ(F)) = σ'(F)
    → sigmoid의 자기미분 성질(P3)이 여기서 사용됨

    4.3 Ranking: LambdaMART

    LambdaMART는 GBM의 gradient를 NDCG를 직접 최적화하는 lambda gradient로 교체합니다:

    일반 GBM: r_i = -∂L/∂F(x_i)           [loss의 gradient]
    LambdaMART: λ_i = Σ_j λ_ij             [lambda gradient]
    
    λ_ij = σ(σ_param · (s_i - s_j)) · |ΔNDCG_ij|
    
    → NDCG는 미분 불가(이산 순위 함수)
    → 대신 "sigmoid로 매끄럽게 근사한 gradient"를 사용
    → 나머지(트리 구축, leaf 출력, 앙상블)는 표준 GBM과 동일

    핵심 통찰: LambdaMART = GBM + gradient만 교체. 트리 구축 엔진은 XGBoost/LightGBM을 그대로 사용하면서, pseudo-residual 계산만 lambda gradient로 바꾸면 됩니다. 이것이 GBM 프레임워크의 유연성입니다.

    GBM 프레임워크의 모듈성:
    
    Loss Function         pseudo-residual              적용 분야
    ─────────────────────────────────────────────────────
    MSE                   y - F(x)                     회귀
    Log Loss              y - σ(F(x))                  이진 분류
    Softmax CE            y_k - softmax_k(F(x))        다중 분류
    Huber                 조건부 (이상치 robust)         robust 회귀
    Lambda Gradient       Σ σ(Δs)·|ΔNDCG|              순위 학습
    Quantile              조건부 (τ에 따라)              분위수 회귀

    5. Regularization: 과적합 방지의 3 Layer

    GBM은 본질적으로 과적합에 취약합니다(트리를 계속 추가하면 학습 오차는 0에 수렴). 3단계 regularization이 표준입니다.

    5.1 Layer 1: Shrinkage (Learning Rate)

    F_m(x) = F_{m-1}(x) + η · h_m(x)
    
    η = 1.0: 각 트리의 기여를 100% 반영 → 과적합 위험
    η = 0.1: 각 트리의 기여를 10%만 반영 → 더 많은 트리 필요, but 일반화↑
    η = 0.01: 극도로 보수적 → 수천 그루 필요, but 최고 성능 도달 가능

     

    η ∈ [0.01, 0.1], 트리 수는 early stopping으로 결정합니다.

    Friedman(2001)의 관찰

    η를 낮추면 거의 항상 test error가 개선됩니다. 계산 비용과의 트레이드오프일 뿐, 정확도 측면에서는 낮은 η이 우월합니다.

    5.2 Layer 2: Tree Constraints

    max_depth:     트리 깊이 제한 (3-8)
    min_samples_leaf: leaf 최소 샘플 수 (5-20)
    max_features:  분할 시 고려할 feature 비율 (0.5-0.8)
    γ (min_split_gain): 분할의 최소 이득 (XGBoost의 gamma)

    5.3 Layer 3: 명시적 Regularization

    XGBoost 목적함수:
    Obj = Σ L(y_i, F(x_i)) + Σ_m Ω(h_m)
    
    Ω(h) = γ · T + (1/2) · λ · Σ_{j=1}^{T} w_j²
    
    T = leaf 수 (구조 복잡도)
    w_j = leaf j의 출력값
    γ = leaf 수 페널티 → 불필요한 분할 억제
    λ = L2 regularization → leaf 출력 크기 억제

     

    수치 예시: regularization의 효과

    분할 이득 (regularization 없음):
      G_L = 10.0, H_L = 5.0, G_R = -8.0, H_R = 4.0
      Gain = (1/2)[10²/5 + (-8)²/4 - 2²/9]
           = (1/2)[20 + 16 - 0.44]
           = 17.78
    
    분할 이득 (λ=1.0, γ=5.0):
      Gain = (1/2)[10²/(5+1) + (-8)²/(4+1) - 2²/(9+1)] - 5.0
           = (1/2)[16.67 + 12.80 - 0.40] - 5.0
           = 14.53 - 5.0
           = 9.53
    
    → γ=5.0 적용 후 이득이 17.78 → 9.53으로 감소
    → 이득이 양수이므로 분할은 진행, 단 기준이 엄격해짐
    → 이득 < 0이 되는 분할은 차단됨

    6. 구현체 비교: XGBoost vs LightGBM vs CatBoost

    6.1 트리 성장 전략

    XGBoost: Level-wise (수평 우선)
      → 같은 깊이의 모든 노드를 먼저 분할
      → depth 제어가 직관적
      → 불필요한 분할이 발생할 수 있음
    
    LightGBM: Leaf-wise (이득 우선)
      → 전체 leaf 중 이득이 가장 큰 leaf를 분할
      → 같은 트리 수에서 더 낮은 loss 달성
      → 과적합 위험 약간 높음 → max_depth 제한 권장
    
    CatBoost: Symmetric Tree (대칭 트리)
      → 같은 깊이에서 동일한 분할 기준 사용
      → 추론 속도 최적 (분기 예측 효율)
      → 범주형 feature의 native 지원

    6.2 핵심 차별화

    XGBoost LightGBM CatBoost
    트리 성장 Level-wise Leaf-wise Symmetric
    범주형 처리 원핫 인코딩 필요 Exclusive Feature Bundling Ordered Target Encoding
    결측값 학습 시 최적 방향 할당 무시(ignore) 별도 처리
    Histogram Optional 기본(256 bin) 기본
    학습 속도 중간 빠름 (GOSS+EFB) 느림 (ordered boosting)
    GPU 지원 ✓ (강력)
    순위 학습 LambdaMART ✓ LambdaRank ✓ YetiRank

    6.3 LightGBM의 두 가지 가속 기법

    GOSS (Gradient-based One-Side Sampling):

    관찰: gradient가 작은 샘플 = 잘 학습된 샘플 → 정보량 적음
    
    전략:
    1. gradient 절대값 기준 상위 a%는 전부 유지
    2. 나머지 중 무작위 b%만 샘플링, 가중치 (1-a)/b 부여
    
    기본값: a=20%, b=10% → 전체의 ~30%만 사용
    → 학습 속도 ~3x 향상, 정확도 거의 동일

    EFB (Exclusive Feature Bundling):

    관찰: 고차원 희소 데이터에서 많은 feature가 상호 배타적
      예: 원핫 인코딩된 범주형 변수 → 동시에 1인 feature 없음
    
    전략:
      상호 배타적인 feature들을 하나로 묶음 (bundle)
      → feature 수 감소 → 분할 탐색 시간 감소
    
    예: color_red, color_blue, color_green → color (0, 1, 2)
    → 3개 feature → 1개로 축소

    7. Early Stopping과 하이퍼파라미터 튜닝

    7.1 Early Stopping

    GBM의 과적합 패턴:
      m=1~100:   training error ↓, validation error ↓  (underfitting 해소)
      m=100~300: training error ↓, validation error 정체  (적정)
      m=300~:    training error ↓, validation error ↑  (과적합!)
    
    Early stopping:
      validation error가 n_rounds 연속 개선되지 않으면 중단
      보통 n_rounds = 50-100

    Q: GBM에서 트리 수를 어떻게 정하나요?

    A: 직접 정하지 않습니다.  Early stopping이 자동으로 최적 트리 수를 결정하는 점이 Random Forest(트리 수에 강건)와 다른 점입니다.

    7.2 하이퍼파라미터 우선순위

    가장 중요 (먼저 튜닝):
      1. learning_rate (η): 0.01-0.3, early stopping과 연동
      2. n_estimators: early stopping으로 자동 결정
      3. max_depth: 3-8 (LightGBM leaf-wise면 num_leaves로 대체)
    
    중요 (이후 튜닝):
      4. min_child_samples: 5-50
      5. subsample: 0.6-0.9 (Stochastic GBM)
      6. colsample_bytree: 0.5-0.9
    
    미세 조정:
      7. reg_lambda (L2): 0-10
      8. reg_alpha (L1): 0-10
      9. min_split_gain (γ): 0-5

    7.3 수치 예시: Learning Rate와 트리 수의 트레이드오프

    실험: 동일 데이터, early stopping (patience=50)
    
    η = 0.3:  최적 트리 수 = 87,  val RMSE = 0.234
    η = 0.1:  최적 트리 수 = 312, val RMSE = 0.221  (-5.6%)
    η = 0.05: 최적 트리 수 = 580, val RMSE = 0.218  (-6.8%)
    η = 0.01: 최적 트리 수 = 2,847, val RMSE = 0.215 (-8.1%)
    
    경향: η↓ → 트리 수↑ → 학습 시간↑ → but RMSE↓
    실전: η=0.05-0.1이 속도/성능 균형점

    8. Feature Importance: 모델 해석

    8.1 세 가지 중요도 지표

    ① Split Count (분할 빈도):
      각 feature가 분할에 사용된 횟수
      문제: 높은 cardinality feature에 편향 (많은 분할 후보)
    
    ② Gain (분할 이득 총합):
      각 feature의 분할이 가져온 이득의 합
      가장 신뢰할 수 있는 지표
      XGBoost의 기본 importance_type='gain'
    
    ③ Coverage (커버리지):
      각 feature의 분할이 영향을 미치는 샘플 비율

    8.2 SHAP (SHapley Additive exPlanations)

    Tree SHAP:
      각 예측에 대해 각 feature의 기여도를 Shapley value로 분해
      → 전역적 중요도 + 개별 예측 설명 모두 가능
    
    f(x) = E[f(X)] + Σ_j φ_j(x)
    
    E[f(X)]: 전체 예측의 평균
    φ_j(x):  feature j의 Shapley value (기여도)
    Σ φ_j(x): 예측값과 평균의 차이를 feature별로 분해

    Q: Feature importance vs SHAP

    A: importance는 전역적 순위만 제공, SHAP는 개별 예측의 feature별 기여도까지 분해합니다. GBM + SHAP 조합으로서 ML이 설명 가능해집니다.


    9. LambdaMART: GBM의 Ranking 확장

    9.1 아키텍처

    표준 GBM:
      Loss L(y, F) → pseudo-residual r = -∂L/∂F → CART → F update
    
    LambdaMART:
      NDCG (미분 불가) → lambda gradient λ_i = Σ_j λ_ij → CART → F update
    
    λ_ij = σ(σ_param · (s_i - s_j)) · |ΔNDCG_ij|
    
    차이점: gradient 계산만 다름. 나머지는 동일.

    9.2 왜 NDCG를 직접 미분하지 않는가

    NDCG@K = DCG@K / IDCG@K
    
    DCG@K = Σ_{i=1}^K (2^{rel_i} - 1) / log₂(i+1)
    
    문제: rel_i는 "i번째 위치에 있는 문서의 relevance"
         → 위치 i는 스코어의 argsort 결과
         → argsort는 미분 불가 (이산 연산)
    
    해결: 모든 문서 쌍 (i,j)에 대해
         "i와 j를 교환했을 때 NDCG가 얼마나 변하는지" = |ΔNDCG_ij|
         × "교환이 필요한 확률" = σ(s_i - s_j)
         → 미분 가능한 surrogate gradient

    9.3 수치 예시: Lambda Gradient 계산

    Query에 대한 3개 문서:
      Doc A: relevance=3, score=2.1, rank=1
      Doc B: relevance=1, score=1.8, rank=2
      Doc C: relevance=2, score=0.5, rank=3
    
    IDCG@3 = (2³-1)/log₂(2) + (2²-1)/log₂(3) + (2¹-1)/log₂(4)
           = 7/1 + 3/1.585 + 1/2
           = 7 + 1.893 + 0.5 = 9.393
    
    쌍 (A, B): rel_A > rel_B, score_A > score_B (순서 올바름)
      σ(2.1-1.8) = σ(0.3) = 0.574
      A↔B 교환 시 ΔNDCG = 작음 (rel 3→1 교환, 상위 위치)
      λ_AB = 0.574 · |ΔNDCG_AB| → 중간 gradient (순서 맞지만 확신↑ 필요)
    
    쌍 (B, C): rel_B < rel_C, score_B > score_C (순서 잘못됨!)
      σ(1.8-0.5) = σ(1.3) = 0.786
      B↔C 교환 시 ΔNDCG = rel 2를 rank 2로, rel 1을 rank 3으로 → 큰 이득
      λ_BC = 0.786 · |ΔNDCG_BC| → 큰 gradient (순서 교정 필요!)
    
    → 모델은 B의 score를 낮추고 C의 score를 높이는 방향으로 학습
    → |ΔNDCG|가 큰 쌍에 집중 = 상위 순위 최적화

    10. GBM의 한계와 알아야 할 트레이드오프

    한계 1: 순차 학습 → 학습 병렬화 제한
      트리 간 의존성 때문에 m+1번째 트리는 m번째 결과를 기다려야 함
      단, 트리 내부의 분할 탐색은 병렬화 가능 (XGBoost/LightGBM 모두 구현)
    
    한계 2: 외삽(extrapolation) 불가
      트리 기반이므로 학습 범위 밖의 값에 대해 가장 가까운 leaf로 예측
      → 시계열 등 트렌드가 있는 데이터에 약함
    
    한계 3: 고차원 희소 데이터에서 Neural Net 대비 열위
      NLP, 이미지 등 고차원·희소·비구조적 데이터는 NN이 우위
      GBM의 강점은 정형 데이터(tabular data)
    
    한계 4: 하이퍼파라미터 민감성
      Random Forest 대비 튜닝이 까다로움
      η, depth, regularization의 조합이 성능에 큰 영향

     

    Q: GBM vs Neural Net 언제 어느 것을 쓰나요?

    A: Bentéjac et al.(2021)의 체계적 비교에서도 정형 데이터에서 GBM은 여전히 Neural Net과 동등하거나 우위입니다.

    GBM 우위:
      - 정형 데이터 (tabular)
      - 데이터 수천~수백만 행
      - feature importance / 해석 필요
      - 학습 시간 제약
    
    Neural Net 우위:
      - 비구조적 데이터 (이미지, 텍스트, 오디오)
      - 데이터 수백만 행 이상
      - 표현 학습(representation learning) 필요
      - GPU 인프라 확보

    References

    1. Friedman, J. H. (2001). "Greedy Function Approximation: A Gradient Boosting Machine." Annals of Statistics, 29(5), 1189-1232.
    2. Chen, T. & Guestrin, C. (2016). "XGBoost: A Scalable Tree Boosting System." KDD.
    3. Ke, G. et al. (2017). "LightGBM: A Highly Efficient Gradient Boosting Decision Tree." NeurIPS.
    4. Prokhorenkova, L. et al. (2018). "CatBoost: Unbiased Boosting with Categorical Features." NeurIPS.
    5. Burges, C. J. C. (2010). "From RankNet to LambdaRank to LambdaMART: An Overview." Microsoft Research TR-2010-82.
    6. Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning. Springer. Ch.10.
    7. Natekin, A. & Knoll, A. (2013). "Gradient Boosting Machines, A Tutorial." Frontiers in Neurorobotics, 7:21.
    8. Bentéjac, C. et al. (2021). "A Comparative Analysis of Gradient Boosting Algorithms." Artificial Intelligence Review, 54, 1937-1967.
    9. Lundberg, S. M. & Lee, S.-I. (2017). "A Unified Approach to Interpreting Model Predictions." NeurIPS. [SHAP]
    10. Friedman, J. H. (2002). "Stochastic Gradient Boosting." Computational Statistics & Data Analysis, 38(4), 367-378.

    댓글

ABOUT ME

🎓 부산대학교 정보컴퓨터공학과 학사: 2017.03 - 2023.08
☁️ Rakuten Symphony Jr. Cloud Engineer: 2024.12.09 - 2025.08.31
🏆 2025 AI 새싹톤 우수상 수상: 2025.10.30 - 2025.12.02
🌏 이코에코(Eco²) 백엔드/인프라 고도화 중: 2025.12 - Present

Designed by Mango