Boosting이란?

  • 머신러닝 앙상블 기법 중 하나로, 약한 학습기를 결합하여 성능이 높아진 강한 학습기를 만드는 알고리즘이다.
  • 오늘 다룰 Gradient Boosting은 이 Boosting 기법 중 하나이다.

 

 

Gradient Boosting 알고리즘

Gradient Boosting을 residual fitting으로 이해하면 쉽다. (회귀 문제의 경우에)

 

수치형 반응변수를 예측하는 회귀 문제에서, 3개의 모델을 이용하여 gradient boosting 방법으로 학습한다고 가정해본다.

3개의 모델을 A, B, C라고 부른다면,

  1. 먼저 A라는 모델은 전체 데이터의 target variable의 평균으로 예측값을 만든다.
    그리고 실제값 - (A모델의 예측값(=평균값) = 잔차(residual)을 구한다. 이 residual은 B 모델이 학습할 정답이 된다.
  2. 이제 B모델은 A모델의 학습에 사용했던 features를 가지고 residual을 맞추는 방식으로 학습을 진행한다.
    그리고 실제값 - (A모델의 예측값(=평균값) + learning_rate*B모델의 예측값) = 새로운 residual을 구한다.
  3. 그 다음 C모델은 역시 A모델의 학습에 사용했던 features를 가지고 바로 위에서 언급한 새로운 residual을 맞추도록 학습한다.
    그리고 실제값 - (A모델의 예측값 + learning_rate*B모델의 예측값 + learning_rate*C모델의 예측값) = 새로운 residual을 구한다.
  4. 그 다음 모델이 있다면 다시 이 새로운 residual을 학습하게 된다.

설정한 개수의 모든 모델을 학습 완료한 경우, 최종 예측값은 모든 모델의 예측값의 weighted sum이 된다.

* 각 모델은 leaves가 4개인 트리 모델을 주로 사용한다. (데이터가 많은 경우 leaves의 개수가 8~32개인 트리 모델을 사용하기도 함)

 

https://www.researchgate.net/figure/Schematical-representation-of-gradient-boosting-regression-in-regards-to-algorithm_fig3_340524896
https://en.wikipedia.org/wiki/Gradient_boosting

 

왜 이름이 Gradient Boosting인가?

회귀 문제에서는 loss function으로 MSE를 주로 사용하는데, 이 때 MSE의 negative gradient가 residual이기 때문이다.

(즉, 우리가 학습할 대상으로 여겼던 residual이 알고보니 loss의 negative gradient였다는 의미이다(!))

이제까지 residual을 이용해서 학습한다고 설명하였는데, 사실 이것은 Gradient Boosting 중 하나의 사례에 속한다.

어떠한 loss를 사용하든 이 loss function의 negative gradient를 다음 학습의 정답으로 사용하는 것이 GBM이다.

단지, 위에서 언급한 회귀문제에서는 mse를 loss function으로 사용했기에 이 loss function의 negative gadient인 residual을 학습한 것이다.

* 당연히 gradient 정보를 가지고 학습을 진행하기 때문에 loss는 미분가능해야 한다.

 

 

negative gradient의 의미?

  • negative gradient는 loss function이 줄어드는 방향을 의미한다.
  • 즉, gradient가 양수라면 음수 방향(=negative gradient의 방향)으로 이동해야 loss function이 줄어드는 것이고
  • 반대로 gradient가 음수라면 양수 방향(=negative gradient의 방향)으로 이동해야 loss function이 줄어들게 된다.

 

 

 

gradient boosting의 장단점

  • 장점
    • ML 계열의 모델 중 성능이 좋은 편
  • 단점
    • 긴 수행시간

* 참고

3months.tistory.com/368

 

Gradient Boosting Algorithm의 직관적인 이해

Gradient Boosting Algorithm의 직관적인 이해 실패를 통해 성공을 발전시켜라. 낙담과 실패는 성공으로 가는 가장 확실한 두 개의 디딤돌이다. -데일 카네기 Gradient Boosting Algorithm (GBM)은 회귀분석 또는..

3months.tistory.com

www.youtube.com/watch?v=3CC4N4z3GJc

 

'🙂 > 머신러닝 (ML)' 카테고리의 다른 글

[ML] multi-class performance  (0) 2020.10.10
[ML] 랜덤 포레스트 (random forest)  (0) 2020.10.10
[ML] 로지스틱 회귀  (0) 2020.10.10
[ML] SVM  (0) 2020.10.10

+ Recent posts