Gradient Boosting
Gradient (혹은 Residual) 을 이용해 이전 모델의 약점을 보완하는 새로운 모델을 순차적으로 적합한 뒤, 이들을 선형 (linear) ㄱㄹ합하여 얻어진 모형을 생성하는 지도 학습 알고리즘.
최선의 greadient (residual) 로 얻어진 모델을 쓰는게 최대 전투력 아닌가?
- Gradient Boosting 은 Residual 을 이용해 이전 모델의 약점을 보완한다.
. 는 차원 vector, (범주형은 정수, integer 로 표현될 수 있으므로 여기에 포함된다.)
이전 모델 (예측 함수) 를 라 하고 개별 입력 변수 에 대한 예측값을 라 하자. 이전 모델의 약점이란 무엇인가? 이전 모델이 실제값 를 정확하게 예측하지 못한 정도 (강도), 즉 실제값과 예측값 사이의 오차의 합 정도라고 생각하면 된다. 즉, 예측값과 실제값의 차이가 커지면 이전 모델의 약점은 치명적 critical 이 된다는 것이다. 이때 떠올리자, 예측값의 실제값의 차이 residual 이라는 걸.
이전모델의 약점을 보완하는 것이 Gradient Boosting. 그렇다면 어떻게 보완한다는 것인가? 이는 곧 실제값과 예측값의 차이 (residual) 을 줄여주는 함수 function 를 찾는 것에 의해 이루어짐. 즉
즉, (자 체로 vector가 맞는거야 아닌거야) 를 그대로 더하는 것이 아니라 constant 을 곱하여 더하게 된다. 이 을 학습률 (Learning-rate) 라고 하며, 이는 경사하강법 (Gradient Descent Algorithm) 에서 파라미터를 업데이트하는 정도를 조절하기 위한 변수 (패러미터) 가 된다. 을 곱해주지 않으면 학습 데이터에 지나치게 적합되므로 과적합 (오버피팅) 현상이 발생하게 된다. 따라서 을 곱해주어 오버피팅을 방지한다.
아래에서 이전 모델의 예측값을 빨간 선이라고 하자 (좌측 상단). 그러고 나서 실제값과 예측값의 차이를 줄여주는 를 학습하게 된다 (우측 상단). 이러고 나서 새로운 예측값을 그냥 깡으로 로 설정할 수도 있다 (우측 하단) 하지만 이 경우 학습 데이터에 과도하게 적합해버릴 수 있기 때문에 (오버피팅) residual (잔차) 를 많이 줄이는 대신 학습률 을 에 곱한 값을 이전 모형의 예측값에 더하여 새로운 예측값 을 얻게 된다. (좌측 하단 그림) (잔차를 많이 줄이는 대신 = 을 1로 설정한다는 이야기와 동일하며, 잔차 감소량을 줄인다고 해도 일단 이전 모형보다 잔차는 이미 작아졌다. 이 0일 일은 없으므로.)
딥러닝 도식

그렇다면 최적 를 어떻게 찾을까? 이는 뒤에서 설명한다.
- Gradient Boosting 은 순차적으로 적합한 뒤, 이들을 선형 결합한 모델을 생성한다.
1단계에서 Gradient Boosting 은 순차적으로 이전 모델의 약점을 보완하는 모델을 만들게 된다. 순차적으로 적합할 모델 개수를 개라 하자. 첫번째 (시작) 모델의 예측값을 라 하면 최종 모형 은 다음과 같이 들의 선형 결합으로 만들어진다.
- Gradient Boosting 은 지도학습 알고리즘이다.
Gradient Boosting 은 라벨 (또는 종속변수가) 있는 데이터를 학습하고, 이를 통해 새로운 데이터의 라벨 (또는 종속변수) 를 예측하는 지도학습 알고리즘이다.
- 알고리즘
- 초기 모형은 constant 로 설정하여 다음과 같이 찾는다.
- 에 대하여 (a)~(d) 를 반복한다.
(a) 다음과 같이 유사 잔차 (Pseudo Residual) 를 계산한다.
\partial F(x_i) } \right]_{F(x)=F_{m-1}(x)} , i=1\sim n $$ (b) 앞에서 구한 residual 을 새로운 종속변수로 하여 **기본 학습기 (Base Learner, (ex) 의사결정나무)** $g_m$ 을 학습한다. 즉, $(x_i , r_{im}) , i = 1 \sim m$ 을 이용해 학습하게 된다. (c) 상수 $\gamma_m$ 을 다음과 같이 계산한다. $$ \gamma_m = \arg \min_\gamma \sum_{i=1}^n L\Big (y_i , \, F_{m-1} (x_i) + \gamma * g_m (x_i)\Big ) $$ (d) 모형을 업데이트한다. $$ F_m(x) = F_{m-1}(x)+ l*\gamma_m * g_m(x) $$ 1. 최종 모형은 다음과 같다. $$ F_M (X) $$