自去年周志華等研究者提出了「深度森林」以后,這種新型的層級表征方式吸引了很多研究者的關注。今日,南京大學的馮霽、俞揚和周志華提出了多層梯度提升決策樹模型,它通過堆疊多個回歸 GBDT 層作為構建塊,并探索了其學習層級表征的能力。此外,與層級表征的神經網絡不同,他們提出的方法并不要求每一層都是可微,也不需要使用反向傳播更新參數。因此,多層分布式表征學習不僅有深度神經網絡,同時還有決策樹!
近十年來,深層神經網絡的發(fā)展在機器學習領域取得了顯著進展。通過構建分層或「深層」結構,該模型能夠在有監(jiān)督或無監(jiān)督的環(huán)境下從原始數據中學習良好的表征,這被認為是其成功的關鍵因素。成功的應用領域包括計算機視覺、語音識別、自然語言處理等 [1]。
目前,幾乎所有的深層神經網絡都使用具有隨機梯度下降的反向傳播 [2,3] 作為訓練過程中更新參數的幕后主力軍。實際上,當模型由可微分量(例如,具有非線性激活函數的加權和)組成時,反向傳播似乎仍是當前的最佳選擇。其他一些方法如目標傳播 [4] 已經被作為訓練神經網絡的替代方法被提出,但其效果和普及還處于早期階段。例如,[5_]_的研究表明,目標傳播最多可達到和反向傳播一樣的效果,并且實際上常常需要額外的反向傳播來進行微調。換句話說,老掉牙的反向傳播仍然是訓練神經網絡等可微分學習系統(tǒng)的最好方法。
另一方面,探索使用非可微模塊來構建多層或深度模型的可能性的需求不僅僅是學界的興趣所在,其在現(xiàn)實應用上也有很大的潛力。例如,基于樹的集成(例如隨機森林 [6] 或梯度提升決策樹(GBDT)[7] 仍然是多個領域中建模離散或表格數據的主要方式,為此在這類數據上使用樹集成來獲得分層分布式表征是個很有趣的研究方向。在這樣的案例中,由于不能使用鏈式法則來傳播誤差,反向傳播不再可行。這引發(fā)了兩個基本的問題:首先,我們是否可以用非可微組件構建多層模型,從而中間層的輸出可以被當作分布式表征?其次,如果是這樣,如何在沒有反向傳播的幫助下,聯(lián)合地訓練這種模型?本文的目的就在于提供這種嘗試。
近期 Zhou 和 Feng [8] 提出了深度森林框架,這是首次嘗試使用樹集成來構建多層模型的工作。具體來說,通過引入細粒度的掃描和級聯(lián)操作(cascading operation),該模型可以構建多層結構,該結構具備適應性模型復雜度,且能夠在多種類型的任務上取得有競爭力的性能。[8] 提出的 gcForest 模型利用了集成學習多樣性增強的各種策略,然而該方法僅適用于監(jiān)督學習設置。同時,該論文仍然不清楚如何利用森林來構建多層模型,并明確地測試其表征學習能力。由于很多之前的研究者認為,多層分布式表征 [9] 可能是深度神經網絡成功的關鍵,為此我們應該對表征學習進行這樣的探索。
該研究力求利用兩個方面的優(yōu)勢:樹集成的出色性能和分層分布式表征的表達能力(主要在神經網絡中進行探索)。具體來說,本研究提出了首個多層結構,每層使用梯度提升決策樹作為構造塊,明確強調其表征學習能力,訓練過程可以通過目標傳播的變體進行聯(lián)合優(yōu)化。該模型可以在有監(jiān)督和無監(jiān)督的環(huán)境下進行訓練。本研究首次證明,確實可以使用決策樹來獲得分層和分布式表征,盡管決策樹通常被認為只能用于神經網絡或可微分系統(tǒng)。理論論證和實驗結果均表明了該方法的有效性。
3 提出的方法
這一部分機器之心并不詳細介紹,具體的方法讀者可參考原論文第三章。在一般的多層前饋結構中,每一層都是可微函數,因此我們可以使用反向傳播傳遞梯度并高效地更新參數。但是當每一個層級函數都是不可微或者非參數化的,那么我們就不能使用反向傳播。所以這一部分重點在于解決當層級函數 F_i 是梯度提升決策樹時,其參數的更新方法。
訓練神經網絡時,初始化可以通過向每個參數分配隨機高斯噪聲來實現(xiàn),然后該步驟移動到下一階段,即參數更新。對于此處介紹的樹結構模型來說,從所有可能的樹配置分布中繪制隨機樹結構不是一件容易的事情,因此本論文沒有隨機初始化樹結構,而是生成一些高斯噪聲作為中間層的輸出,并訓練一些非常小的樹來獲取,其中索引 0 表示該初始化階段獲取的樹結構。之后訓練步驟移動到迭代更新正向映射和逆向映射。圖 1 和算法 1 總結了該步驟。
圖 1:訓練 mGBDT 步驟的示意圖。
值得注意的是,[23] 利用 GPU 加速訓練 GBDT,Korlakai & Ran [24] 展示了一種實施 GBDT drop-out 技術的高效方式,進一步提升了性能。至于多維輸出問題,使用 GBDT 的原始方法內存效率較低。Si 等人 [25] 提出了解決該問題的有效方式,可以在實踐中將內存降低一個數量級。
4 實驗
4.1 合成數據
為了進行完整性檢查,研究者在合成數據集上訓練兩個小的多層 GBDT。
如圖 2a 所示,研究者在 R^2 上得到了 1.5 萬個點,分為兩個類別(70% 用于訓練,30% 用于測試)。用于訓練的結構是(輸入 ? 5 ? 3 ? 輸出),其中輸入點在 R^2 中,輸出是 0/1 分類預測。
研究者還進行了一項自動編碼的無監(jiān)督學習任務。生成了 1 萬個 3D 點,如圖 3a 所示。然后研究者用結構為(3 - 5 - 3)的 mGBDT 構建了一個自編碼器,MSE 為重建損失。
重建輸出如圖 3b 所示。輸入 3D 點的 5D 編碼不可能直接可視化,這里研究者使用一種通用策略來可視化 2D 中 5D 編碼的一些維度對,如圖 4 所示。
4.2 收入預測
收入預測數據集 [28] 包含 48, 842 個樣本(其中 32, 561 個是訓練數據,16, 281 個是測試數據),這些樣本是表格數據,具備類別屬性和連續(xù)屬性。每個樣本包括一個人的社會背景,如種族、性別、工作種類等。這里的任務是預測這個人的年薪是否超過 50K。
圖 5:收入數據集的特征可視化。
實驗結果見圖 6 和表 1。首先,基于同樣的模型結構,多層 GBDT 森林(mGBDT)與使用反向傳播或目標傳播(target-prop)的 DNN 方法相比取得了最高的準確率。它的準確率還比單個 GBDT 或多個 GBDT 的簡單堆疊更高。其次,與期望相反,NN^TargetProp 的收斂效果不如 NN^BackProp(與 [5] 的結果一致),而使用 GBDT 層的同樣結構可以達到更低的訓練損失,同時避免過擬合。
圖 6:收入數據集學習曲線。
表 1:分類準確率對比。對于蛋白質數據集,使用 10 折交叉驗證評估出的準確率以平均值 ± 標準差的形式表示。
4.3 蛋白質定位
蛋白質數據集 [28] 是一個 10 類別分類任務,僅包含 1484 個訓練數據,其中 8 個輸入屬性中的每一個都是蛋白質序列的一個測量值,目標是用 10 個可能的選擇預測蛋白質定位位點。
圖 7:蛋白質數據集的特征可視化
10 折交叉驗證的訓練和測試曲線用平均值繪制在圖 8 中。多層 GBDT(mGBDT)方法比神經網絡方法收斂得快得多,如圖 8a 所示。
圖 8:蛋白質數據集學習曲線。
表 2:不同模型結構的測試準確率。使用 10 折交叉驗證評估出的準確率以平均值 ± 標準差的形式表示。N/A 表示并未應用。
論文:Multi-Layered Gradient Boosting Decision Trees
論文鏈接:https://arxiv.org/pdf/1806.00007.pdf
摘要:多層表征被認為是深度神經網絡的關鍵要素,尤其是在計算機視覺等認知任務中。盡管不可微模型如梯度提升決策樹(gradient boosting decision tree,GBDT)是建模離散或表格數據的主要方法,但是它們很難整合這種表征學習能力。在本文中,我們提出了多層 GBDT 森林(mGBDT),通過堆疊多個回歸 GBDT 層作為構建塊,探索學習層級表征的能力。該模型可以使用層間目標傳播的變體進行聯(lián)合訓練,無需推導反向傳播和可微性。實驗和可視化均證明該模型在性能和表征學習能力方面的有效性。