在昨天舉行的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 多年的發展,已經有一個龐大的、真正的知識體系。而高水平的人工智能人才稀缺,這是一個世界性的問題。我們的很多企業現在都在重金挖人,但實際上挖人不能帶來增量。所以我覺得我們要從源頭做起,為國家、社會、產業的發展培養高水平的人工智能人才,所以在這個方面,我們感謝京東作為一個有社會責任感的企業,愿意在我這個學院旁邊專門建一個研究院,一起對源頭性的人工智能高水平人才培養合作開展新型探索。最后歡迎各界朋友以各種方式支持我們南京大學人工智能學院,謝謝!
-
人工智能
+關注
關注
1798文章
47956瀏覽量
241122 -
深度學習
+關注
關注
73文章
5522瀏覽量
121696
原文標題:周志華最新演講:深度學習為什么深?有多好的人才,才可能有多好的人工智能
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論