2021년 12월 15일 수요일

Gradient Boost Regression

1. AdaBoost와 Gradient Boost와의 차이

1) AdaBoost는 이전 stump의 에러들을 기반으로 새로운 stump들을 만든다.
2) 이와 반대로 Gradient Boost는 tree나 stump가 아닌 단일 leaf 부터 생성한다.
3) 이 단일 leaf는 모든 샘플의 weight의 단일 추정량(평균)이다.
4) 그리고 나서 AdaBoost 처럼 Gradient Boost는 Tree를 만들어 에러들을 전달한다.
5) 그러나 이때 Tree는  AdaBoost의 stump보다 크다 (leaf가 8~32개)
6) 또한  AdaBoost와 다르게 Gradient Boost의 Tree들은 같은 가중치를 갖는다.


2. Gradient Boost의 학습 과정

1) 초기 예측값(leaf)을 종속변수의 평균으로 초기화 한다.
2) 초기 예측값(leaf)와 실제 값 간의 Pseudo Residual을 구한다. 
3) Pseudo Residual을 예측하는 Decision Tree를 만든다.
4) leaf - sum of (Pseudo Residual*learning rate)를 이용해서 Pseudo Residual을 개선한다.
5)  3번과 4번 과정을 반복한다.


3. Question

1) 왜 초기 예측값(leaf)를 평균으로 초기화 하나요? 

이 질문에 답하기 전에 위 loss function을 가지고 Gradient Boost를 수행함을 가정합니다. 

leaf는 곧 첫번째 predict value이기 때문에 우리는 최적의 Predicted값을 찾아야하고 위 loss function을 Predicted의 모든 행에 대해 각각 미분하여 더한 값이 0이 되게 하여 최적해를 찾을 수 있습니다. 그 결과가 평균과 같습니다.

2)  왜 그냥 Residual이 아니고 Pseudo Residual 인가요?

Gradient Boost에는 다양한 Loss Function이 있기 때문입니다.

Share:

0 comments:

댓글 쓰기