漸層增強 (選用單位)

在迴歸問題中,將有符號的誤差定義為預測值和標籤之間的差異,是合理的做法。不過,在其他類型的問題中,這項策略通常會導致結果不佳。在梯度提升中採用更理想的策略:

  • 定義損失函式,類似於神經網路中使用的損失函式。例如分類問題的熵 (也稱為對數損失)。
  • 訓練弱模型,以便根據強模型輸出內容預測損失的梯度

正式來說,假設損失函數為 L(y,p),其中 y 為標籤,p 為預測值,則用於在步驟 i 訓練弱模型的偽回應 zi 為:

zi=L(y,Fi)Fi

其中:

  • Fi 是強模型的預測值。

上述範例是迴歸問題:目標是預測數值。在迴歸的情況下,平方誤差是常見的損失函式:

L(y,p)=(yp)2

在本例中,漸層為:

z=L(y,Fi)Fi=(yp)2p=2(yp)=2 signed error

換句話說,梯度是從我們的範例中取出,並以 2 為因數的符號錯誤。請注意,由於縮減,常數因數並不重要。請注意,這種等價關係僅適用於使用平方誤差損失函數的迴歸問題。對於其他監督式學習問題 (例如分類、排名、百分位損失的迴歸),梯度和帶有符號的錯誤之間並無對應關係。

使用牛頓方法步驟進行葉子和結構最佳化

牛頓方法是梯度下降法這類最佳化方法。不過,與梯度下降法只使用函式梯度進行最佳化不同,牛頓方法會同時使用函式的梯度 (一階導數) 和二階導數進行最佳化。

梯度下降法的步驟如下:

xi+1=xidfdx(xi)=xif(xi)

和牛頓方法如下:

xi+1=xidfdx(xi)d2fd2x(xi)=xif(xi)f(xi)

您可以選擇以兩種方式將牛頓方法整合至梯度提升樹的訓練作業:

  1. 樹狀結構訓練完成後,系統會在每個葉節上套用牛頓步驟,並覆寫其值。樹狀結構不會受到影響,只有葉節點值會變更。
  2. 在樹狀結構成長期間,系統會根據包含牛頓公式元素的評分選取條件。樹狀結構會受到影響。
YDF 代碼
在 YDF 中:
  • YDF 一律會在節點上套用牛頓步驟 (選項 1)。
  • 您可以使用 use_hessian_gain=True 啟用選項 2。