경사 부스팅 (선택적 단위)

회귀 문제에서는 부호 있는 오류를 예측과 라벨의 차이로 정의하는 것이 합리적입니다. 그러나 다른 유형의 문제에서는 이 전략으로 종종 결과가 좋지 않습니다. 경사 부스팅에서 사용되는 더 나은 전략은 다음과 같습니다.

  • 신경망에 사용되는 손실 함수와 유사한 손실 함수를 정의합니다. 예를 들어 분류 문제의 엔트로피 (로그 손실이라고도 함)입니다.
  • 강력한 모델 출력에 따른 손실의 경사를 예측하도록 약한 모델을 학습시킵니다.

공식적으로 손실 함수 $L(y,p)$(여기서 $y$ 는 라벨이고 $p$ 는 예측)인 경우 $i$ 단계에서 약한 모델을 학습시키는 데 사용되는 유사 응답 $z_i$ 는 다음과 같습니다.

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

각 매개변수는 다음과 같습니다.

  • $F_i$ 는 강력한 모델의 예측입니다.

앞의 예는 회귀 문제입니다. 목표는 숫자 값을 예측하는 것입니다. 회귀의 경우 제곱 오차는 일반적인 손실 함수입니다.

$$ L(y,p) = (y - p)^2 $$

이 경우 그라데이션은 다음과 같습니다.

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = 2(y - p) = 2 \ \text{signed error} $$

즉, 기울기는 이 예의 인수가 2인 부호 있는 오차입니다. 축소로 인해 상수 요인은 중요하지 않습니다. 이 등가는 제곱 오차 손실이 있는 회귀 문제에만 적용됩니다. 다른 지도 학습 문제 (예: 분류, 순위 지정, 백분위 손실이 있는 회귀)의 경우 경사와 부호 있는 오차 사이에 등가가 없습니다.

뉴턴의 메서드 단계로 리프 및 구조 최적화

뉴턴의 메서드는 경사하강법과 같은 최적화 메서드입니다. 그러나 최적화할 함수의 경사만 사용하는 경사하강법과 달리, 뉴턴의 방법에서는 최적화를 위해 함수의 기울기 (1도함수)와 두 번째 도함수를 모두 사용합니다.

경사하강법은 다음과 같습니다.

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

그리고 뉴턴의 방법을 다음과 같이 정의합니다.

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

원하는 경우 다음과 같은 두 가지 방법으로 Newton의 메서드를 경사 부스트 나무 학습에 통합할 수 있습니다.

  1. 트리가 학습되면 각 리프에 뉴턴 단계가 적용되고 값을 재정의합니다. 트리 구조는 변경되지 않으며 리프 값만 변경됩니다.
  2. 트리가 성장하는 동안 조건은 뉴턴 공식의 구성요소가 포함된 점수에 따라 선택됩니다. 트리 구조가 영향을 받습니다.
YDF 코드
YDF의 경우:
  • YDF는 항상 리프에 뉴턴 단계를 적용합니다 (옵션 1).
  • use_hessian_gain=True를 사용하여 옵션 2를 사용 설정할 수 있습니다.