xgboost是用二階泰勒展開的優勢在哪?

時間 2021-05-11 20:50:57

1樓:蘇三

xgboost使用二階泰勒展開的目的和優勢有一下兩方面:

1、xgboost是以mse為基礎推導出來的,在mse的情況下,xgboost的目標函式展開就是一階項+二階項的形式,而其他類似logloss這樣的目標函式不能表示成這種形式。為了後續推導的統一,所以將目標函式進行二階泰勒展開,就可以直接自定義損失函式了,只要二階可導即可,增強了模型的擴充套件性。

2、二階資訊能夠讓梯度收斂的更快,類似牛頓法比SGD收斂更快。一階資訊描述梯度變化方向,二階資訊可以描述梯度變化方向是如何變化的。

2樓:7721

二階泰勒展開的優勢是相對於一階而言的,和牛頓方法相對於梯度下降類似,都是為了更準確的找到最優解,這才是重點。

stats.stackexchange.com

3樓:Done

我覺得關鍵在於【模組化】可以很方便地自定義損失函式,只要這個損失函式可以求一階和二階導

我是這樣理解的:

1、從GBDT求回歸問題出發,《機器學習技法》裡有:

如果只是1階泰勒展開的話,這時候想要最小化損失函式,尋找的函式h就會變成負無窮。

對h作限制,加入h^2項

2、而Xgboost我理解是從根本上為了防止h等於負無窮這種尷尬的情況出現,從泰勒展開這一步就避免:

f(x + h) = 二階導h(x) ^2 + 一階導h(x) + f(x)

最終求最小化是關於h的二次方程,這樣就可以直接求最小化h,而不用打補丁。

所以:相比於GBDT每次一階導後要打補丁,Xgboost我理解更加模組化,直接塞進去乙個可二階泰勒展開的損失函式就行

4樓:小方哥哥

為了可以設定任何可以二階求導的損失函式,只要該損失函式二階可導,都可以用泰勒展開式進行近似替代,實現形式上的"統一"

5樓:canoe

好吧,我的理解是錯的

其實和gbdt的一階梯度比起來,本質上和梯度下降法和牛頓法的差異是類似的。梯度下降按最快速度下降,牛頓法不僅有速度資訊(一階),還有加速度資訊(二階)

6樓:

因為,在最小化object function ,也就是求解最優葉子權重W_j的時候,此object function就變成了,簡單的關於(每個)葉子權重的一元二次方程。這樣是不是很簡單。

二階魔方怎麼快速上手?

毛蛋 1 二階魔方就是乙個沒有稜塊和中心塊的三階魔方2 二階魔方就是乙個沒有稜塊和中心塊的三階魔方3 二階魔方就是乙個沒有稜塊和中心塊的三階魔方4 二階魔方就是乙個沒有稜塊和中心塊的三階魔方5 二階魔方就是乙個沒有稜塊和中心塊的三階魔方6 二階魔方就是乙個沒有稜塊和中心塊的三階魔方7 二階魔方就是乙...

可以用一階導數和二階導數的正負判斷函式凹凸嘛嗎?

Zwei 直接將一階導對應曲線遞增還是遞減的關係搬到二階導對應一階導 曲線斜率 的上面來就好了 即 一階導大於 小於 0,F X 遞增 遞減 二階導大於 小於 0,曲線斜率遞增 遞減 這樣就能解釋 f 0,f 0時,他是凸函式 而f 0,f 0時,他是凹函式 了 柯柯柯柯帥 關於函式的凹凸性,不同的...

位置對時間的一階導數是速度,二階導數是加速度,三階導數是啥?

無忌不悔 物理系統上,位置的任意階導數應該都存在,而速度和加速度都是乙個定義,就是問題中說的 位置對時間的一階導數是速度,二階導數是加速度 我們同樣可以定義如 加加速度 好像真的有這個叫法 來作為對位置三階導數的叫法。我們需要明確的是,為什麼我們只對位置進行二階求導或者只定義了其二階導數的叫法 常見...