(LXTML筆記)Gradient Boosted Decision Tree

AdaBoost-DTree

根據AdaBoost的思想,
這裏寫圖片描述
我們希望在生成多個分類器gt 的時候,增加一個類似於adaboost的權重ut ,即gt=A(D,ut) ,在最後組成最終分類器G 的時候,增加權重at=at(ut) ,這是整體的思路。

那麼現在的問題是如何嵌入一個ut,使得gt=DTree(D,ut) ,注意到之前的Random-Forest等算法中的gt 僅僅是DTree(D) .

這裏寫圖片描述

如上圖所示,本來加入ut 應該是在Ein 中進行的,但是這不一定能很好地解出,所以這裏講其看成一個black box。注意到ut 在adaboost是怎麼引進來的,他是由boost抽樣引進的,所以,我們採用紅框所示的抽樣方法。即對每一組數據(xn,yn)un 的比例概率來抽取,這樣的話可以近似地處理Ein 且不用改最優化的框架(僅僅是“改”了數據)。

這裏寫圖片描述

權重at 仍採用和adaboost一樣的操作。

adaboost-DT用於二分類問題

這裏寫圖片描述

如上更新,注意到由於是二分類問題yn 是±1,那麼ut 可以有很好地表達式,這個結果和我們要回傳的G 長得十分類似。

這裏寫圖片描述

如上圖所示,用一種粗糙的解釋,實際上上上圖中橙色框的部分表示的是一種類似於SVM中的margin,我們希望margin越大越好,即如上圖灰色框所示,我們最終希望ut+1 越下越好,那麼我們可以再弱一些,我們希望能deresasesn=1Nun(t) .
這裏寫圖片描述

這裏寫圖片描述
採用的是GD,對exp在原點附近泰勒展開後得知我們需要使得n=1Nun(t)(ynh(xn)) 最小化,其中h(xn) 是變量,進一步化簡,
這裏寫圖片描述

這裏的推導說明,實際上最小化EADA 相當於最小化Einu(t) ,所以推來推去,我們發現了最好的gt 實際上就是可以通過adaboost來解決的,即gt+1utgt 來獲得,忘記的同學可以回到adaboost去查看。

這裏寫圖片描述

得到最優的gt 之後,接下來,我們要處理最優的步長,由上面的推導,我們能得出最優的步長就是ln1ϵtϵt !實在是震精!

Gradient Boosting for Regression

這裏寫圖片描述
推廣上面adaboost-DT的loss項,可以推廣到一般形式,下面將考慮regression問題,即考慮squared-error。

這裏寫圖片描述

按照上面的推導的話遇到了一個問題,如果要min只要直接取h(xn)=+ 就好了,不過實際上h(xn) 僅僅是代表一個方向而已(想一想GD),長度應該是由步長控制的,所以,我們嘗試對h(xn) 做點限制,增加一個(h(xn)2)
這裏寫圖片描述

通過配方,我們發現了一個驚人的事實,如果假設h 是線性的話,那麼直接對{(xn,ynsn)} 做LR即可以得到一個最優解!

這裏寫圖片描述

得到最優h 之後,考慮步長,稍微做點代數邊形,我們發現一個事實,最優的步長也是可以通過線性迴歸獲得,而且是一元!

對算法重新總結一下即
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章