實際工作總與理論相矛盾?詳解機器學(xué)習(xí)教科書七大經(jīng)典問題
實際工作中,庫卡機器人驅(qū)動器維修,應(yīng)該怎么做和教科書講的結(jié)論相矛盾,這時候要怎么辦呢?難道教科書中的結(jié)論出錯了?
如果希望了解機器學(xué)習(xí),或者已經(jīng)決定投身機器學(xué)習(xí),你會第一時間找到各種教材進行充電,同時在心中默認:書里講的是牛人大神的畢生智慧,是正確無誤的行動指南,認真學(xué)習(xí)就能獲得快速提升。但實際情況是,你很可能已經(jīng)在走彎路。
科技發(fā)展很快,數(shù)據(jù)在指數(shù)級增長,環(huán)境也在指數(shù)級改變,因此很多時候教科書會跟不上時代的發(fā)展。有時,即便是寫教科書的人,也不見得都明白結(jié)論背后的所以然,因此有些結(jié)論就會落后于時代。針對這個問題,第四范式創(chuàng)始人、首席執(zhí)行官戴文淵近日就在公司內(nèi)部分享上,向大家介紹了機器學(xué)習(xí)教材中的七個經(jīng)典問題。戴文淵是ACM世界冠軍(2005年),遷移學(xué)習(xí)全球領(lǐng)軍人物,在遷移學(xué)習(xí)領(lǐng)域單篇論文引用數(shù)至今仍排名世界第三。曾任百度鳳巢策略的技術(shù)負責(zé)人、華為諾亞方舟實驗室主任科學(xué)家。
本文根據(jù)演講實錄整理,略有刪減。
有時我們會發(fā)現(xiàn),在實際工作中,應(yīng)該怎么做和教科書講的結(jié)論相矛盾,這時候要怎么辦呢?難道教科書中的結(jié)論出錯了?事實上,有時確實如此。所以今天我就想和大家分享一下機器學(xué)習(xí)教材中的一些經(jīng)典問題,希望對大家今后的工作和學(xué)習(xí)有所幫助。
問題一:神經(jīng)網(wǎng)絡(luò)不宜超過3層
這是最有名錯誤判斷,現(xiàn)在的教科書幾乎已經(jīng)不再有這樣的結(jié)論,但如果看15年、20年前的機器學(xué)習(xí)教科書,會有一個很有趣的結(jié)論:神經(jīng)網(wǎng)絡(luò)不能超過三層。這和我們現(xiàn)在說的深度學(xué)習(xí)是矛盾的,深度學(xué)習(xí)現(xiàn)在大家比拼的不是神經(jīng)網(wǎng)絡(luò)能不能超過三層,而是能不能做出一百層、一千層或者更多。
那為什么之前的教科書上會寫神經(jīng)網(wǎng)絡(luò)不能超過三層,這就要從神經(jīng)網(wǎng)絡(luò)的歷史說起。五十年代有位科學(xué)家叫MarvinMinksy,他是一位生物學(xué)家,數(shù)學(xué)又很好,所以他在研究神經(jīng)元的時候就在想能不能用數(shù)學(xué)模型去刻畫生物的神經(jīng)元,因此就設(shè)計了感知機。感知機就像一個神經(jīng)細胞,它能像神經(jīng)細胞一樣連起來,形成神經(jīng)網(wǎng)絡(luò),就像大腦的神經(jīng)網(wǎng)絡(luò)。其實在60年代開始的時候,是有很深的神經(jīng)網(wǎng)絡(luò),但當(dāng)時經(jīng)過大量實驗發(fā)現(xiàn),不超過三層的神經(jīng)網(wǎng)絡(luò)效果不錯,于是大概到80年代時就得出結(jié)論:神經(jīng)網(wǎng)絡(luò)不宜超過三層。
那為什么現(xiàn)在這條結(jié)論又被推翻了呢?實際上這條結(jié)論是有前提條件的,即在數(shù)據(jù)量不大的情況下,神經(jīng)網(wǎng)絡(luò)不宜超過三層。而從2005年開始,大家發(fā)現(xiàn)隨著數(shù)據(jù)增加,深度神經(jīng)網(wǎng)絡(luò)的表現(xiàn)良好,所以慢慢走向深度學(xué)習(xí)。其實這里真正正確的原理是Valiant引理,它可以理解為模型復(fù)雜度(例如專家系統(tǒng)的規(guī)則數(shù)量)要和數(shù)據(jù)量成正比。數(shù)據(jù)量越大,模型就越復(fù)雜。上個世紀(jì)因為數(shù)據(jù)量小,所以神經(jīng)網(wǎng)絡(luò)的層數(shù)不能太深,現(xiàn)在數(shù)據(jù)量大,所以神經(jīng)網(wǎng)絡(luò)的層數(shù)就要做深。這也解釋了為什么當(dāng)時教科書會有這樣的結(jié)論,而現(xiàn)在隨著深度學(xué)習(xí)的流行,大家已經(jīng)不再會認為這句話是對的。
問題二:決策樹不能超過五層
如果有同學(xué)看教科書上介紹決策樹,會有一個說法就是決策樹要減枝,決策樹如果不減枝效果不好。還有教科書會告訴決策樹不能超過五層,超過五層的決策樹效果不好。這個結(jié)論和神經(jīng)網(wǎng)絡(luò)結(jié)論一樣,神經(jīng)網(wǎng)絡(luò)不能超過三層也是因為當(dāng)時數(shù)據(jù)量不大,決策樹不能超過五層也是因為上個世紀(jì)數(shù)據(jù)量不夠大,二叉樹決策樹如果深度是N的話,復(fù)雜度大概是2的N次方,所以不超過五層復(fù)雜度也就是三十多。如果數(shù)據(jù)量達到一百萬的時候,決策樹能達到十幾二十層的規(guī)模,如果數(shù)據(jù)量到了一百億的時候決策樹可能要到三十幾層。
現(xiàn)在,我們強調(diào)更深的決策樹,這可能和教科書講的相矛盾。矛盾的原因是現(xiàn)在整個場景下數(shù)據(jù)量變大,所以要做更深的決策樹。當(dāng)然,我們也不一定在所有的場景里都有很大數(shù)據(jù)量,如果遇到了數(shù)據(jù)量小的場景,我們也要知道決策樹是要做淺的。最根本來說,就是看有多少數(shù)據(jù),能寫出多復(fù)雜的模型。
問題三:特征選擇不能超過一千個
有些教科書會單獨開個章節(jié)來講特征選擇,告訴我們在拿到數(shù)據(jù)后,要先刪除一些不重要的特征,甚至有的教科書注明,特征數(shù)不能超過一千,否則模型效果不好。但其實這個結(jié)論也是有前提條件的,如果數(shù)據(jù)量少,是不能夠充分支撐很多特征,但如果數(shù)據(jù)量大,結(jié)論就會不一樣。這也就是為什么我們做LogisticRegression會有幾十億個特征,而不是限制在幾百個特征。
過去傳統(tǒng)數(shù)據(jù)分析軟件,如SAS,之所以只有幾百個特征,是因為它誕生于上世紀(jì)七十年代,它面臨的問題是在具體場景下沒有太多可用數(shù)據(jù),可能只有幾百上千個樣本。因此,在設(shè)計系統(tǒng)時,就只需要針對幾百個特征設(shè)計,不需要幾十億個特征,因為上千個樣本無法支撐幾十億特征。但現(xiàn)在,隨著數(shù)據(jù)量增加,特征量也需要增加。所以我認為,在大數(shù)據(jù)環(huán)境下,整個機器學(xué)習(xí)教科書里關(guān)于特征選擇的章節(jié)已經(jīng)落后于時代,需要根據(jù)新的形式重新撰寫;當(dāng)然在小數(shù)據(jù)場景下,它仍然具有價值。
問題四:集成學(xué)習(xí)獲得最好學(xué)習(xí)效果
第四個叫做集成學(xué)習(xí),這個技術(shù)在各種數(shù)據(jù)挖掘比賽中特別有用,比如近些年KDDCUP的冠軍幾乎都是采用集成學(xué)習(xí)。什么是集成學(xué)習(xí)?它不是做一個模型,而是做很多(例如一千個)不一樣的模型,讓每個模型投票,投票的結(jié)果就是最終的結(jié)果。如果不考慮資源限制情況,這種模式是效果最好的。這也是為什么KDDCUP選手們都選擇集成學(xué)習(xí)的方式,為了追求最后效果,不在乎投入多少,在這種條件下,集成學(xué)習(xí)就是最好的方式。
但在現(xiàn)實中,企業(yè)做機器學(xué)習(xí)追求的不是用無限的資源做盡可能好的效果,而是如何充分利用有限資源,獲得最好效果。假設(shè)企業(yè)只有兩臺機器,如何用這兩臺機器獲得最好的效果呢?如果采用集成學(xué)習(xí),用兩臺機器跑五個模型,就要把兩臺機器分成五份,每個模型只能用0.4臺機器去跑,因此跑的數(shù)據(jù)量就有限。那如果換種方式,不用集成學(xué)習(xí),就用一個模型去跑,就能跑5倍的數(shù)據(jù)。通常5倍的數(shù)據(jù)量能比集成學(xué)習(xí)有更好的效果。在工業(yè)界比較少會應(yīng)用集成學(xué)習(xí),主要是因為工業(yè)界絕大多數(shù)的場景都是資源受限,資源受限時最好的方式是想辦法放進去更多的數(shù)據(jù)。集成學(xué)習(xí)因為跑更多的模型導(dǎo)致只能放更少的數(shù)據(jù),工業(yè)機器人維修,通常這種效果都會變差。
問題五:正樣本和負樣本均衡采樣到1:1
第五個叫做均衡采樣,絕大多數(shù)的教科書都會講到。它是指如果我們訓(xùn)練一個模型,正樣本和負樣本很不平均,比如在正樣本和負樣本1:100的情況下,就需要對正、負樣本做均衡采樣,把它變成1:1的比例,這樣才是最好的。但其實這個結(jié)論不一定對,因為統(tǒng)計學(xué)習(xí)里最根本的一條原理就是訓(xùn)練場景和測試場景的分布要一樣,所以這個結(jié)論只在一個場景下成立,那就是使用模型的場景中正、負樣本是1:1,那這個結(jié)論就是對的。