到底什麼是梯度提升

#####跟我一起學梯度提升

    梯度提升是建立預測模型的一種強大技術。

####1.提升的起源

    提升的思路來源於一個弱學習器是否能夠被改良爲更強的學習器。

    弱假設/弱學習器——其猜測性能只比隨機猜測稍好。

    提升的思想是通過對觀察樣本進行過濾,保留可以讓弱學習器處理的樣本,以便集中於開發下一階段的弱學習器來處理其餘困難樣本。

####2.AdaBoost ——第一個提升算法

    AdaBoost中的弱學習器採用的是單分裂決策樹。
    
    提升過程——主要做法是進行樣本加權,對難以分類的實例分配更大權重,對那些能夠很好被處理的實例就分配更小的權重。

    新的弱學習器以一種序列化的方式被添加進來,集中針對上一步篩選出來的困難樣本進行訓練。

    預測過程——模型的最終預測是由多個弱學習器的多數投票做出的,投票權重即爲各自的準確率。

####3.AdaBoost的推廣

    布賴曼首先在統計框架中,將AdaBoost和相關算法進行重鑄,這一系列算法就被稱爲電弧算法。然後被弗里曼進一步發展爲梯度提升機,再後來就簡稱爲梯度提升、梯度樹提升。

    統計框架將Boosting過程重鑄爲數值優化問題,通過使用梯度下降的過程來添加弱學習器,以期最大程度地減小模型的損失。

    這類算法被描述爲逐階段加法模型,這是因爲一次只添加一個新的弱學習器,並且模型中的現有弱學習器在下一階段的學習過程中被凍結。

    被推廣之後就可以使用任意的可微損失函數,將原來主要針對的二分類問題拓展到迴歸以及多類別分類領域。


####4.梯度提升是如何工作的???

    梯度提升過程涉及三個要點——損失函數、弱學習器以及一個加法模型(如何在保證梯度會下降的前提下,添加新的弱學習器)。

###4.1損失函數


    採用什麼損失函數取決於實際問題,但它必須是可微的,很多較典型的損失函數都可以使用,在滿足可微前提,也可以自定義新的損失函數。

    可微——參照微積分來理解,損失函數可微即表示任何一個訓練實例,都能保證梯度向着最小化趨勢進行微調,這樣學習到的模型纔是健壯的。

###4.2弱學習器

    決策樹算是一種常用於梯度提升模型中的弱學習器。此外,迴歸樹也常用作實值輸出模型的分裂樁(樹),多個迴歸樹的輸出還可以疊加,新添加進來的迴歸樹就可以進行殘差矯正。


###4.3加法模型

    通過前面我們知道,逐階段加法模型一次只添加一個新的樹,同時模型中的現有樹在下一階段的學習中其參數被凍結,添加新樹的前提是梯度要下降。

    傳統意義上的梯度下降過程用於最小化一個參數集合,比如迴歸權重,權重就向着使模型預測誤差最小的方向微調,這種我們可以稱之爲參數化梯度下降。

    而在組合學習領域,新的弱學習器就向着使模型預測誤差最小的方向被添加進來,從宏觀層面這種我們可以稱之爲函數化梯度下降。微觀上,再進一步在新的弱學習器內進行參數化梯度下降。

####5.改進

    梯度提升本質上是一種貪婪算法,容易很快就在訓練數據集上達到過擬合,就必須使用一些恰當的正則化手段,以期提高其性能。

    原始梯度提升模型的幾種改進——樹約束、縮減、隨機採樣、懲罰學習

發佈了18 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章