xgboost目標(biāo)函數(shù)推導(dǎo)

一 說明

xgboost是boosting算法的其中一種哀澈,該算法思想就是不斷地添加樹滓窍,不斷地進(jìn)行特征分裂來生長一棵樹,每次添加一個(gè)樹了赌,其實(shí)是學(xué)習(xí)一個(gè)新函數(shù)墨榄,去擬合上次預(yù)測的殘差。具體的目標(biāo)函數(shù)如下:

Obj{(t)} = \sum_{i=1}^nl(y_i, \hat{y_i}^{(t-1)} + f_t(x_i)) + Ω(f_t) + constant\tag {1}

? 主要就是找到f_t來優(yōu)化這一目標(biāo)函數(shù)勿她,通過一個(gè)簡單的例子來形象的理解該目標(biāo)函數(shù)袄秩。例如是小明真實(shí)有100個(gè)糖果,現(xiàn)在建立一個(gè)決策系統(tǒng)來預(yù)測小明有多少個(gè)糖逢并。首先建立一棵樹之剧,記為樹1,它的預(yù)測結(jié)果是90個(gè)砍聊,這時(shí)得到一個(gè)殘差背稼,這個(gè)殘差值就是100-90=10,此時(shí)和真實(shí)值差別是10玻蝌。為了提高精度蟹肘,可以在該決策系統(tǒng)中再添加一棵樹词疼,記為樹2。樹2就是為了彌補(bǔ)上一棵樹存在的殘差帘腹,假設(shè)它的預(yù)測結(jié)果是5贰盗,此時(shí)總體的殘差值是10-5=5,即和真實(shí)值相差為5阳欲。符號(hào)化表示:之前的結(jié)果10表示為輸出結(jié)果為\hat{y_1},即上一時(shí)刻的殘差值舵盈,樹2的值為f_2,此時(shí)得到的值。接著可以再建立第三課樹胸完,記為樹3书释。假設(shè)它的預(yù)測值為3,此時(shí)總體的殘差值是5-3=2赊窥,即和真實(shí)值相差為2爆惧。符號(hào)化表示:上一時(shí)刻輸出結(jié)果5為\hat{y_2},即上一時(shí)刻的殘差值,樹3為f_3,此時(shí)得到的值锨能。xgboost的目標(biāo)就是通過找到f_t來優(yōu)化這一目標(biāo)函數(shù)扯再,使得最終結(jié)果足夠小。下面對(duì)該函數(shù)進(jìn)行推導(dǎo)化簡址遇。

二 目標(biāo)函數(shù)化簡

1熄阻、預(yù)備知識(shí),泰勒展開式倔约。主要使用泰勒展開式來近似原來的目標(biāo)函數(shù)

f(x + \nabla{x}) = f(x) + f^{’}(x)\nabla{x} + \frac{1}{2}f^{''}(x)\nabla{x}\tag {2}

2秃殉、推導(dǎo)過程:

Obj{(t)} = \sum_{i=1}^n[l(y_i, \hat{y_i}^{(t-1)})+\partial_{\hat{y}^{(t-1)}}l(y_i, \hat{y}^{(t-1)})*f_t(x_i) +\partial_{\hat{y}^{(t-1)}}^{2}l(y_i, \hat{y}^{(t-1)})*\frac{f_t(x_i)}{2} + Ω(f_t) + constant\tag {3} \approx{ \sum_{i=1}^n[g_i*f_t(x_i) + h_i*\frac{f_t(x_i)}{2}] + Ω(f_t) + constant}\tag {4}

=\sum_{i=1}^n[g_i*w_{q(x_i)} + \frac{1}{2}h_i*w_{q(x_i)}^2] + \gamma{T} + \lambda{\sum_{j=1}^T\omega_j^{2}} \tag {5}

=\sum_{j=1}^T[(\sum_{i\in{I_j}}g_i) w_j+ \frac{1}{2}((\sum_{i\in{I_j}}h_i + \lambda) w_j^2)] + \gamma{T}\tag {6} =\sum_{j=1}^T[G_jw_j + \frac{1}{2}{(H_j + \lambda)w_j^2}] + \gamma{T} \tag {7}

  • 式(3):它是在(2)的基礎(chǔ)上推導(dǎo)出來,是將l(y_i, \hat{y_i}^{(t-1)})看著(2)中的x,f_t(x_i)記為\nabla{x}(注:這里的變換是近似變換浸剩。后面式中的t,表示時(shí)刻钾军;i表示第i個(gè)樣本。將g_i = \partial_{\hat{y}^{(t-1)}}l(y_i, \hat{y}^{(t-1)}), h_i = \partial_{\hat{y}^{(t-1)}}^{2}l(y_i, \hat{y}^{(t-1)})绢要;又因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=l(y_i%2C%20%5Chat%7By_i%7D%5E%7B(t-1)%7D)" alt="l(y_i, \hat{y_i}^{(t-1)})" mathimg="1">是一個(gè)固定值吏恭,可以合并到后面的常數(shù)項(xiàng)中。式(3)變形為式(4)

  • 式(5):它是將f_t(x_i)z和后面的正則項(xiàng)目展開了重罪。

    • 這里對(duì)于f的定義做一下細(xì)化樱哼,把樹拆分成結(jié)構(gòu)部分q葉子權(quán)重部分w。下圖是一個(gè)具體的例子剿配。結(jié)構(gòu)函數(shù)q把輸入映射到葉子的索引號(hào)上面去搅幅,即第幾個(gè)葉子;而w給定了每個(gè)索引號(hào)對(duì)應(yīng)的葉子分?jǐn)?shù)是什么呼胚。通俗的理解就是樣本x落到那個(gè)葉子結(jié)點(diǎn)上盏筐,取該結(jié)點(diǎn)的值。

      image

    • 正則化項(xiàng)目選擇了數(shù)據(jù)樹的葉子個(gè)數(shù)砸讳,以及葉子權(quán)值大小平方琢融。為了防止樹在訓(xùn)練過程中過度復(fù)雜界牡。當(dāng)然這不是唯一的一種定義方式,不過這一定義方式學(xué)習(xí)出的樹效果一般都比較不錯(cuò)漾抬。下圖還給出了正則化項(xiàng)目計(jì)算的一個(gè)例子宿亡。
      image
  • 式(6)主要的變換是將對(duì)樣本的遍歷,轉(zhuǎn)換為對(duì)樹的葉子結(jié)點(diǎn)的遍歷纳令。(理解部分:假設(shè)一共5個(gè)樣本挽荠,其中共有兩個(gè)樣本落在上圖樹中的leaf1,一個(gè)樣本落在leaf2中,還有兩個(gè)樣本落在leaf3中平绩。式(5)是直接統(tǒng)計(jì)各個(gè)樣本的值圈匆,式(6)則是直接遍歷葉子,遍歷leaf1時(shí)可以取得統(tǒng)計(jì)2個(gè)樣本的值捏雌,leaf2時(shí)可以取得統(tǒng)計(jì)1個(gè)樣本的值跃赚, leaf3時(shí)可以取得統(tǒng)計(jì)2個(gè)樣本的值,同樣可以訪問所有的樣本性湿。在葉子上遍歷更加方便計(jì)算)纬傲。式(6)中就是統(tǒng)計(jì)落在每個(gè)葉子結(jié)點(diǎn)中所有的樣本的一階導(dǎo)數(shù)g_i和該葉子結(jié)點(diǎn)權(quán)值w的乘積,同時(shí)二階導(dǎo)數(shù)h_i和該葉子結(jié)點(diǎn)權(quán)值w的乘積(每個(gè)樣本的g_i和h_i都不一樣)肤频。

  • 使式中G_j表示當(dāng)前葉子結(jié)點(diǎn)所有樣本一階導(dǎo)數(shù)的和叹括,同理H_j表示當(dāng)前樣本所有二階導(dǎo)數(shù)的和

3 目標(biāo)函數(shù)轉(zhuǎn)換

Obj^{(t)}=\sum_{j=1}^T[G_jw_j + \frac{1}{2}{(H_j + \lambda)w_j^2}] + \gamma{T} \tag {8}

使得式(8)最小,令\frac{\partial{j(f_t)}}{\partial{w_j}} = G_j + (H_j + \lambda)w_j = 0\tag {9}

得到w_j = -\frac{G_j}{H_j +\lambda}\tag {10}

將(10)代入(9)得到:Obj = -\frac{1}{2}\sum_{j=1}^T\frac{G_j^2}{H_j + \lambda} + \gamma{T}\tag {11}

舉例說明:下圖公有5個(gè)樣本宵荒,三個(gè)葉子結(jié)點(diǎn)汁雷,計(jì)算的目標(biāo)函數(shù)如下,最終的目標(biāo)是得到最小值:


image

三 分支

image

如何找到最佳的分支切割點(diǎn)报咳,如上圖所示侠讯。如何選取合適的a點(diǎn)分割,使目標(biāo)函數(shù)值變小少孝。這里是基于式(11)继低,得到分支增益的公式:

Gain = \frac{1}{2}[\frac{G_L^2}{H_L +\lambda} + \frac{G_R^2}{H_R +\lambda} + \frac{G_L^2 + G_R^2}{H_L +H_R +\lambda}] -\gamma\tag {12}

選取是Gain最小的切割點(diǎn)進(jìn)行分支熬苍。

寫在最后

關(guān)注公號(hào):

AI成長社

學(xué)習(xí)機(jī)器學(xué)習(xí)稍走,深度學(xué)習(xí)知識(shí),了解最新技術(shù)進(jìn)展柴底,一塊成長婿脸。
知乎專欄:ML與DL成長之路

?

?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市柄驻,隨后出現(xiàn)的幾起案子狐树,更是在濱河造成了極大的恐慌,老刑警劉巖鸿脓,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抑钟,死亡現(xiàn)場離奇詭異涯曲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)在塔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門幻件,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛔溃,你說我怎么就攤上這事绰沥。” “怎么了贺待?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵徽曲,是天一觀的道長。 經(jīng)常有香客問我麸塞,道長秃臣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任喘垂,我火速辦了婚禮甜刻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘正勒。我一直安慰自己得院,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布章贞。 她就那樣靜靜地躺著祥绞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸭限。 梳的紋絲不亂的頭發(fā)上蜕径,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音败京,去河邊找鬼兜喻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赡麦,可吹牛的內(nèi)容都是我干的朴皆。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼泛粹,長吁一口氣:“原來是場噩夢啊……” “哼遂铡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晶姊,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤扒接,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钾怔,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碱呼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宗侦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巍举。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凝垛,靈堂內(nèi)的尸體忽然破棺而出懊悯,到底是詐尸還是另有隱情,我是刑警寧澤梦皮,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布炭分,位于F島的核電站,受9級(jí)特大地震影響剑肯,放射性物質(zhì)發(fā)生泄漏捧毛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一让网、第九天 我趴在偏房一處隱蔽的房頂上張望呀忧。 院中可真熱鬧,春花似錦溃睹、人聲如沸而账。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泞辐。三九已至,卻和暖如春竞滓,著一層夾襖步出監(jiān)牢的瞬間咐吼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工商佑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锯茄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓茶没,卻偏偏與公主長得像肌幽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子礁叔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361