1. 程式人生 > >周誌華:關於機器學習的一點思考

周誌華:關於機器學習的一點思考

個數 報告 strong 自己 兩個 復雜度 地面 下機 組織

周誌華:關於機器學習的一點思考

https://mp.weixin.qq.com/s/sEZM_o5D6AhyMgvocbsFhw

演講:周誌華

整理:肖琴、聞菲

【新智元導讀】機器學習如今大獲成功的原因有哪些?如何才能取得進一步的突破?南京大學周誌華教授在AI WORLD 2018大會上分享他關於機器學習的一點思考:我們需要設計新的、神經網絡以外的深度模型;讓智能體在弱監督條件下也能夠學習,以及考慮開放動態任務環境下的學習。

播放

震撼!AI WORLD 2018世界人工智能峰會開場視頻

南京大學計算機系主任、人工智能學院院長周誌華分享了他《關於機器學習的一點思考》。周誌華教授表示,當前機器學習成功的背後,實際上離不開三點:1)有效的深度模型,現階段基本上就是深度神經網絡;2)存在強監督信息,也即數據都要有標註,而且越精準越好;3)學習的環境較為穩定。

因此,如果未來機器學習要取得進一步突破,就必須:1)設計新的、多樣化的深度模型;2)讓智能體能夠在弱監督條件下學習;3)考慮開放動態任務環境下的學習。

周誌華教授說,機器學習界早就很清楚,“沒有免費的午餐”,也即任何一個模型可能只適用於一部分的任務,而另外一些任務是不適用的。例如,Kaggle競賽中有各種各樣的任務,但在圖像、視頻、語音之外的很多任務上,比如訂機票、訂旅館之類,還是傳統機器學習技術(如隨機森林或XGBoost)表現更好,尤其是涉及符號建模、離散建模、混合建模等問題。

周誌華教授著重介紹了他帶領團隊提出的“深度森林”,這是一種以決策樹為基礎構建的深度模型。深度森林在超大型互聯網金融企業的非法套現檢測任務中,近2億的真實交易數據實測上,性能超越了包括深度神經網絡在內的其他模型。這也驗證了周誌華教授及其團隊的猜想——在很多其他任務上,非神經網絡的深度模型能找到用武之地。

不過,周誌華教授也表示,任何一個理論的提出,都需要經過長時間的發展與完善。深度森林目前尚處於初級階段,好比打開了“深度學習”這間小黑屋的一扇門,還有更多需要去探索。

周誌華:關於機器學習的一點思考

以下是南京大學計算機系主任、人工智能學院院長周誌華教授在AI WORLD 2018世界人工智能峰會上發表的演講。

周誌華:各位朋友,大家上午好!謝謝新智元楊總的邀請,前面一直沒有機會參加,今天很高興有這個機會。我本人從事的是機器學習方面的研究,今天就和大家匯報一些關於機器學習方面粗淺的看法,談一談機器學習發展取得了哪些成功,後面會有哪些問題值得進一步關註。

大家都知道,這一輪的人工智能熱潮很大程度上是由於機器學習,特別是其中深度學習技術取得了巨大的成功。可以說今天每個人、每天都在談機器學習,機器學習已經無所不在,各種各樣的智能應用當中如果離開了機器學習,基本上是不可想像的。

我們可能要問這樣一個問題:

機器學習取得了這麽多的成功,這些成功的背後到底是什麽呢?

大家常說,現在成功的智能應用後面有三個重要的條件:一是現在有大數據了,二是現在有很強大的計算能力了,三是我們在算法方面取得了很多突破。

這三個因素都特別重要,但今天我們將主要聚焦於機器學習技術本身,談一談機器學習技術本身取得這些進展,背後到底有哪些原因。

其實,無外乎就是三個因素:

1、能找到有效的深度模型

2、存在很多很強的監督信息

3、任務都是比較穩定的環境

現在所有成功的機器學習應用背後都離不開這三者,下面我們分別來看。

天下沒有免費的午餐,深度神經網絡必然有不適用的任務

首先是深度模型。

現在深度學習在圖像、視頻、語音這些數字信號建模任務當中取得了巨大的成功。如果我們問一問大家,“深度學習”是什麽?我想從絕大多數人那裏得到的答案都會是:

深度學習就是深度神經網絡,甚至認為“深度學習”就是“深度神經網絡”的同義詞,談到深度學習就要從深度神經網絡或者從神經網絡談起。

事實上,神經網絡並不是新事物,我們已經研究了半個多世紀,只不過以前我們通常研究的是有一個隱層或兩個隱層這種比較淺的神經網絡,其中每個計算單元都是非常簡單的模型。早在1943年,我們就已經把它抽象成了這樣一個非常簡單的數學公式,就是從外界收到輸入X,經過W放大,總的輸入如果要比θ高我們就會用激活函數處理進行輸出。這樣的模型到今天依然在沿用。

深度神經網絡帶來的最大區別是什麽呢?雖然有各種各樣的模型,各種各樣的算法,但是最根本的差別就是現在我們用了很多很多層

深度神經網絡最著名、最早的成功來自2012年,在計算機視覺領域最著名的ImageNet比賽上獲勝。當時這個獲勝的模型用了8層,2015年獲勝的模型用了152層,2016年就用到了1207層,今天幾千層的模型比比皆是。

實際上,這樣的模型當中有大量參數需要計算,所以需要非常復雜、非常龐大的計算系統。雖然現在我們有了很強的計算設備和很巧妙的算法,但是我們能夠做到這一切,根本的原因之一是神經網絡中基本計算單元激活函數是連續可微的。原來淺層神經網絡用的是左邊的函數,也是連續可微的,深度學習的年代我們通常會用右邊這樣的函數或變體。

不管怎麽樣,可微性給我們帶來了非常重要的結果,就是可以很容易地計算出梯度,基於梯度的調整就可以用著名的BP算法來訓練整個模型。

這一點非常重要,因為如果不是從事機器學習研究的朋友會覺得,神經網絡半個世紀之前就有了,到了今天我們之所以能夠做更深的神經網絡,只不過是因為計算能力強,現在能夠訓練了。實際上不是這樣的。

2006年之前,可以說我們都不知道怎麽訓練出5層以上的神經網絡,根本原因是一旦層數高了以後,用BP算法梯度就會消失,然後就不知道怎麽學習下去。所以,2006年的時候Geoffrey Hinton做了很重要的工作,通過逐層訓練來緩解梯度消失,使得深層模型能夠被訓練出來。後來有了一系列深度學習的工作,包括到今天為止的很多前沿研究,都是在防止深層網絡中梯度消失,使得梯度更新搜索能持續下去使訓練能夠完成。

神經網絡取得了非常大的成功,但任何一個模型都必然存在缺陷,神經網絡也是這樣。

常用神經網絡的朋友知道,現在深度神經網絡有很多問題。大家經常說的一件事情就是要花大量的精力調整參數,參數實在太多了。不僅如此,這還會帶來另外一個嚴重的問題:哪怕我告訴你同樣的算法、用同樣的數據,如果不告訴你參數是怎麽調的,可能就沒有辦法得到同樣的結果

此外,還有很多別的問題,比如我們現在用的神經網絡模型的復雜度是固定的,一旦先確定了一個模型,就把這個模型用下去。問題是,在解決一個現實問題之前,我們怎樣才能知道什麽樣的模型是最恰當的呢?我們不知道,所以通常會用一個過度復雜的模型來做問題,做的過程當中不斷把它簡化。

最近如果大家關心深度學習方面的一些前沿研究,可能就會發現現在有大量的論文是關於模型壓縮、模型簡化等等,事實上都是由這個原因導致的。我們能不能在使用模型的最初不要使用那麽復雜的東西?先使用一個比較簡單的,然後隨著數據和訓練的過程讓它自適應地、自動地提升復雜度呢?很遺憾,我們對神經網絡很難做到這一點,因為我們一旦用BP算法基於梯度搜索來做這件事情,如果事先結構都完全不知道,那麽求梯度的對象也就不知道了。

這裏有很多的問題,更不用說還有其它的缺陷,比如大的訓練數據、理論分析很困難、黑箱模型等等。

有些工業界的朋友可能會說,前面你們談到的這些缺陷都是從學術角度來說的,我關心實踐,只要性能好就行,至於學術上有什麽缺點我不關心。實際上就算從這個角度來看,可能也還有很多的需求希望我們去研究其它的模型。

如果我們真正看一看今天的深度神經網絡到底在哪些任務上取得了成功,其實我們可以看到無外乎主要就是圖像、視頻、語音,涉及到這些對象的任務。它們非常典型,都是一些數值信號建模的任務。而在很多其他的任務上,深度神經網絡表現並沒有那麽好,比如可能有的朋友接觸過Kaggle這個數據分析競賽的網站,上面每天都有很多數據分析的任務,有訂機票的,有訂旅館的,到今天為止,雖然深度學習網絡這麽成功,很多這樣的任務上我們可以看到獲勝的通常還是一些相對傳統的機器學習技術,而不是深度神經網絡。

事實上,機器學習界早就很清楚這件事情了,我們有一個經過嚴格證明的定理,叫做“沒有免費的午餐定理”,也就是任何一個模型可能只有一部分任務是適用的,另外一些任務是不適用的。

所以,雖然深度神經網絡在有些任務上很成功,但對別的應用來說,我們有沒有可能設計出新的模型,在這些任務取得以往沒有取得的效果?這可能也是非常值得關註的一件事情。

基於非可微構件、非神經網絡的深度模型,是下一步很值得探索的方向

如果我們重新審視深度模型自身的話,會發現今天我們所談的深度模型其實都是指深度神經網絡,而用更學術的話來說,這是由多層參數化可微的非線性模塊搭建起來的模型,而它本身能夠用BP算法去訓練

最近有些深度學習網絡的研究在考慮怎樣用一些不可微的激活函數,但是實際上是怎麽做的呢?先用了一個不可微的激活函數對現實建模,然後在優化的過程當中逐漸近似放松,最後還要把它變成一個可微的東西求解,所以最終還是離不開可微性。

但是,現實世界當中並不是所有規律都是可微的,或者能夠利用可微構件最優建模的,而且另一方面我們機器學習界早就經過了很多年的研究,也有很多不可微的構件,這些構件以後有沒有用呢?現在我們就在考慮這樣一個很基礎的問題,就是能不能基於不可微構件進行深度學習?

這個問題如果得到答案,我們可以得到一系列其它問題的答案,比如深度模型是不是只能用深度神經網絡來做?我們有沒有可能不通過BP算法來做出這種深度模型?我們能不能在圖像、視頻、語音之外的任務也能夠獲得一些深度模型,幫助我們獲得更好的性能?

最近我們的課題組做了一些研究,提出了一個新的模型叫做“深度森林”,這是不基於神經網絡來做的模型,它的基本構件是決策樹,本身是不可微的,所以不能用BP訓練,模型復雜度可以自己根據數據調整,超參數比深度神經網絡要小。除了大規模的圖像類任務之外,很多的任務上它的性能已經達到或者接近了深度神經網絡的性能。從學術上來說,特別值得關註的就是它是第一個非神經網絡,不使用BP算法訓練的深度學習模型

後來國際上關於這件事情也有一些反響和探討。Keras的創始人說,這種可微層是當前深度學習模型的根本弱點,現在我們的模型本身是不使用可微層的;深度學習的奠基人Geoffrey Hinton說放棄BP從頭開始,現在我們的模型就完全沒有使用BP算法。這類模型不一定僅限於“深度森林”這樣的模型,基於非可微構件、非神經網絡的深度模型可能是下一步很值得探討的方向。大家知道深度神經網絡已經研究了二十多年,再往下研究的空間可能不見得那麽大,但是其它的模型有沒有可能做深呢?一旦我們往前走了一步,可能會給我們帶來巨大的空間。

這只是學術上的意義,來自工業界做應用的朋友可能會問,應用上到底有什麽東西用它做比較好?在圖像、視頻、語音這些純的數值建模之外,涉及到符號數據、離散數據、混合建模的問題,可能是這種不可微模型能夠發揮作用的地方

比如最近我們和國內一個非常大的互聯網金融公司合作,做在線支付的非法套現檢測。這個公司非常大,大家每天都在接觸它,每天有大量的網上交易,比如在2016年“雙11”這一天,一天就有1億多交易是通過網上支付來做的。非法套現是一個很大的問題。

我們給大家看個結果,訓練數據用了1億3千多萬的真實交易,測試數據用了5千多萬真實交易,這可能是世界上最大的關於互聯網交易非法套現的數據。這家公司內部有一個大型分布式機器學習系統,他們的工程師很厲害,做了深度森林的大規模分布式實現,實測結果來看比系統中以往的模型包括深度神經網絡在內的性能都還要更好一些。這也驗證了我們所猜想的,在很多其它任務上,圖像、視頻、語音之外的任務上,非神經網絡模型能找到用武之地。

另外一方面,這畢竟只是一個起點,因為深度神經網絡研究了20多年,深度神經網絡經過幾十萬上百萬研究實踐者這麽多年的探索改進,而非神經網絡深度學習的研究才剛剛開始,只有幾個人做了一點點事情,未來有非常多可以探索的東西。任何一個新技術往前走的話都有很多工作要做。關於深度模型真正重要的意義是,以前我們以為深度學習只有深度神經網絡,現在知道這裏面可以有很多其它的東西。

當前機器學習高度依賴於強監督信息,弱監督學習還有很大空白

關於監督信息。對於一個機器來說,我們拿到很多數據之後,經過訓練得到模型,這個模型能夠發揮作用,能夠做精確預測。這裏面很重要的是我們需要有很多數據,而且這些數據需要有監督信息。

深度學習需要大量的樣本,2012年ImageNet獲勝的網絡已經用到超過1500多萬樣本,而現在的網絡越來越大,所需要的樣本越來越多。大家可能會有一個誤解,大數據時代數據樣本是不是不成問題?

其實不是的。

樣本需要標記,我們現在大量的人力物力都花在這件事上,比如前段時間有討論人工智能會不會使得一些職業消亡。是不是消亡我們沒看到,但是我們已經看到一個新的職業,就是數據標註已經變成一個產業。這件事情不管它好還是不好,反正它就在那兒,至少告訴我們機器學習技術現在對強監督信息是高度依賴的

談到這件事可能有的朋友會想到前段時間很熱門的AlphaGo,最早的AlphaGo使用人類職業六段以上的所有棋局,超過16萬棋局進行學習。後來發明了AlphaZero,不使用人類棋局,通過兩個程序直接對弈提升性能,這樣是不是不需要監督信息了呢?

所謂的AlphaZero,DeepMind說它是“從零開始學習”,第一天沒有任何數據,第三天超過戰勝李世石的版本,第21天超過Alpha Master,第40天達到人類見到的最強能力。中間沒有用任何人類的棋局,這是不是意味著它背後的強化學習技術真的不需要監督信息?

其實不是這樣的。因為非常重要的一點,是當兩個程序在對弈的時候,我們一定能夠判斷出勝負,而勝負規則是非常強的監督信息,是上帝判斷。

打個比方來說,我要建一個能抵抗18級臺風的橋,事先不知道怎麽建,沒有人教我怎麽建,不管怎麽樣,如果我能建出一個東西來,就有一個“上帝”告訴我,你這個東西能扛過去、那個東西扛不過去,有了這個指導信息,經過不斷摸索最後就可能把這個橋建出來。

真正的現實應用中哪裏能得到這樣的上帝規則?根本得不到。我們也不可能通過無成本探索像圍棋這樣獲得大量的樣本。我們沒有辦法去做真正的不需要任何數據,不需要任何標記的學習。

我們現在能做的還是要往弱監督學習上做。

所謂的弱監督學習,就是希望監督信息不用那麽多了,稍微少一點,它還是能夠工作得很好。舉幾個典型的弱監督學習的例子:在醫院裏診斷乳腺圖像的影像,希望看到影像中有沒有鈣化點。一個醫院有很多數據,比如100萬幅圖像,但是醫生只標註了一萬幅,有99萬幅沒有標記,這種叫做監督信息不完全。

第二種情況,可能醫生只告訴我們這個圖像裏面有病竈,但是病竈在哪兒沒標出來,這時候我們把它叫監督信息不具體。

還有更多的情況,比如醫生由於疲勞、疏忽等標註中間有錯誤,我們就把它叫做監督信息不精確,這是三種典型的情況。

事實上很多應用裏這些問題都普遍存在,大量的應用都能看到這三種情況。對這些情況事實上機器學習界有一些探索,比如第一種情況我們做半監督學習、主動學習;第二種情況有多示例學習,有MIML;第三種有眾包學習、帶噪學習。這是好的一方面。

另一方面,強監督學習我們已經研究很多,非常典型的弱監督學習也已經有研究,但是還有更多的弱監督狀態,例如這個圖中幾朵雲之間的過渡狀態,這些狀態有的連學術探討的文獻都還很少見。

關於弱監督學習,應該說還有大量的事情需要我們去做。

開放環境下的機器學習研究是通往魯棒人工智能的重要環節

接下來談一談任務環境。

機器學習現在取得勝利,基本上都是在封閉靜態環境裏面。我們要假定很多東西都是固定的,比如我們要假定所有的數據都來自於獨立同分布,數據分布恒定。

我們通常要假定樣本類別恒定,訓練數據只能讓我識別蘋果和梨,以後給我的東西我就只會識別成蘋果和梨,給我一個菠蘿也會只從蘋果和梨當中選擇一個,判斷到底是兩個中間的哪個。

樣本屬性也是恒定的。樣本裏面用一百個屬性來描述我的數據,預測的時候也要把這一百個屬性給我,中間不能發生變化。

甚至我們的目標也要恒定。一個模型好,我們就認為它就是好的,不管對誰來說都應該是一個好的模型。

事實上,我們現在越來越多地碰到所謂的開放動態環境。在這樣的環境中可能一切都會發生變化。

現在有一條船開到海上去,我們不斷搜集海面的數據來做導航,可以知道今年在海上碰到的海冰分布和去年就是不一樣的,這個數據其實每年都在變。這就是數據分布發生變化。

我們碰到以前沒有見過的困難情況,這是新的類別。如果把船開到兩極地區,由於環境惡劣,接入困難等等,有的屬性丟失了拿不到,這時候我們怎麽辦?是不是屬性不夠就不能做預測,不能用了呢?

最後,我們同時要兼顧很多目標,只考慮一種目標得出來的模型往往可能是不能用的模型,必須要多個目標都不錯才能用。

可能會出現很多的變化,但是不管什麽樣的變化出現,我們都希望好的時候要好,壞的時候不能太壞。這時候模型的魯棒性是一個很根本的要求。

關於這個問題,可能有的朋友如果對機器學習比較熟悉的話,馬上就會想到,不是有一種強化學習技術嗎?這種強化學習技術是通過跟環境交互來進行學習的,它不就自動能適應環境嗎?

事實上這可能是一個誤解,現在雖然已經有很多強化學習的研究,包括用強化學習來打遊戲,在很多遊戲上獲得勝利等等,看起來是和環境交互,但事實上,在整個強化學習的經典假定裏面,它所考慮的是狀態在環境中的變化,但是環境本身的基本規則比如下圍棋的遊戲規則,在遊戲過程中是不變的。

絕對不是說在學習的過程中是一種環境,在用的時候環境變化了,我這個模型還能用,那是不行的。比方說訓練下棋模型的時候原來是什麽規則,以後模型使用的時候仍然是這樣一種規則環境。

這個問題使用傳統強化學習技術還遠遠解決不了。

國際上怎麽看這件事?

在國際人工智能大會(AAAI)Tom Dietterich教授做了一個主席報告,叫“通往魯棒的人工智能”,特別提到現在人工智能技術取得巨大發展,越來越多地面臨高風險應用。

所謂高風險應用是指自動駕駛汽車、自主武器、遠程輔助外科手術等等,這一類應用無一例外都是一旦出現了問題,會造成巨大的損失。所以,我們才希望不要出問題,希望學習過程必須有魯棒性。

他提出未來的人工智能系統需要能夠應對未知情況,他給了一個說法,叫做“Unknown Unknowns”,指的就是開放環境。開放環境下機器學習研究是通往魯棒人工智能的非常重要的環節。

最近有另外一個消息,美國國防部宣布開發下一代人工智能技術,用一句話來說,“旨在開發能夠進行學習並適應不斷變化環境的機器”。這句話其實就是把所謂的開放動態環境下的學習換了一個表述,並且用到軍事應用裏去。

從學術上來說,我們組裏對這件事關註得比較早,有一些探索,前面Dietterich教授的報告也提到了我們的一點工作。這張片子裏面是我們最近關於應付各種變化的一些探索性工作。

最近OpenAI組織了一個強化學習的比賽,比賽內容是打遊戲。最近這段時間可能大家聽到關於人工智能技術來打遊戲的消息有不少了,比如DeepMind的消息等等。現在我們說的這件事和其他那些有什麽不同呢?

以前打遊戲的時候是把告訴你要打什麽遊戲,學習程序可以把整個遊戲都玩一遍,玩夠之後再和人玩,也就是說訓練的時候可以看到所有的場景。

而這個比賽和以前不太一樣的是,它給我們的訓練場景和測試場景是完全不一樣的,訓練場景58個關卡,測試11個關卡,環境變化非常明顯,最重要的是考驗我們怎麽去適應環境變化的能力。

這個比賽我們組俞揚博士和合作者在200多個隊伍裏面獲得冠軍。他們最重要是使用了兩個小技術,都是我們自己做出來的技術。

第一個是2004年我們提出的叫“二次學習技術”,先學一個模型,再做第二次學習得到進一步的加強。這個技術後來被Geoffrey Hinton重新命名為Knowledge Distillation。

另外一個技術是我們通過集成學習研究得到啟發,引入多樣性激勵。如果只使用傳統強化學習環境的激勵,進去好的狀態之後就很難再探索了;而現在引入多樣性激勵之後,一個地方做得好,會自動去探索別的地方。

我們這兩個原創的小技術結合起來得到一個好的結果,比拿別人發明的技術獲勝做起來更好玩。

總結一下,現在機器學習成功的背後主要有三個原因,有效的深度模型,存在強監督信息以及學習環境比較穩定。但是,現實應用裏面這三件事情都不成立,有的場合可能還沒有很適合的深度學習模型,監督信息也不夠強,任務環境不斷變化等等。

所以下一步,機器學習的研究或者應用特別要關註研究新型深度模型、弱監督學習以及開放環境的學習。

這只是我自己一些非常粗淺的看法,不一定準確,僅供大家批評,謝謝!

周誌華:關於機器學習的一點思考