當前位置:
首頁 > 新聞 > 周志華最新演講:深度學習為什麼深?有多好的人才,才可能有多好的人工智慧

周志華最新演講:深度學習為什麼深?有多好的人才,才可能有多好的人工智慧

演講人:周志華

【新智元導讀】在昨天舉行的2018京東人工智慧創新峰會上,南京大學計算機系主任、人工智慧學院院長周志華教授進行了題為《關於深度學習的思考》的主題演講。周志華教授提出,人工智慧時代最缺的就是人才,因為對這個行業來說,你有多好的人才,才可能有多好的人工智慧。

昨天,2018京東人工智慧創新峰會舉行,京東集團副總裁、AI 平台與研究部負責人周伯文揭開了京東技術布局下的 AI 戰略全景圖。這個全景圖概括起來說就是「三大主體、七大應用場景和五個人工智慧產業化的布局方向」,即:以 AI 開放平台 、AI 基礎研究、AI 商業創新三個主體,通過產學研相結合,高端人才培養,以及核心人才引進打造科技能力,將 AI 用於金融科技、智慧物流、智能消費、智能供應、對外賦能。在峰會上,京東AI開放平台NeuHub正式發布,「JD Dialog Challenge」 全球首屆任務導向型多輪對話系統大獎賽正式啟動。

會上,南京大學計算機系主任、人工智慧學院院長周志華教授進行了題為《關於深度學習的思考》的主題演講。周志華教授從深度學習的理論基礎說起,從模型複雜度的角度探討了「深度神經網路為什麼深」的問題,提出深度學習在有很多成功應用的同時,也存在調參困難、可重複性差等問題,在很多任務上並不是最好的選擇。因此,探索深度神經網路之外的模型是很重要的挑戰。

周志華教授最後提到人工智慧產業發展的看法,他說,「人工智慧時代最缺的就是人才。因為對這個行業來說,你有多好的人才,才可能有多好的人工智慧。」近日,新智元報道周志華教授出任京東集團人工智慧研究院學術委員會委員,同時京東集團已啟動在南京建立京東人工智慧研究院南京分院,周志華教授將擔任該分院學術總顧問。南京大學將在AI人才培養等方面和京東展開密切合作。

以下是周志華教授的演講內容:

周志華:

首先很高興今天來參加京東的活動,各位可能最近都聽說我們南京大學成立了人工智慧學院,這是中國的 C9 高校的第一個人工智慧學院。我們和京東會在科學研究和人才培養等方面開展非常深入的合作,具體的合作內容可能過一段時間會陸續地告訴大家。

感謝周伯文博士的邀請。來之前我問他今天說點什麼好,他告訴我在座的有不少技術人士,建議我談談關於一些前沿學術問題的思考,所以今天我就跟大家談一談我們關於深度學習的一點點非常粗淺的看法,僅供大家來批評,一起來討論。我們都知道直接掀起人工智慧熱潮的最重要的技術之一,就是深度學習技術。今天,其實深度學習已經有各種各樣的應用,到處都是它,不管圖像也好,視頻也好,聲音自然語言處理等等。那麼我們問一個問題,什麼是深度學習?


深度學習的理論基礎尚不清楚

我想大多數人的答案,就是深度學習差不多就等於深度神經網路。有一個非常著名的學會叫SIAM,是國際工業與應用數學學會,他們有一個旗艦的報紙叫SIAM news。在去年的 6 月份,這個報紙的頭版上就有這麼一篇文章,直接就說了這麼一句話,說深度學習是機器學習中使用深度神經網路的的子領域

所以如果我們要談深度學習的話,是繞不開深度神經網路的。首先我們必須從神經網路說起。神經網路其實並不是一個新生事物,神經網路可以說在人工智慧領域已經研究了超過半個世紀。但是以往的話,一般我們會用這樣的神經網路,就是中間有一個隱層,或者有兩個隱層。在這樣的神經網路裡面,它的每一個單元是個非常簡單的計算模型。我們收到一些輸入,這些輸入通過一些連接放大,它就是這麼一個非常簡單的公式。所謂的神經網路,是很多這樣的公式經過嵌套迭代得到的一個系統。那麼今天當我們說用深度神經網路的時候,其實我們指的是什麼?簡單來說,就是我們用的層數會很深很深,很多層。在 2012 年深度學習剛剛開始受到大家重視的時候,那時候 ImageNet競賽的冠軍是用了8層的神經網路。那麼到了 2015 年是用了 152 層,到了 2016 年是 1207層。這是個非常龐大非常巨大的系統,把這麼一個系統訓練出來,難度是非常大的。

有一點非常好的消息。神經網路裡面的計算單元,最重要的激活函數是連續的、可微的。比如說我們在以往常用這樣的sigmoid函數,它是連續可微的,現在大家常用的ReLu函數或者它的變體,也是這樣。這使得我們可以容易地進行梯度計算,這樣就可以很容易用著名的BP演算法來訓練。通過這樣的演算法,我們的神經網路已經取得了非常多的勝利。

但是實際上在學術界大家一直沒有想清楚一件事情,就是我們為什麼要用這麼深的模型?今天深度學習已經取得了很多的成功,但是有一個很大的問題,就是理論基礎不清楚。我們理論上還說不清楚它到底是怎麼做,為什麼會成功,裡面的關鍵是什麼?如果我們要做理論分析的話,我們先要有一點直覺,知道它到底為什麼有用?這樣才好著手去分析。 但現在其實我們根本就不知道該從什麼角度去看它。


深度學習為什麼深?模型複雜度的角度

關於深度神經網路為什麼能深呢?到今天為止,學術界都還沒有統一的看法。有很多的論述。我在這裡面跟大家講一個我們前段時間給出的一個論述。這個論述其實主要是從模型的複雜度的角度來討論。

我們知道一個機器學習模型,它的複雜度實際上和它的容量有關,而容量又跟它的學習能力有關。所以就是說學習能力和複雜度是有關的。機器學習界早就知道,如果我們能夠增強一個學習模型的複雜度,那麼它的學習能力能夠提升。那怎麼樣去提高複雜度,對神經網路這樣的模型來說,有兩條很明顯的途徑。一條是我們把模型變深,一條是把它變寬。如果從提升複雜度的角度,那麼變深是會更有效。當你變寬的時候,你只不過是增加了一些計算單元,增加了函數的個數,在變深的時候不僅增加了個數,其實還增加了它的嵌入的程度。所以從這個角度來說,我們應該嘗試去把它變深。

那大家可能就會問了,那既然要變深,那你們早就不知道這件事了嗎?那麼現在才開始做?這就涉及到另外一個問題,我們把機器學習的學習能力變強了,這其實未必是一件好事。因為機器學習一直在鬥爭的一個問題,就是經常會碰到過擬合(overfit)。這是一種什麼樣的現象?你給我一個數據集,我做機器學習要把數據集裡面的東西學出來,學出來之後,我希望學到的是一般規律,能夠用來預測未來的事情。但是有時候呢我可能把這個數據本身的一些特性學出來了,而不是一般規律。錯誤地把它當成一般規律來用的時候,會犯巨大的錯誤。這種現象就是所謂的過擬合

那為什麼我們會把這個數據本身的一些特性學出來呢?其實大家都很清楚,就是因為我們的模型學習能力太強。當你的能力非常非常強的時候,你可能就把一些特性學出來,當成一般規律。所以我們以往通常不太願意用太複雜的模型。

那現在我們為什麼可以用這樣的模型?有很多因素。第一個因素是現在我們有很大的數據。比如說我手上如果只有 3000 個數據,那我學出來的特性一般不太可能是一般規律。但是如果有 3000 萬,3000 萬萬的數據,那這個數據裡面的特性可能本身就已經是一般規律。所以使用大的數據是緩解過擬合的一個關鍵的途徑。第二,今天我們有了很多很強大的計算設備,這使得我們能夠訓練出這樣的模型。第三,通過我們這個領域很多學者的努力,有了大量的訓練這樣複雜模型的技巧、演算法,這使得我們使用複雜模型成為可能。總結一下就是:第一我們有了更大的數據;第二我們有強力的計算設備;第三我們有很多有效的訓練技巧。這導致我們可以用高複雜度的模型,而深度神經網路恰恰就是一種很便於實現的高複雜度模型。

所以用這麼一套理論,好像是能夠解釋我們現在為什麼能夠用深度神經網路,為什麼深度神經網路能成功?就是因為複雜度大。在一年多之前,我們把這個解釋說出來的時候,其實國內外很多同行也還很贊同,覺得還蠻有道理的。但是其實我自己一直對這個解釋不是特別的滿意,因為一個潛在的問題我們一直沒有回答。


深度神經網路最重要的是表示學習的能力

如果從複雜度這個角度去解釋的話,我們就沒法說清楚為什麼扁平的(flat),或者寬的網路做不到深度神經網路的性能?實際上我們把網路變寬,雖然它的效率不是那麼高,但是它同樣也能起到增加複雜度的能力。

實際上只要有一個隱層,加無限多的神經元進去,它的複雜度也會變得很大。但是這樣的模型在應用裡面怎麼試,我們都發現它不如深度神經網路好。所以從複雜度的角度可能很難回答這個問題,我們需要一點更深入的思考。所以我們要問這麼一個問題:深度神經網路裡面最本質的東西到底是什麼?

今天我們的回答是,表示學習的能力。以往我們用機器學習解決一個問題的時候,首先我們拿到一個數據,比如說這個數據對象是個圖像,然後我們就用很多特徵把它描述出來,比如說顏色、紋理等等。這些特徵都是我們人類專家通過手工來設計的,表達出來之後我們再去進行學習。而今天我們有了深度學習之後,現在不再需要手工去設計特徵了。你把數據從一端扔進去,模型從另外一端就出來了,中間所有的特徵完全可以通過學習自己來解決。所以這就是我們所謂的特徵學習,或者說表示學習。這和以往的機器學習技術相比可以說是一個很大的進步。我們不再需要依賴人類專家去設計特徵了。

有些朋友經常說的一個東西是端到端學習。對這個其實我們要從兩方面看,一方面,當我們把特徵學習和分類器的學習聯合起來考慮的時候,可以達到一個聯合優化的作用,這是好的方面。但是另外一方面,如果這裡面發生什麼我們不清楚,這樣的端到端學習就不一定真的是好的。因為裡面很可能第一個部分在往東,第二個部分在往西,合起來看,好像它往東走的更多一點,其實內部已經有些東西在抵消了。所以實際上機器學習裡面早就有端到端學習,比如說我們做特徵選擇,可能大家知道有一類基於wrapper的方法,它就是端到端的學習,但這類方法是不是比別的特徵選擇方法一定強呢?不一定。所以這不是最重要的。

真正重要的還是特徵學習,或者表示學習。那如果我們再問下一個問題,表示學習最關鍵的又是什麼呢?我們現在有這麼一個答案,就是逐層的處理。我引述最近非常流行的一本書,《深度學習》這本書裡面的一個圖,當我們拿到一個圖像的時候,我們如果把神經網路看作很多層,首先它在最底層,好像我們看到的是一些像素這樣的東西。當我們一層一層往上的時候,慢慢的可能有邊緣,再網上可能有輪廓,甚至對象的部件等等。當然這實際上只是個示意圖,在真正的神經網路模型裡面不見得會有這麼清楚的分層。但是總體上當我們逐漸往上的時候,它確實是不斷在對對象進行抽象。我們現在認為這好像是深度學習為什麼成功的關鍵因素之一。因為扁平神經網路能做很多深層神經網路能做的事,但是有一點它是做不到的。當它是扁平的時候,它就沒有進行這樣的一個深度的加工。 所以深度的逐層抽象這件事情,可能是很關鍵的。

大家可能就會問,「逐層地處理」在機器學習裡面也不是新東西。比如說決策樹就是一種逐層處理,這是非常典型的。決策樹模型已經有五六十年的歷史了,但是它為什麼做不到深度神經網路這麼好呢?我想答案是這樣。首先它的複雜度不夠,決策數的深度,如果我們只考慮離散特徵的話,它最深的深度不會超過特徵的個數,所以它的模型複雜度是有限的。第二,整個決策樹的學習過程中,它內部沒有進行特徵的變換,始終是在一個特徵空間裡面進行的。這可能也是它的一個問題。大家如果對高級點的機器學習模型了解,你可能會問,那boosting呢?比如說現在很多獲勝的模型,xgboost 等等都屬於這個boosting的一類,它也是一層一層的往下走。你說他為什麼沒有取得像深度神經網路這樣的成功呢?我想其實問題是差不多的,首先它的複雜度還不夠。第二可能是更關鍵的一點,它始終是在原始空間裡面做事情,所有的這些學習器都是在原始特徵空間,中間沒有進行任何的特徵變化。所以現在我們的看法是,深度神經網路到底為什麼成功?或者成功的關鍵原因是什麼?我想第一是逐層地處理,第二我們要有一個內部的特徵變換。


深度學習成功的三個因素

而當我們考慮到這兩件事情的時候,我們就會發現,其實深度模型是一個非常自然的選擇。有了這樣的模型,我們很容易就可以做上面兩件事。但是當我們選擇用這麼一個深度模型的時候,我們就會有很多問題,它容易overfit,所以我們要用大數據;它很難訓練,我們要有很多訓練的trick;這個系統的計算開銷非常大,所以我們要有非常強有力的計算的設備,比如 GPU 等等。

實際上所有這些東西是因為我們選用了深度模型之後產生的一個結果,它們不是我們用深度學習的原因。所以這和以往的思考不太一樣,以往我們認為有了這些東西,導致我們用深度模型。其實現在我們覺得這個因果關係恰恰是反過來,因為我們要用它,所以我們才會考慮上面這些東西。另外還有一點我們要注意的,當我們有很大的訓練數據的時候,這就要求我們必須要有很複雜的模型。否則假設我們用一個線性模型的話,給你 2000 萬樣本還是 2 億的樣本,其實對它沒有太大區別。它已經學不進去了。而我們有了充分的複雜度,恰恰它又給我們使用深度模型加了一分。所以正是因為這幾個原因,我們才覺得這是深度模型裡面最關鍵的事情。

這是我們現在的一個認識:第一,我們要有逐層的處理;第二,我們要有特徵的內部變換;第三,我們要有足夠的模型複雜度。這三件事情是我們認為深度神經網路為什麼能夠成功的比較關鍵的原因。或者說,這是我們給出的一個猜測。


深度學習存在的問題

那如果滿足這幾個條件,我們其實馬上就可以想到,那我不一定要用神經網路。神經網路可能只是我可以選擇的很多方案之一,我只要能夠同時做到這三件事,那我可能用別的模型做也可以,並不是一定只能是用深度神經網路。

第一,凡是用過深度神經網路的人都會知道,你要花大量的精力來調它的參數,因為這是個巨大的系統。那這會帶來很多問題。首先我們調參數的經驗其實是很難共享的。有的朋友可能說,你看我在第一個圖像數據集上調參數的經驗,當我用第二個圖像數據集的時候,這個經驗肯定是可以重用一部分。但是我們有沒有想過,比如說我們在圖像上面做了一個很大的深度神經網路,這時候如果要去做語音的時候,其實在圖像上面調參數的經驗,在語音問題上基本上不太有借鑒作用。所以當我們跨任務的時候,這些經驗可能就很難共享。

第二個問題,今天大家都非常關注我們做出來的結果的可重複性,不管是科學研究也好,技術發展也好,都希望這個結果可重複。 而在整個機器學習領域,可以說深度學習的可重複性是最弱的。我們經常會碰到這樣的情況,有一組研究人員發文章說報告了一個結果,而這個結果其他的研究人員很難重複。因為哪怕你用同樣的數據,同樣的方法,只要超參數的設置不一樣,你的結果就不一樣。

還有很多問題,比如說我們在用深度神經網路的時候,模型複雜度必須是事先指定的。因為我們在訓練這個模型之前,我們這個神經網路是什麼樣就必須定了,然後我們才能用 BP演算法等等去訓練它。其實這會帶來很大的問題,因為我們在沒有解決這個任務之前,我們怎麼知道這個複雜度應該有多大呢?所以實際上大家做的通常都是設更大的複雜度。

如果大家關注過去 3、4 年深度學習這個領域的進展,你可以看到很多最前沿的工作在做的都是在有效的縮減網路的複雜度。比如說 RestNet 這個網路通過加了shortcuts,有效地使得複雜度變小。還有最近大家經常用的一些模型壓縮,甚至權重的二值化,其實都是在把複雜度變小。實際上它是先用了一個過大的複雜度,然後我們再把它降下來。那麼我們有沒有可能在一開始就讓這個模型的複雜度隨著數據而變化,這點對神經網路可能很困難,但是對別的模型是有可能的。

還有很多別的問題,比如說理論分析很困難,需要非常大的數據,黑箱模型等等。那麼從另外一個方面,有人可能說你是做學術研究,你們要考慮這些事,我是做應用的,什麼模型我都不管,你只要能給我解決問題就好了。其實就算從這個角度來想,我們研究神經網路之外的模型也是很需要的。

雖然在今天深度神經網路已經這麼的流行,這麼的成功,但是其實我們可以看到在很多的任務上,性能最好的不見得完全是深度神經網路。比如說如果大家經常關心Kaggle上面的很多競賽,它有各種各樣的真實問題,有買機票的,有訂旅館的,有做各種的商品推薦等等。我們去看上面獲勝的模型,在很多任務上的勝利者並不是神經網路,它往往是像隨機森林,像xgboost等等這樣的模型。深度神經網路獲勝的任務,往往就是在圖像、視頻、聲音這幾類典型任務上。而在別的凡是涉及到混合建模、離散建模、符號建模這樣的任務上,其實它的性能可能比其他模型還要差一些。那麼,有沒有可能做出合適的深度模型,在這些任務上得到更好的性能呢?

我們從學術的觀點來總結一下,今天我們談到的深度模型基本上都是深度神經網路。如果用術語來說的話,它是多層、可參數化的、可微分的非線性模塊所組成的模型,而這個模型可以用 BP演算法來訓練。


探索深度學習之外的方法:深度森林

那麼這裡面有兩個問題。第一,我們現實世界遇到的各種各樣的問題的性質,並不是絕對都是可微的,或者用可微的模型能夠做最佳建模的。第二,過去幾十年裡面,我們的機器學習界做了很多很多模型出來,這些都可以作為我們構建一個系統的基石,而中間有相當一部分模塊是不可微的。那麼這樣的東西能不能用來構建深度模型?能不能通過構建深度模型之後得到更好的性能,能不能通過把它們變深之後,使得深度模型在今天還比不上隨機森林等等這些模型的任務上,能夠得到更好的結果呢?現在有這麼一個很大的挑戰,這不光是學術上的,也是技術上的一個挑戰,就是我們能不能用不可微的模塊來構建深度模型?

這個問題一旦得到了回答,我們同時就可以得到很多其他問題的答案。比如說深度模型是不是就是深度神經網路?我們能不能用不可微的模型把它做深,這個時候我們不能用BP演算法來訓練,那麼同時我們能不能讓深度模型在更多的任務上獲勝?我們提出這個問題之後,在國際上也有一些學者提出了一些相似的看法。可能大家都知道,深度學習非常著名的領軍人物Geoffery Hinton教授,他也提出來說,希望深度學習以後能擺脫 BP 演算法來做,他提出這件事比我們要晚一些。

我想這樣的問題是應該是站在一個很前沿的角度上探索。剛才跟大家分析所得到的三個結論,第一我們要做逐層處理,第二我們要做特徵的內部變換,第三,我們希望得到一個充分的模型複雜度。我自己領導的研究組最近在這方面做了一些工作。我們最近提出了一個叫做Deep Forest(深度森林)的方法。這個方法是一個基於樹模型的方法,它主要是借用了集成學習裡面的很多的想法。第二,在很多不同的任務上,它的模型得到的結果可以說和深度神經網路是高度接近的。除了一些大規模的圖像任務,這基本上是深度神經網路的殺手鐧應用,它在很多的其它任務上,特別是跨任務的表現非常好。我們可以用同樣一套參數,用不同的任務,性能都還不錯,就不再需要逐任務的慢慢去調參數,同時它要調的超參數少很多,容易調的多。還有一個很重要的特性,它有自適應的模型複雜度,可以根據數據的大小,自動的來判定模型該長到什麼程度。

另外一方面,我們要看到,這實際上是在深度學習這個學科領域發展思路上一個全新的探索。所以今天雖然它已經能夠解決一部分問題了,但是我們應該可以看到它再往下發展下去,它的前景可能是今天我們還不太能夠完全預見到的。

我經常說我們其實沒有什麼真正的顛覆性的技術,所有的技術都是一步一步發展起來的。比方說現在深度神經網路裡面最著名的CNN,從首次提出到ImageNet上獲勝是經過了30年,從演算法完全成形算起,到具備在工業界廣泛使用的能力也是經過了20年,無數人的探索改進。所以,今天的一些新探索,雖然已經能夠解決一些問題,但更重要的是再長遠看,經過很多進一步努力之後,可能今天的一些探索能為未來的技術打下重要的基礎。

以前我們說深度學習是一個黑屋子,這個黑屋子裡面有什麼東西呢?大家都知道,有深度神經網路。現在我們把這個屋子打開了一扇門,把深度森林放進來了,那我想以後可能還有很多更多的東西。可能這是從學科意義來看,這個工作更重要的價值。

最後我想談一談關於人工智慧產業發展的一些看法,因為大家都知道我們南京大學人工智慧學院馬上要跟京東開展深入的在科學研究和人才培養方面的合作。關於人工智慧產業的發展,我們要問一個問題,我們到底需要什麼?大家說需要設備嗎?做人工智慧的研究,不需要特殊機密的設備,你只要花錢,這些設備都能買得到。那麼缺數據嗎?現在我們的數據收集、存儲、傳輸、處理的能力大幅度提升,到處都是數據。

真正缺的是什麼?人工智慧時代最缺的就是人才。因為對這個行業來說,你有多好的人才,才可能有多好的人工智慧。所以我們現在可以看到,全球是在爭搶人工智慧人才。不光是中國,美國也是這樣。所以我們要成立人工智慧學院,其實就有這樣的考慮。信息化之後,人類社會必然進入智能化,可以說這是個不可逆轉、不可改變的一個趨勢。我們基於數據信息,為人提供智能輔助,讓人做事的時候更容易,那是我們所有人的願望。蒸汽機的革命是把我們從體力勞動裡面解放出來。人工智慧革命應該是把我們從一些繁複性強的、簡單智力勞動中解放出來。

人工智慧這個學科,它和其他的一些短期的投資風口和短期的熱點不太一樣。它經過 60 多年的發展,已經有一個龐大的、真正的知識體系。而高水平的人工智慧人才稀缺,這是一個世界性的問題。我們的很多企業現在都在重金挖人,但實際上挖人不能帶來增量。所以我覺得我們要從源頭做起,為國家、社會、產業的發展培養高水平的人工智慧人才,所以在這個方面,我們感謝京東作為一個有社會責任感的企業,願意在我這個學院旁邊專門建一個研究院,一起對源頭性的人工智慧高水平人才培養合作開展新型探索。最後歡迎各界朋友以各種方式支持我們南京大學人工智慧學院,謝謝!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

馬斯克推薦的11本必讀書籍:宇宙、人類和人工智慧
【終結者出場】英特爾擬收購博通,高通究竟落入誰手?

TAG:新智元 |