1 of 29

기계학습

Ensemble Learning #2

강원대학교 컴퓨터공학과 최우혁

2 of 29

지난 시간에…

  • Ensemble Learning: 두 개 이상의 기계 학습 모델을 모아서 단일 기계 학습 모델을 쓸 때보다 성능을 향상시키는 기법
    • Bootstrap Aggregating, or Bagging
    • Pasting
    • Random Subspace
    • Random Patch
    • Stacked Generalization, or Stacking
    • Boosting
    • Voting: Hard Voting, Soft Voting, Weighted Average Voting

2

3 of 29

지난 시간에…

  • Bagging: Random Forest & ExtraTrees
    • Random Forest: Bagging + Random Subspace + Best Split of Decision Trees
    • ExtraTrees: Random Subspace + Random Split of Decision Trees

3

4 of 29

강의 순서

  • Ensemble Learning?
  • Bagging: Random Forest & ExtraTrees
  • Boosting: AdaBoost & Gradient Boosting

4

5 of 29

강의 순서

  • Ensemble Learning?
  • Bagging: Random Forest & ExtraTrees
  • Boosting: AdaBoost & Gradient Boosting

5

6 of 29

Boosting

AdaBoost & Gradient Boosting

6

7 of 29

(Revisit) Boosting?

Boosting: AdaBoost & Gradient Boosting

  • 한 Weak Learner가 잘 예측하지 못했던 샘플들의 중요도(가중치)를 높여서, 다음 Weak Learner를 학습
    • 이 과정에서 각 Weak Learner의 성능을 기반으로 한 가중치가 계산됨
  • 최종 출력값은 각 Weak Learner의 출력값과 성능의 가중치 평균Weighted Average

7

8 of 29

(Revisit) Boosting: 예

Boosting: AdaBoost & Gradient Boosting

8

9 of 29

(Revisit) Boosting: 예

Boosting: AdaBoost & Gradient Boosting

9

10 of 29

Adaptive Boosting, or AdaBoost

Boosting: AdaBoost & Gradient Boosting

  • 1995년, Yoav Freund와 Robert Schapire가 개발한 Boosting 알고리즘
  • Weak Learner를 반복적으로 적응시키는Adaptive 최초의 알고리즘이며, 많은 Boosting 기반 알고리즘의 토대가 됨
  • 2003년 괴델상(이론전산학 분야의 뛰어난 성과를 낸 연구자에게 수여하는 상) 수상

10

11 of 29

AdaBoost: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

11

12 of 29

AdaBoost: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

12

13 of 29

AdaBoost: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

13

14 of 29

AdaBoost: 훈련

Boosting: AdaBoost & Gradient Boosting

14

15 of 29

AdaBoost: Stump

Boosting: AdaBoost & Gradient Boosting

  • AdaBoost에서는 깊이 1의 Decision Tree, Stump를 Weak Learner로 활용
    • 깊이 1 = 의사 결정 규칙이 오직 한 개만 존재
  • 따라서, AdaBoost를 Forests of Stump라고 부르기도 함
  • 물론, 실제 구현에서는 다양한 Weak Learner를 활용 가능

15

16 of 29

AdaBoost: Learning Rate

Boosting: AdaBoost & Gradient Boosting

  • 각 Weak Learner가 미치는 영향을 조정하기 위해 학습률을 설정할 수 있음

16

17 of 29

(Revisit) Gradient Descent

선형 모델

  • 기계 학습 분야를 포함한 다수의 최적화 문제에서 활용되는 방법
    • i번째 업데이트 때 주어진 매개변수 값에 대한 손실함수의 기울기 값Loss Gradient을 구함

    • 해당 기울기 값만큼 현재 매개변수의 값을 감소

    • 위 두 과정을 만족할때까지 반복

17

18 of 29

Gradient Boosting

Boosting: AdaBoost & Gradient Boosting

  • Boosting을 좀 더 넓게 보자면, Loss Function의 값을 최소화 하기 위해 적절한 Weak Learner들을 선택(또는 훈련)하는 최적화 문제로 해석할 수 있음
  • Boosting + Gradient Descent = Gradient Boosting

18

19 of 29

Gradient Boosting: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

19

20 of 29

Gradient Boosting: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

20

21 of 29

Gradient Boosting: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

21

22 of 29

Gradient Boosting: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

22

vs.

23 of 29

Gradient Boosting: 이론적 배경

Boosting: AdaBoost & Gradient Boosting

  • 의사 잔차Pseudo-Residuals: 이전 단계의 Ensemble 모델이 가진 오류를 의미
    • AdaBoost처럼 샘플에 가중치를 주는 대신, Gradient Boosting에서는 Weak Learner가 주어진 입력에 대해 음의 의사 잔차를 예측하도록 훈련됨
    • 예. Mean Squared Error

23

24 of 29

Gradient Boosting: 훈련

Boosting: AdaBoost & Gradient Boosting

24

25 of 29

Gradient Boosting: 정규화

Boosting: AdaBoost & Gradient Boosting

  • Gradient Boosting은 이전 단계의 Ensemble 모델이 가진 오류를 최소화하는 방향으로 새로운 모델이 학습되므로 과대적합이 발생할 수 있음
  • 과대적합을 방지하기 위한 방법으로 다음과 같은 방법이 사용됨
    • Shrinkage (or Learning Rate):
    • Stochastic Gradient Boosting: 훈련 데이터 중 일부를 Bootstrap 방식으로 추출 후 Weak Learner들을 훈련
    • Weak Learner의 복잡도 감소: Decision Tree의 깊이, 노드 당 최소 샘플 개수 등

25

26 of 29

Gradient Boosting: XGBoost

Boosting: AdaBoost & Gradient Boosting

  • eXtremely Gradient Boosting
  • 2014년 최초 공개 이후, Higgs Boson Machine Learning Challenge(힉스 입자의 존재 여부를 예측하는 기계 학습 대회)의 우승자가 사용한 것으로 알려지면서 크게 인기를 얻음
  • 기존 Gradient Boosting과의 큰 차이점 중 하나는 1st order Taylor Series (Gradients) 대신, 2nd order Taylor Series (Gradients and Hessians)을 활용

26

27 of 29

Gradient Boosting: LightGBM

Boosting: AdaBoost & Gradient Boosting

  • Light Gradient Boosting Machine
  • Microsoft에서 개발
  • 학습 속도가 빠르며, 범주형 특성값을 효율적으로 다룰 수 있도록 구현됨

27

28 of 29

Gradient Boosting: CatBoost

Boosting: AdaBoost & Gradient Boosting

  • Categorical Boosting
  • 범주형 특성값을 효율적/효과적으로 다루기 위해 개발됨
  • Kaggle에서 가장 많이 사용되는 기계 학습 모델 중 하나이며, 2022년 기준 일 10만회씩 설치됨
  • 학습 속도는 XGBoost 및 LightGBM 보다는 느림

28

29 of 29

다음 시간에…

  • Feature Engineering
    • Feature Extraction
    • Feature Selection
    • Dimensionality Reduction
    • Balancing Label Distribution

29