GBDT,英文全稱(chēng):Gradient Boosting Decision Tree,屬于Ensemble Learning的范疇,在回歸和分類(lèi)問(wèn)題上的良好性能受到工業(yè)界和機(jī)器學(xué)習(xí)比賽的青睞。之前對(duì)GBDT的理解總是模模糊糊的,這篇文章梳理下GBDT的原理。

上式表達(dá)的意思是L在F空間做優(yōu)化,找到最貼近真實(shí)分布的F。這與一般的機(jī)器學(xué)習(xí)問(wèn)題的求解方式有所不同,一般的是直接求解L在x空間做優(yōu)化。我們做個(gè)類(lèi)比:

基于參數(shù)空間的optimize,通過(guò)梯度下降的方式,一步一步逼近Loss最低點(diǎn)。同樣地,基于函數(shù)空間的梯度下降,即每次基于當(dāng)前的函數(shù)模型做梯度下降,求出增量函數(shù)部分。然后將每一次得出的函數(shù)增量部分相加,就能得到Loss低點(diǎn)對(duì)應(yīng)的函數(shù)。GBM的算法步驟如下:

其中,T為CART的數(shù)目。關(guān)鍵部分是公式2.1,表示L對(duì)F在Ft-1處的負(fù)偏導(dǎo)。2.2式表示第t棵樹(shù)的學(xué)習(xí)過(guò)程,可以看出第t棵樹(shù)擬合的是公式2.1給出的負(fù)偏導(dǎo)。有人可能會(huì)有疑問(wèn),那”殘差“是啥?殘差是L對(duì)F的負(fù)偏導(dǎo)的特例。一般而言,回歸樹(shù)使用的是均方誤差,而當(dāng)L為均方誤差時(shí),負(fù)偏導(dǎo)就是我們認(rèn)為的”殘差“的形式。2.3式是選擇步長(zhǎng),2.4式闡明,第t棵樹(shù)是步長(zhǎng)乘以負(fù)偏導(dǎo)。這里有個(gè)很重要的認(rèn)識(shí),高數(shù)中曾經(jīng)學(xué)過(guò)泰勒公式,如下:

可以看出,第t棵樹(shù)擬合的其實(shí)是L對(duì)F在前t-1個(gè)f累加處的一階泰勒展開(kāi)。圖中x0對(duì)應(yīng)著f0+f1+...+ft-1,后面正好是步長(zhǎng)乘偏導(dǎo)的形式,步長(zhǎng)學(xué)習(xí)的是x0-x。
這是general GBDT,后來(lái)陳天奇大神做了改進(jìn),加入了正則項(xiàng)和擬合泰勒二階展開(kāi),效果與性能更進(jìn)一步。