*若是但願瞭解機器學習,或者已經決定投身機器學習,你會第一時間找到各類教材進行充電,同時在心中默認:書裏講的是牛人大神的畢生智慧,是正確無誤的行動指南,認真學習就能得到快速提高。但實際狀況是,你極可能已經在走彎路。網絡
科技發展很快,數據在指數級增加,環境也在指數級改變,所以不少時候教科書會跟不上時代的發展。有時,即使是寫教科書的人,也不見得都明白結論背後的「因此然」,所以有些結論就會落後於時代。針對這個問題,第四範式創始人、首席執行官戴文淵近日就在公司內部分享上,向你們介紹了機器學習教材中的七個經典問題。戴文淵是ACM世界冠軍(2005年),「遷移學習」全球領軍人物,在遷移學習領域單篇論文引用數至今仍排名世界第三。曾任百度鳳巢策略的技術負責人、華爲諾亞方舟實驗室主任科學家。機器學習
本文根據演講實錄整理,略有刪減。*分佈式
有時咱們會發現,在實際工做中,應該怎麼作和教科書講的結論相矛盾,這時候要怎麼辦呢?難道教科書中的結論出錯了?事實上,有時確實如此。因此今天我就想和你們分享一下機器學習教材中的一些經典問題,但願對你們從此的工做和學習有所幫助。學習
問題一:神經網絡不宜超過3層測試
這是最有名錯誤判斷,如今的教科書幾乎已經再也不有這樣的結論,但若是看15年、20年前的機器學習教科書,會有一個頗有趣的結論:神經網絡不能超過三層。這和咱們如今說的深度學習是矛盾的,深度學習如今你們比拼的不是神經網絡能不能超過三層,而是能不能作出一百層、一千層或者更多。大數據
那爲何以前的教科書上會寫神經網絡不能超過三層,這就要從神經網絡的歷史提及。五十年代有位科學家叫Marvin Minksy,他是一位生物學家,數學又很好,因此他在研究神經元的時候就在想能不能用數學模型去刻畫生物的神經元,所以就設計了感知機。感知機就像一個神經細胞,它能像神經細胞同樣連起來,造成神經網絡,就像大腦的神經網絡。其實在60年代開始的時候,是有很深的神經網絡,但當時通過大量實驗發現,不超過三層的神經網絡效果不錯,因而大概到80年代時就得出結論:神經網絡不宜超過三層。人工智能
那爲何如今這條結論又被推翻了呢?實際上這條結論是有前提條件的,即在數據量不大的狀況下,神經網絡不宜超過三層。而從2005年開始,你們發現隨着數據增長,深度神經網絡的表現良好,因此慢慢走向深度學習。其實這裏真正正確的原理是Valiant引理,它能夠理解爲「模型複雜度(例如專家系統的規則數量)要和數據量成正比」。數據量越大,模型就越複雜。上個世紀由於數據量小,因此神經網絡的層數不能太深,如今數據量大,因此神經網絡的層數就要作深。這也解釋了爲何當時教科書會有這樣的結論,而如今隨着深度學習的流行,你們已經再也不會認爲這句話是對的。spa
問題二:決策樹不能超過五層設計
若是有同窗看教科書上介紹決策樹,會有一個說法就是決策樹要減枝,決策樹若是不減枝效果很差。還有教科書會告訴決策樹不能超過五層,超過五層的決策樹效果很差。這個結論和神經網絡結論同樣,神經網絡不能超過三層也是由於當時數據量不大,決策樹不能超過五層也是由於上個世紀數據量不夠大,二叉樹決策樹若是深度是N的話,複雜度大概是2的N次方,因此不超過五層複雜度也就是三十多。若是數據量達到一百萬的時候,決策樹能達到十幾二十層的規模,若是數據量到了一百億的時候決策樹可能要到三十幾層。圖片
如今,咱們強調更深的決策樹,這可能和教科書講的相矛盾。矛盾的緣由是如今整個場景下數據量變大,因此要作更深的決策樹。固然,咱們也不必定在全部的場景裏都有很大數據量,若是遇到了數據量小的場景,咱們也要知道決策樹是要作淺的。最根原本說,就是看有多少數據,能寫出多複雜的模型。
問題三:特徵選擇不能超過一千個
有些教科書會單獨開個章節來說特徵選擇,告訴咱們在拿到數據後,要先刪除一些不重要的特徵,甚至有的教科書註明,特徵數不能超過一千,不然模型效果很差。但其實這個結論也是有前提條件的,若是數據量少,是不可以充分支撐不少特徵,但若是數據量大,結論就會不同。這也就是爲何咱們作LogisticRegression會有幾十億個特徵,而不是限制在幾百個特徵。
過去傳統數據分析軟件,如SAS,之因此只有幾百個特徵,是由於它誕生於上世紀七十年代,它面臨的問題是在具體場景下沒有太多可用數據,可能只有幾百上千個樣本。所以,在設計系統時,就只須要針對幾百個特徵設計,不須要幾十億個特徵,由於上千個樣本沒法支撐幾十億特徵。但如今,隨着數據量增長,特徵量也須要增長。因此我認爲,在大數據環境下,整個機器學習教科書裏關於特徵選擇的章節已經落後於時代,須要根據新的形式從新撰寫;固然在小數據場景下,它仍然具備價值。
問題四:集成學習得到最好學習效果
第四個叫作集成學習,這個技術在各類數據挖掘比賽中特別有用,好比近些年KDD CUP的冠軍幾乎都是採用集成學習。什麼是集成學習?它不是作一個模型,而是作不少(例如一千個)不同的模型,讓每一個模型投票,投票的結果就是最終的結果。若是不考慮資源限制狀況,這種模式是效果最好的。這也是爲何KDDCUP選手們都選擇集成學習的方式,爲了追求最後效果,不在意投入多少,在這種條件下,集成學習就是最好的方式。
但在現實中,企業作機器學習追求的不是用無限的資源作儘量好的效果,而是如何充分利用有限資源,得到最好效果。假設企業只有兩臺機器,如何用這兩臺機器得到最好的效果呢?若是採用集成學習,用兩臺機器跑五個模型,就要把兩臺機器分紅五份,每一個模型只能用0.4臺機器去跑,所以跑的數據量就有限。那若是換種方式,不用集成學習,就用一個模型去跑,就能跑5倍的數據。一般5倍的數據量能比集成學習有更好的效果。在工業界比較少會應用集成學習,主要是由於工業界絕大多數的場景都是資源受限,資源受限時最好的方式是想辦法放進去更多的數據。集成學習由於跑更多的模型致使只能放更少的數據,一般這種效果都會變差。
問題五:正樣本和負樣本均衡採樣到1:1
第五個叫作均衡採樣,絕大多數的教科書都會講到。它是指若是咱們訓練一個模型,正樣本和負樣本很不平均,好比在正樣本和負樣本1:100的狀況下,就須要對正、負樣本作均衡採樣,把它變成1:1的比例,這樣纔是最好的。但其實這個結論不必定對,由於統計學習裏最根本的一條原理就是訓練場景和測試場景的分佈要同樣,因此這個結論只在一個場景下成立,那就是使用模型的場景中正、負樣本是1:1,那這個結論就是對的。
正確的作法是,應用場景是1:100,那訓練集合最好也是1:100。均衡採樣不必定都是對的,多數狀況下不採樣反而纔是正確的。由於大多時候,咱們直接把訓練集合和測試集合作隨機拆分,或者按照時間拆分,兩者的分佈就是一致的,那個時候不採樣是最好的。固然有時候,咱們也會發現作負樣本採樣會有更好的效果,好比範式在爲某股份制銀行卡中心作交易反欺詐時,就作了負樣本採樣,那是由於當咱們把全部樣本都放進去後,發現計算資源不夠,因此只能作採樣。正樣本與負樣本大概是1:1000或者1:10000,若是對正樣本作採樣,損失信息量會比較大,因此咱們選擇對負樣本採樣,好比作1:1000的採樣,再把負樣本以1000的加權加回去。在資源受限時這麼作,會盡量下降信息量的損失。但若是僅僅是爲了把它作均衡而作負樣本採樣,一般是不對的。和前面幾個問題不一樣,負樣本採樣並非因環境改變而結論變化,事實上就不該該作負樣本採樣。
問題六:交叉驗證是最好的測試方法
下一個問題叫作交叉驗證,是指假設要將一份數據拆分紅訓練集和測試集,這個時候怎麼評估出它的偏差?交叉驗證是把集合拆成五份,取四份作訓練集、一份作測試集,而且每次選擇不一樣的那一份作測試級,最後測出五個結果再作平均,這被認爲是最好的測試方法。
交叉驗證確實是一個還不錯的驗證的方法,但在現實應用場景下,它每每不是最合適的一種方式。由於一般來講,咱們用機器學習作的事情是預測,絕大多數狀況下咱們是用如今或者過去的數據作一個模型來預測將來。而拿過去的訓練預測將來的最好測試方法不是交叉驗證,由於交叉驗證是按照交易或者按人拆分的。最合適的是方法實際上是按照時間拆分,好比評估的時候選取一個時間點,用在這個時間點以前的數據作訓練,預測在這個時間點以後的,這是最接近真實應用場景的評估結果。
交叉驗證可能只適用於和時間屬性不相關的場景,好比人臉識別,但咱們面臨更多的應用場景,不管是風險、營銷或者反欺詐,都是在用過去的數據訓練後預測將來,最合適這樣場景的評估方法不是交叉驗證,而是按照時間去拆分。
問題七:過擬合必定很差
最後一個叫過擬合,這也是一個討論特別多的話題。之前,一般咱們會說若是模型作的太複雜了就會過擬合,如PPT右邊所示,而最好的方式應該是圖中中間的狀態——擬合的剛恰好,圖中左邊的模型underfitting,沒有訓練徹底。但如今來看,大多數的實際場景都是在拿過去預測將來,過擬合不必定是很差的,仍是要看具體場景。若是這個場景是過去見過的狀況比較多,新的狀況比較少的時候,過擬合反卻是好的。
打個比方,若是期末考試題就是平時的做業,那咱們把平時的做業都背一遍就是最好的方式,而這就是過擬合。若是期末考試不考平時做業,全是新題,那麼這個時候就不能只背平時的做業,還要充分理解這門課的知識,掌握如何推理解題的技巧。因此過擬合好壞與否,徹底取決於場景。若是應用場景依靠死記硬背就能搞定,那過擬合反卻是好的。實際上在咱們的設計裏面,不少時候咱們會傾向於往過擬合靠一點,可能作新題會差一點,可是對於死記硬背的送分題會作的很是好。在拿過去預測將來的應用場景下,有的時候過擬合不必定很差,要根據實際狀況來看。
今天與你們分享了教科書中的幾個經典問題。其實在實際工業應用中,咱們不會徹底按照教科書中的方式去實踐。咱們也會設計很深的模型、很深的決策樹、不少的特徵、會過擬合一點,咱們更強調按時間拆分,不強調均衡採樣。面對教科書中的結論,咱們須要學會的是根據實際場景作出相應靈活判斷。
小式八月福利:第四範式·先知是大規模分佈式機器學習的全流程平臺,幫助企業解決業務增加難題,打造以人工智能爲核心驅動的新增加點。如今,「先知平臺」試用版已經正式對外開放,歡迎訪問prophet.4paradigm.com免費註冊使用。