[重磅]Deep Forest,非神經網絡的深度模型,周志華老師最新之做,三十分鐘理解!

歡迎轉載,轉載請註明:本文出自Bin的專欄blog.csdn.net/xbinworld
技術交流QQ羣:433250724,歡迎對算法、技術感興趣的同窗加入。html


深度學習最大的貢獻,我的認爲就是表徵學習(representation learning),經過端到端的訓練,發現更好的features,然後面用於分類(或其餘任務)的輸出function,每每也只是普通的softmax(或者其餘一些經典而又簡單的方法)而已,因此,只要特徵足夠好,分類函數自己並不須要複雜——博主本身在作research的時候也深有同感,之前不少paper實際上是誤入歧途,採用的feature很是混淆模糊沒有區分性,卻期望在分類器上得到好的結果,可能麼?深度學習能夠說是回到了問題的本源上來,representation learning。算法

目前DL的成功都是創建在多層神經網絡的基礎上的,那麼這種成功可否復刻到其餘模型上呢?我相信,是能夠的。南京大學的周志華老師嘗試提出一種深度的tree模型,叫作gcForest,用文中的術語說,就是「multi-Grained Cascade forest」,多粒度級聯森林。此外,還提出了一種全新的決策樹集成方法,使用級聯結構讓 gcForest 作表徵學習。markdown


Title:Deep Forest: Towards An Alternative to Deep Neural Networks
做者:Zhi-Hua Zhou and Ji Feng網絡

摘要

在這篇論文裏,咱們提出了 gcForest,這是一種決策樹集成方法(decision tree ensemble approach),性能較之深度神經網絡有很強的競爭力。深度神經網絡須要花大力氣調參,相比之下 gcForest 要容易訓練得多。實際上,在幾乎徹底同樣的超參數設置下,gcForest 在處理不一樣領域(domain)的不一樣數據時,也能達到極佳的性能。gcForest 的訓練過程效率高且可擴展。在咱們的實驗中,它在一臺 PC 上的訓練時間和在 GPU 設施上跑的深度神經網絡差很少,有鑑於 gcForest 自然適用於並行的部署,其效率高的優點就更爲明顯。此外,深度神經網絡須要大規模的訓練數據,而 gcForest 在僅有小規模訓練數據的狀況下也照常運轉。不只如此,做爲一種基於樹的方法,gcForest 在理論分析方面也應當比深度神經網絡更加容易。[1]app

級聯森林(Cascade Forest)

這裏寫圖片描述

級聯森林結構的圖示。級聯的每一個級別包括兩個隨機森林(藍色字體標出)和兩個徹底隨機樹木森林(黑色)。假設有三個類要預測; 所以,每一個森林將輸出三維類向量,而後將其鏈接以從新表示原始輸入。注意,要將前一級的特徵和這一級的特徵鏈接在一塊兒——在最後會有一個例子,到時候再具體看一下如何鏈接。dom

論文中爲了簡單起見,在實現中,使用了兩個徹底隨機的樹森林(complete-random tree forests)和兩個隨機森林[Breiman,2001]。每一個徹底隨機的樹森林包含1000個徹底隨機樹[Liu et al。,2008],每棵樹經過隨機選擇一個特徵在樹的每一個節點進行分割實現生成,樹一直生長,直到每一個葉節點只包含相同類的實例或不超過10個實例。相似地,每一個隨機森林也包含1000棵樹,經過隨機選擇sqrt(d) 數量的特徵做爲候選(d是輸入特徵的數量),而後選擇具備最佳 gini 值的特徵做爲分割。每一個森林中的樹的數值是一個超參數。機器學習

給定一個實例(就是一個樣本),每一個森林會經過計算在相關實例落入的葉節點處的不一樣類的訓練樣本的百分比,而後對森林中的全部樹計平均值,以生成對類的分佈的估計。以下圖所示,其中紅色部分突出了每一個實例遍歷到葉節點的路徑。葉節點中的不一樣標記表示了不一樣的類。函數

這裏寫圖片描述

被估計的類分佈造成類向量(class vector),該類向量接着與輸入到級聯的下一級的原始特徵向量相鏈接。例如,假設有三個類,則四個森林每個都將產生一個三維的類向量,所以,級聯的下一級將接收12 = 3×4個加強特徵(augmented feature)。性能

爲了下降過擬合風險,每一個森林產生的類向量由k折交叉驗證(k-fold cross validation)產生。具體來講,每一個實例都將被用做 k -1 次訓練數據,產生 k -1 個類向量,而後對其取平均值以產生做爲級聯中下一級的加強特徵的最終類向量。須要注意的是,在擴展一個新的級後,整個級聯的性能將在驗證集上進行估計,若是沒有顯着的性能增益,訓練過程將終止;所以,級聯中級的數量是自動肯定的。與模型的複雜性固定的大多數深度神經網絡相反,gcForest 可以適當地經過終止訓練來決定其模型的複雜度(early stop)。這使得 gcForest 可以適用於不一樣規模的訓練數據,而不侷限於大規模訓練數據。學習

(注:級聯數量自動肯定能夠有助於控制模型的複雜性,實際上在每一級的輸出結果都用ground truth label來訓練的,這裏和CNN的理解不一樣,CNN認爲特徵是逐層抽象的,而本文在每一層都直接拿label的高層語義來訓練——我本人有一些擔心,直接這樣的級聯會不會使得收益並不能經過級數的加深而放大?好比CNN目前能夠作到上百層的net,而這裏會自動肯定深度,也就是說可能沒辦法作的很深。但願隨着更多人的分析,能夠在這一點上給出一些結論)

多粒度掃描(Multi-Grained Scanning)

深度神經網絡在處理特徵關係方面是強大的,例如,卷積神經網絡對圖像數據有效,其中原始像素之間的空間關係是關鍵的。(LeCun et al., 1998; Krizhenvsky et al., 2012),遞歸神經網絡對序列數據有效,其中順序關係是關鍵的(Graves et al., 2013; Cho et al.,2014)。受這種認識的啓發,咱們用多粒度掃描流程來加強級聯森林。

這裏寫圖片描述

滑動窗口用於掃描原始特徵。假設有400個原始特徵,而且使用100個特徵的窗口大小。對於序列數據,將經過滑動一個特徵的窗口來生成100維的特徵向量;總共產生301個特徵向量。若是原始特徵具備空間關係,好比圖像像素爲400的20×20的面板,則10×10窗口將產生121個特徵向量(即121個10×10的面板)。從正/負訓練樣例中提取的全部特徵向量被視爲正/負實例;它們將被用於生成類向量:從相同大小的窗口提取的實例將用於訓練徹底隨機樹森林和隨機森林,而後生成類向量並鏈接爲轉換後的像素。如上圖的上半部分所示,假設有3個類,而且使用100維的窗口;而後,每一個森林產生301個三維類向量,致使對應於原始400維原始特徵向量的1,806維變換特徵向量。

經過使用多個尺寸的滑動窗口,最終的變換特徵矢量將包括更多的特徵,以下圖所示。

這裏寫圖片描述

concat成一個3618-dim的原始數據,表示原始的一個數據樣本,第一級的輸出是12+3618=3630,後面也是同樣,直到最後第N級,只有12個輸出,而後在每一類別上作avg,而後輸出max那一類的label,那就是最終的預測類別。

實驗結果

這一部分也是網上你們有疑問的地方,主要是數據集選取都是比較小的實驗數據,這個方法能不能火仍是要看在real data上能不能作到和DL同樣的效果。

下面簡單貼幾個結果

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

總結

帶着深度學習的關鍵在於特徵學習和巨大模型的能力這一認識,咱們在本文中試圖賦予樹集成這些屬性,並提出了 gcForest 方法。與深度神經網絡相比,gcForest在咱們的實驗中表現了極高的競爭力或更好的性能。更重要的是,gcForest 具備少得多的超參數,而且對參數設置不太敏感;實際上在咱們的實驗中,經過使用相同的參數設置在不一樣的域中都得到了優異的性能,而且不管是大規模仍是小規模的數據,它的工做都很好。此外,做爲一種基於樹的方法,gcForest 應該比深度神經網絡更容易進行理論分析,不過這超出了本文的討論範圍。咱們很快會提供 gcForest 的代碼。

出自原文[2]:「構建深度森林還存在其餘可能性。做爲一個會議論文,咱們只朝這個方向進行了一點點探索。若是咱們有更強大的計算設施,咱們想嘗試大數據和深度森林,這將留待之後討論。原則上,深度森林應該可以展現出深度神經網絡的其餘能力,如充當特徵提取器或預訓練模型。 值得一提的是,爲了解決複雜的任務,學習模型可能須要更深刻。然而,當前的深度模型老是神經網絡。本文說明了如何構建深度森林,咱們相信它是一扇門,可能替代深度神經網絡的許多任務。」


這篇文章通俗易懂,要詳細瞭解的話須要對決策樹,random forest稍有了解,能夠去看一下我前面的博客:機器學習方法(四):決策樹Decision Tree原理與實現技巧 以及 機器學習方法(六):隨機森林Random Forest,bagging;和離散類別特徵不一樣,本文都是基於連續特徵爲數據特徵的,好比像素等等,所以,決策樹都是基於連續特徵構建的。

僅經過原本說DL算法可取代還爲時過早,神經網絡有其獨特性,並且存在着設計上的美——計算模式統一,端到端,沒有過多人文設計;而本文說實話,我仍是以爲有不少人爲設計的痕跡,但願更多的學者能夠在tree based learning method方向上找到更多突破。


參考資料

[1] http://it.sohu.com/20170302/n482153688.shtml [2] Deep Forest: Towards An Alternative to Deep Neural Networks, 2017

相關文章
相關標籤/搜索