勾配ブースト(オプションの単位)

回帰問題では、予測値とラベルの差として符号付き誤差を定義するのが理にかなっています。ただし、他の種類の問題では、この戦略では結果が得られないことがよくあります。勾配ブーストで使用されるより優れた戦略は次のとおりです。

  • ニューラル ネットワークで使用される損失関数と同様の損失関数を定義します。たとえば、分類問題のエントロピー(ログ損失)などです。
  • 強力なモデルの出力に従って損失の勾配を予測するように弱いモデルをトレーニングします。

正式には、損失関数 $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 階微分)と 2 階微分の両方を使用して最適化を行います。

勾配降下法のステップは次のとおりです。

$$ 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)}$$

必要に応じて、ニュートン法は次の 2 つの方法で勾配ブーストツリーのトレーニングに統合できます。

  1. ツリーがトレーニングされると、ニュートンのステップが各リーフに適用され、その値がオーバーライドされます。ツリー構造は変更されず、リーフ値のみが変更されます。
  2. ツリーの成長中、条件はニュートンの公式のコンポーネントを含むスコアに基づいて選択されます。ツリーの構造に影響します。
YDF コード
YDF の場合:
  • YDF は常にリーフにニュートン法のステップを適用します(オプション 1)。
  • オプション 2 は use_hessian_gain=True で有効にできます。