배깅 및 부스팅과 마찬가지로 그라데이션 부스팅은 또 다른 머신러닝 알고리즘입니다. 비공식적으로 경사 부스팅에는 다음이 포함됩니다. 두 가지 모델 유형이 있습니다.
- '약한' 일반적으로 결정 트리인 머신러닝 모델입니다.
- '강력한' 여러 개의 약한 단어로 구성된 머신러닝 모델 모델을 학습시키는 작업도 반복해야 합니다
경사 부스팅에서는 각 단계에서 새로운 약한 모델이 학습되어 '오류' (의사 응답이라고 함) 현재 강력한 모델의 표현입니다. '오류'에 대해 자세히 설명하겠습니다. 확인할 수 있습니다 지금은 '오류'라고 가정합니다. 는 예측과 회귀 라벨이 있습니다 약한 모델('오류')은 음의 부호를 사용하여 강력한 모델에 추가하여 강력한 모델입니다.
경사 부스팅은 반복적입니다. 각 반복은 다음 수식을 호출합니다.
\[ F_{i+1} = F_i - f_i \]
각 항목의 의미는 다음과 같습니다.
- $F_i$ 는 $i$ 단계의 강력한 모델입니다.
- $f_i$ 는 $i$ 단계의 약한 모델입니다.
이 작업은 중지 기준이 충족될 때까지 반복됩니다(예: 최대 과적합이 발생하면 데이터 세트입니다
간단한 회귀 데이터 세트에 대한 경사 부스팅을 설명하겠습니다. 각 항목의 의미는 다음과 같습니다.
- 목표는 $x$ 에서 $y$를 예측하는 것입니다.
- 강력한 모델은 0 상수로 초기화됩니다($F_0(x) = 0$).
# Simplified example of regressive gradient boosting.
y = ... # the labels
x = ... # the features
strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.
for i in range(num_iters):
# Error of the strong model
error = strong_predictions - y
# The weak model is a decision tree (see CART chapter)
# without pruning and a maximum depth of 3.
weak_model = tfdf.keras.CartModel(
task=tfdf.keras.Task.REGRESSION,
validation_ratio=0.0,
max_depth=3)
weak_model.fit(x=x, y=error)
strong_model.append(weak_model)
weak_predictions = weak_model.predict(x)[:,0]
strong_predictions -= weak_predictions
이 코드를 다음 데이터 세트에 적용해 보겠습니다.
<ph type="x-smartling-placeholder"></ph> 그림 25. 하나의 숫자 특성이 있는 합성 회귀 데이터 세트 를 통해 개인정보처리방침을 정의할 수 있습니다.
경사 부스팅의 첫 번째 반복 이후의 세 도표는 다음과 같습니다. 알고리즘:
<ph type="x-smartling-placeholder"></ph> 그림 26. 첫 번째 반복 후의 3개 도표 를 통해 개인정보처리방침을 정의할 수 있습니다.
그림 26의 플롯과 관련하여 다음 사항에 유의하세요.
- 첫 번째 플롯은 강력한 모델의 예측을 보여주며, 항상 0입니다.
- 두 번째 플롯은 약한 모델의 라벨인 오류를 보여줍니다.
- 세 번째 플롯은 약한 모델을 보여줍니다.
첫 번째 약한 모델은 라벨의 대략적인 표현을 학습하는 것으로 특성 공간의 왼쪽 부분 (변형이 가장 많은 부분, 계속해서 잘못된 모델에서 가장 많은 오류가 발생합니다.)
다음은 알고리즘의 또 다른 반복에 대한 동일한 플롯입니다.
<ph type="x-smartling-placeholder"></ph> 그림 27. 두 번째 반복 이후의 도표 3개 를 통해 개인정보처리방침을 정의할 수 있습니다.
그림 27의 플롯과 관련하여 다음 사항에 유의하세요.
- 이제 강력한 모델에는 0의 단어 중에서 약한 모델의 확인할 수 있습니다
- 강력한 모델의 새로운 오차는 약간 작습니다.
- 이제 약한 모델에 대한 새로운 예측은 특성 공간을 제공합니다.
8번 더 반복하여 알고리즘을 실행합니다.
<ph type="x-smartling-placeholder"></ph> 그림 28. 세 번째 반복 및 10번째 반복 이후의 도표 3개. 를 통해 개인정보처리방침을 정의할 수 있습니다.
그림 28에서 강력한 모델의 예측은 데이터 세트의 플롯입니다.
이 그림은 결정 트리를 사용하는 경사 부스팅 알고리즘을 도움이 될 수 있습니다 이 조합을 경사 강화 (결정) 트리라고 합니다.
위의 도표는 경사 부스팅의 핵심을 보여줍니다. 그러나 예에는 다음과 같은 두 가지 실제 연산이 없습니다.
- 축소
- 뉴턴법의 한 단계로 리프 값 최적화
수축
약한 모델 $f_i$ 에 작은 값 $\nu$를 곱합니다 (예: $\nu = 0.1$)이 강력 모델 $F_i$에 추가됩니다. 이 작은 값을 축소입니다. 즉, 각 반복 대신 공식:
\[ F_{i+1} = F_i - f_i \]
각 반복은 다음 수식을 사용합니다.
\[ F_{i+1} = F_i - \nu f_i \]
경사 부스팅의 축소는 신경망의 학습률과 유사합니다. 축소는 강력한 모델이 학습하는 속도를 제어하여 과적합입니다. 즉, 축소 값이 0.0에 가까울수록 과적합이 더 줄어듭니다. 더 크다는 것을 의미합니다.
위의 코드에서는 축소가 다음과 같이 구현됩니다.
shrinkage = 0.1 # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions