search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

如何評價周志華深度森林模型,熱議會否取代深度學習 DNN

新智元日前宣布,獲6家頂級機構總額達數千萬元的PreA輪融資,藍馳創投領投,紅杉資本基金、高瓴智成、藍湖資本 、藍象資本跟投。本輪融資將用於新智元團隊規模擴充並增加新產品服務線,目標打造 To B 的人工智慧全產業鏈服務平台。

新智元啟動新一輪大招聘:COO、執行總編、主編、高級編譯、主筆、運營總監、客戶經理、諮詢總監、行政助理等 9 大崗位全面開放。

簡歷投遞:j[email protected]

13552313024

新智元為COO和執行總編提供最高超百萬的年薪激勵;為骨幹員工提供最完整的培訓體系、高於業界平均水平的工資和獎金。

加盟新智元,與人工智慧業界領袖攜手改變世界。

【新智元導讀】昨天,新智元報道了南京大學周志華教授和馮霽的論文「深度森林」,引發很多討論。今天,新智元整理了網上一些評價。中文內容來自知乎,已經取得授權。外網內容來自 Hacker News,由新智元編譯整理。正在看這篇文章的你,也歡迎留下你的看法。

首先,讓我們簡單回顧周志華和馮霽的論文《深度森林:探索深度神經網路以外的方法》。了解更多請點擊閱讀新智元報道:周志華最新論文挑戰深度學習 | 深度森林:探索深度神經網路以外的方法

摘要

在這篇論文里,我們提出了 gcForest,這是一種決策樹集成方法(decision tree ensemble approach),性能較之深度神經網路有很強的競爭力。深度神經網路需要花大力氣調參,相比之下 gcForest 要容易訓練得多。實際上,在幾乎完全一樣的超參數設置下,gcForest 在處理不同領域(domain)的不同數據時,也能達到極佳的性能。gcForest 的訓練過程效率高且可擴展。在我們的實驗中,它在一台 PC 上的訓練時間和在 GPU 設施上跑的深度神經網路差不多,有鑒於 gcForest 天然適用於并行的部署,其效率高的優勢就更為明顯。此外,深度神經網路需要大規模的訓練數據,而 gcForest 在僅有小規模訓練數據的情況下也照常運轉。不僅如此,作為一種基於樹的方法,gcForest 在理論分析方面也應當比深度神經網路更加容易。

Hacker News 用戶討論

HN 用戶 rkaplan:

「深度神經網路需要花大力氣去調整超參數,相比之下 gcForest 訓練起來要容易得多。」

現在對於深度神經網路調整超參數已經不是大問題了。有了 BatchNorm 和更多更具魯棒性的優化演算法,大多數時候你只需要用 Adam 用默認設置學習率 0.001 就行了,結果很好。現在很多模型使用 BatchNorm,有時候都不需要使用 Dropout,總體而言調參不再是個問題。很多步長為1、3×3 的卷積層效果很漂亮的。簡單說:如今深度 NN 不怎麼調參也用得很好。用默認設置就行了。

> HN 用戶 computerex:

我完全不同意這種說法。默認設置根本不管用,而且網路架構本身就可以被視為一種超參數。這樣的話,對於用於不同問題的 ANN 而言,怎麼去弄一個合理的默認設置呢?

HN 用戶 arjo129:

深度神經網路用起來很好,只是你需要很多耐心(並且知道如何)用它們。另外,GPU 是很貴的。當你意識到你搞砸了的時候,你已經浪費很多時間了。當然,任何機器學習演算法都是如此。但我想說的是,可能存在一個我們還不知道的方法,它的計算複雜度可能更低。

我發現的一個問題是,人們在無限制地濫用深度神經網路。 你沒必要訓練 DNN 來識別冰箱里的結構化對象,比如可樂罐。對於小規模對象識別來說,簡單的 hog/sift 這些特徵工程可能是更快和更好的選擇。但是,你不能指望 sift 在 ImageNet 上比深度神經網路表現更好。因此,當涉及到在短時間內部署系統時,應該保持開放的心態。

HN 用戶 modeless:

「沒必要訓練 DNN 來識別冰箱里的結構化對象,比如可樂罐。」

我不同意這個說法。當然,作為你自己的實驗項目,你不需要一個 NN 來識別一個冰箱里的一聽可樂。但是,如果你要識別所有冰箱里的所有可樂罐又將如何呢,這是為了你在現實世界中使用、給消費者拿可樂的機器人產品用的?你會需要一個巨大的數據集,包含所有不同設計的可樂罐和所有不同種類的冰箱,你小打小鬧的特徵工程面對一個擁有這些資料庫的 NN 會死得很慘。

HN 用戶 throw_away_777:

實際上我一直不懂,為什麼深度神經網路這麼火,而迄今為止大多數 Kaggle 競賽中用得最多最好的演算法是 xgboost 呢?雖然神經網路對於圖像處理類的問題很好用,對於更多機器學習問題,決策樹的方法性能更好,也更容易部署。

> HN 用戶 BickNowstrom:

神經網路火是有原因的。神經網路的重大發展帶來了 NLP、計算機視覺、結構化數據、機器翻譯、風格轉移等等準確率的提升。

XGBoost 從「Greedy function approximation: A gradient boosting machine」這篇論文開始就沒怎麼變過,但通過一些小的改善變得更快了,也更方便調參。

我覺得 Tensorflow / Keras 可以處理更多種類的問題,比基於樹的方法具有相同的或更高的準確性。NN對結構化問題(這塊是基於樹的方法的主場)做得很好,但也適用於計算機視覺和 NLP。

確實,基於樹的方法在學術上有些過時,激動人心的都在神經網路領域裡面。做深度學習更容易發表(以前可是倒過來的)。

HN 用戶 throw_away_777:

我同意神經網路是最先進的,在某些類型的問題(NLP和視覺,這些都是很重要的問題)上做得很好。但是,很多數據是結構化的(銷售、推薦等等),並且xgboost模型比神經網路模型更容易訓練。訓練神經網路你需要非常昂貴的計算機或者昂貴的雲計算,而且即使用上了訓練起來也不容易。 易於部署是學術界忽略的一個重要因素。在非NLP和非圖像數據集上,通常最佳的 Kaggle 模型就是 xgboost 模型,而且開發 xgboost 花費的時間是開發好神經網路模型的 1/10。Xgboost自從第一次推出以來已經走了很長的路,早期停止改進本身就是一個重大改進的例子。

演算法不是很複雜,期待在大數據集上的結果

【作者:田淵棟,Facebook 人工智慧實驗室】

整個演算法看起來不是很複雜。

1. 類似以前Stacking的做法,即每一層都用label進行訓練,訓練完了再疊一層繼續訓練。加了Complete Random Forest很有意思,個人理解是生成了一些看似無關,但對將來的預測有好處的特徵。如果實驗裡面能做些ablation analysis就好了。

2. 用了一些shortcut-connection,把幾層前的數據拿過來連上上一層的輸出一起作為這一層Forest的輸入。

3. Multi-Grained Scanning這部分非常像1D和2D convolution。

另外實驗還只是在小規模數據集上做的,期待CIFAR甚至是ImageNet的結果。深度學習這裡也有一直在提但是一直效果不怎麼好的Layer-by-Layer訓練的思路,如果這個思路能在大數據集上做好,那確實是大突破了。

知乎原文鏈接:https://www.zhihu.com/question/56474891/answer/149427631

開啟了很好的方向,但要真的 Alternative,還有很多要研究

【作者:邱錫鵬,復旦大學計算機科學技術學院副教授】

首先,這篇論文的內容就不細說了,很多人也作了很細緻的分析。創新在於兩方面:1)思想上,深度學習也可以不用千篇一律的神經網路,而採用其它淺層的分類器。2)方法上,採用了級聯+集成的方法來實現了一個深度隨機森林。我估計很多研究者也都有1的想法(其實我就有過),但能找到一個實現方法估計也只有周老師他們能做出來了,這裡面確實需要有大量的集成學習技術。

下面說下我的觀點(是否 Alternative):

1)深度網路和神經網路的解構

其實,現在深度學習已經不再僅僅是多層神經網路了。現在的很多深層模型一般有一個比較複雜的架構,包含幾個部件。每個部件分別由神經網路來實現。比如Neural Turing Machine,再比如AlphaGo。在這些複雜模型里神經網路已經部件化。

記得最早2014年時讀了Jason Weston的論文[1410.3916] Memory Networks。作者構建了一個記憶網路的框架,每個部件可以是SVM或決策樹等。當時覺得作者的想法太瘋狂了,腦洞大開。但是,最後實現時還是採用了神經網路(原因見下)。

2)End-to-End訓練和Layer-wise訓練

當實現一個複雜的系統(比如問答系統)時,我們一般的想法是分解,有助於我們理解,然後一步步來實施。這裡面有兩個問題,一是這些分解的部件是松耦合,必須單獨訓練,且每個部件的優化目標和最終的系統目標並不完全一致。二是錯誤傳播問題。神經網路出現以後這些問題都迎刃而解了,因為這些部件都可以是神經網路,並且還可以連起來一起End-to-End訓練,因此最大的痛點消失。

再來看下Layer-wise訓練。當我們可以把一個系統解構成分層解構時,我們可以求助於Layer-wise訓練,這時每一層的訓練目標可以加入一些先驗知識。這種方法有優點也有不足,不再展開。但是,如果一個系統不能分割為逐層結構,我們很難找到類似layer-wise的訓練手段,End-to-End訓練是比較好的選擇,這時除了神經網路也沒有更好的選擇。

總之,周老師的工作無疑開啟了一個很好的方向,要想真的Alternative,裡面還有很多東西需要研究。

知乎原文鏈接:https://www.zhihu.com/question/56474891/answer/149470584

【作者:付鵬,今日頭條】

我個人的想法是,這個idea能work是能想象出來的,但是能不能有像paper中描述類似『萬金油』的作用,還需要更多檢驗。



先放上對照試驗結果:

可以看到,無論是人臉識別(圖像),情感識別(NLP),音樂分類問題等等,都取得了很厲害的結果。

更厲害的是,paper號稱『gcForest 具有少得多的超參數,並且對參數設置不太敏感;實際上在我們的實驗中,通過使用相同的參數設置在不同的域中都獲得了優異的性能,並且無論是大規模還是小規模的數據,它的工作都很好。』

這聽上去就很驚悚。沒有更多細節的情況下不好妄加揣測,但是從已有的paper可以分析一二。

一、這個deep forest 本質上仍然是一個tree ensemble 方法

ensemble method是周志華的強項,這個deep forest看起來是周在ensemble method 借鑒了deep learning之後的一個成果。

周稱這個演算法叫『ensemble of ensemble』, 實際上就是指用ensemble模型得到的結果級聯(concat),再作為新的ensemble模型的輸入再進行ensemble,有點類似多層神經網路的做法。

上圖是原理圖,可以看到,類似NN的做法,多個森林的結果concat后輸入下一層,層層過後最終輸出final prediction。

在gc forest中,每層選擇的輸出結果就是當前層每個森林對問題的預測的輸出結果的級聯,舉例子,假如某一層有2000個森林,一個2分類問題,那麼該層輸出就是2000*2 = 4000維。

二、通過完全隨機打到ensemble要求的『多樣性』

ensemble最重要的一點就是模型要有多樣性,這樣的ensemble才有意義,所謂『和而不同』。

周對這個的做法是,輸入層採用兩種不同的森林,見上圖藍黑區分。

一種是傳統的Random Forest,隨機取個特徵傳入,d為特徵維數,是很傳統的tree ensemble 方法。

另一種是完全隨機構造的森林,complete-random tree forests。隨機選擇特徵,隨機選擇split value,直到分類變純或者樣本過少。

我的理解是,前者保證了一定的演算法效果,後者則增加了一定的多樣性。

三、學習NN那一套先進的方法來進行原始特徵的處理

DL能夠work,不僅有網路的功勞,還包括天馬行空的feature engineering的功勞,比如CNN的卷積操作,RNN對序列問題的處理。

gc forest就把這些和網路關係不大的東西學來作為自己輸入的預處理。

這些特徵的處理是理所應當的,對特定問題進行特定的特徵工程來提升模型效果是必做的事情。

然後,『啵兒』的一測,在諸多領域就吊打了諸多模型。

對此,還是要等待代碼出來實測一下,不敢多說。

一點個人想法:



1. 這個idea某種程度是可以work的,原因在於tree ensemble模型是經過驗證能夠學習到高級特徵的,Facebook早先就曾經成功嘗試過用GBDT的某一層輸出放到LR模型裡面來進行CTR預測,取得了不錯的結果:
,這說明了至少tree ensemble模型的輸出其實很make sense。

2.這個gc forest模型,實際上也是嘗試著像NN一樣通過多層學習學到更高維度更抽象的特徵,通過加層數來實現特徵和特徵之間的各種非線性組合,最終抽離出各種非線性特徵,其中幾乎一定存在很不錯的特徵。

3.為什麼每一層的輸出選擇分類結果的維度?這樣是否損失了一些特徵信息?是否對學習效果有影響。

4.這個模型是否真的能成為萬金油模型,我還是不敢下斷言,一來不是很稀疏,二來,有很多看起來很隨意的設置,三來這樣搞tree,真的會比NN在理論上容易分析一些么?還是請大佬來解答相關問題。

5.這個模型從第一層起即關注對最終結果的loss,對特徵學習是不是一個約束,即難以學習到更好的特徵?

知乎原文鏈接:https://www.zhihu.com/question/56474891/answer/149366668

gcForest 很好,但並沒超越DNN

【作者:毛瀟鋒】

首先說說論文的思想。

gcForest模型還是把訓練分成兩個階段:

第一個是G階段(Multi-Grained Scanning),這一步主要是feature extraction,具體做法和卷積神經網路類似(如下圖),n*n的窗口滑動來獲得raw feature,只不過這裡不再有權值了,20*20大小的圖片,用10*10的窗口按滑動步長1來取的話,會生成121個特徵,然後直接將121個10*10像素的圖放到Forest裡面,產生121個三維的類概率向量,兩個Forest就是2*121個三維類概率向量,以此類推。同理在用5*5或者15*15的窗口重複上述步驟,最後把所有向量聚合,形成一個維度非常高的feature。重要的是,這個過程是全程受監督的,已經有答主說了,gcForest的feature extraction過程是受label監督的,而DNN的feature extraction過程是由高層BP傳下來的梯度指導更新的,在DNN較深的情況下,高層傳下來的梯度容易受到各種因素的影響而波動,這是gcForest優於DNN的一點。

第二個是C階段(Cascade Forest),它由下圖所示的級聯隨機森林構成,每個Forest也是輸出3維的類概率向量,有的同學會說那不是一步就完成了嗎?當然不是的,如下圖4個Forest輸出的4*3維向量要和原Input聚合,再做為下一層的輸入,以此類推,當我們發現結果已經較優了的時候,就可以停止,取平均后最大值對應的類作為輸出。為什麼要將輸出和原Input聚合作為下一層的輸入?這種做法我的理解是為了使得輸出越來越向某一個值靠近,即讓級聯隨即森林趨於收斂和穩定。

然後再來說說和DNN的不同。

文首我已經概括了我理解的最本質的不同,即gcForest是受監督形成feature,然後所有的特徵共同指導分類,而DNN則是end-to-end的」一條龍」服務。

另一點不同是,gcForest的中間數據可以直接作為結果輸出,這也解釋了為什麼gcForest可以「動態加層」,而DNN不行,因為DNN的層間數據沒有特定意義,獲得結果必須通過對應的「loss layer」。

因為全程受label的監督,所以gcForest需要的超參比較少,而DNN則需要嚴格的網路結構設計和調參技巧,一旦有任何差錯,網路的小波動會導致整個系統無法運行。

再說說可擴展性吧,label的監督對於gcForest來說既是一項優點,又是最大的缺陷所在,gcForest對標籤依賴太嚴重,個人認為它甚至不能勝任無監督任務,這也是傳統機器學習方法的通病。在Unsupervise-Learning越來越重要的當今,四項全能的Deep Neural Network的地位我認為依然無法撼動。

引用文中一句話,「If we had stronger computational facilities, we would like to try big data and deeper forest, which is left for future work」,我已經能夠預感到一大波「going deeper withforest」,「forestinforest」,「deep residualforest」的到來了。



知乎原文鏈接:https://www.zhihu.com/question/56474891/answer/149377689

新智元招聘

職位:COO

職位年薪:50萬(工資+獎金)-100萬元(含期權)

工作地點:北京-海淀區

所屬部門:運營部

彙報對象:CEO

下屬人數:10人

年齡要求:25 歲至 40 歲

語言:英語六級以上或海外留學從業背景

職位背景:在IT領域有專業團隊管理經驗

學歷要求:碩士及以上

職位描述:

1. 負責新智元總體市場運營,智庫與人工智慧百人會經營,政府關係統籌協調

2. 擅長開拓市場,並與客戶建立長期多贏關係,有建構產業生態系統能力

3. 深度了解人工智慧及機器人產業及相關市場狀況,善於捕捉商業機會

4. 統籌管理公司各運營部門,兼管公司HR及財務部門

5. 帶領運營團隊完成營業額目標,並監控協調運營部與編輯部、研究部運作

6. 負責公司平台運營總體戰略計劃、合作計劃的制定與實施

崗位要求

1、碩士以上學歷,英語六級以上,較強的英語溝通能力或外企從業經驗

2、 3年以上商務拓展經驗,有團隊管理經驗,熟悉商務部門整體管理工作

3、 IT領域商務拓展經驗、強大的團隊統籌管理能力

4、 有廣泛的TMT領域人脈資源、 有甲方市場部工作經驗優先考慮

5、 知名IT媒體商務部門管理經驗,廣告、公關公司市場拓展部負責人優先

應聘郵箱:[email protected]

新智元歡迎有志之士前來面試,更多招聘崗位請點擊閱讀原文查看。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦