深度森林原理及實現——原來是借鑒了殘差網絡和highway的思想,將其用於樹類算法


深度森林原理及實現

深度森林原理及實現

 

1 思想

1.1 作者周志華認為學習樣本的差異性得到足夠體現的時候,集成學習的效果會得到相應的提高。

1.2 多樣的結構對集成學習是十分重要的。

1.3 Deep Forest 就是基於該想法來設計實現的。

2 介紹

Deep Forest是傳統的森林在廣度和深度上的一種集成。

2.1 在深度上集成的目的:提高分類能力

2.2 在廣度上集成的目的:體現輸入數據的差異性

3 深度學習與深度森林的關聯:

3.1 深度學習最大的貢獻是表征學習,發現更好的features。而后面用於分類(或其他任務)的function,往往也只是普通的softmax(或者其他一些經典而又簡單的方法)而已。

3.2 所以,只要特征足夠好,分類函數本身並不需要復雜。目前DL的成功,主要依靠神經網絡對數據特征的強大表征能力,那么這種成功能否復刻到其他模型上呢?

3.3 南京大學的周志華老師嘗試提出一種深度的tree模型,叫做gcForest,用文中的術語說,就是“multi-Grained Cascade forest”,多粒度級聯森林。此外,還提出了一種全新的決策樹集成方法,使用級聯結構讓 gcForest 做表征學習。

4 深度森林的整體架構

gcforest分類模型整體架構

4.1 如上圖所示,該深度森林用於三分類任務,主要有兩部分構成:1)multi-Grained Scanning 2)Cascade Forest

4.2 multi-Grained Scanning:提取數據不同粒度的特征

4.2.1 通過多個尺度的滑動窗口來獲取input中的局部數值(不同於卷積操作,這里的窗口僅用於數值的獲取,未進行數值的重新表示)。

4.2.2 將4.2.1處理得到的結果序列作為ForestA和ForestB的輸入,由森林得出每個輸入對應類別的概率。

4.2.3 將多個森林的多個結果進行拼接作為轉換后的特征(用作Cascade Forest模塊的輸入)

4.3 Cascade Forest

4.3.1 特點:

1)每一層都由多個森林集成得到。就森林而言,本身已經是一種決策樹的集成的產物,因此,級聯森林是一種集成的集成(即超集成)。

2)每一層有兩種不同的森林構成:一種是完全隨機森林,另外一種是隨機森林。

4.3.2 工作流程:

5.查漏補缺(1 完全隨機森林和隨機森林)

5.1 完全隨機森林:由多棵樹組成,每棵樹包含所有的特征,並且隨機選擇一個特征作為分裂樹的分裂節點。一直分裂到每個葉子節點只包含一個類別或者不多於是個樣本結束。

5.2 隨機森林:同樣有多棵樹構成,每棵樹通過隨機選取Sqrt(特征總數)個特征 ,然后通過GINI分數來篩選分裂節點。

5.3 區別:兩種森林的不同主要在於其特征空間的不同,完全隨機森林是在完整的特征空間中隨機選取特征來分裂,而普通隨機森林是在一個隨機特征子空間內通過gini系數來選取分裂節點。

6 級聯森林的層數選擇問題

6.1 gcForest中級聯森林部分的level是自適應的,不用人工提前設定。

6.2 原理:

6.2.1 首先會在一級結束后做一個性能測試,然后再繼續生成下一級,當擴展一個新的級后,整個級聯的性能將在驗證集上進行估計,如果沒有顯着的性能增益,訓練過程將終止。

6.2.2 因此,gcForest能夠通過適當的終止,來決定其模型的復雜度,這就使得相對於DNN,gcForest在即使面對小數據集的情況下一樣使用,因為它的結構不依賴於大量的數據生成。

7 總結

7.1 gcForest可以處理不同規模的數據,具有更加穩定良好的學習性能。深度神經網絡需要大規模的訓練數據,而 gcForest 在僅有小規模訓練數據的情況下也照常運轉。

7.2 gcForest不需要設置超參數,通過在具體數據集上訓練誤差最小化來自動設定。實際上,在幾乎完全一樣的超參數設置下,gcForest在處理不同領域的不同數據時,也能達到極佳的性能。

7.3 相比於神經網絡,深度森林的樹結構具有更好的解釋性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM