我們看一下今天的 AI 系統(tǒng),如今所有的應用,不管是影像、聲音或者是圖像的識別,或者語言間的翻譯等,這些內(nèi)容 AI 都需要通過監(jiān)督學習來獲得。比如說向它展示一些車的圖像,告訴它這些都是車,下次再向機器展示車的圖像,它就會告訴你答案是車。所以你可以看到,監(jiān)督學習,對于計算機的學習非常重要。
我們現(xiàn)在有監(jiān)督學習,或者說深度有監(jiān)督學習,就是組合起來一些可以訓練的模塊,形成端到端的一個學習過程,一端是原始的輸入,另一端就可以得到結(jié)果。通過這種方式,計算機會更好地了解我們的世界。
我們知道神經(jīng)網(wǎng)絡是非常龐大且復雜的,只有在算力很強的計算機上才可以運用。在深度學習變得普遍之前,我們需要確保機器學習的系統(tǒng)可以順利應用。
比如說我們在 2009 年、2010 年紐約大學的一個合作項目中,即利用 ConvNets 進行語義分割。我們可以看到,它能識別圖像,能把馬路上的建筑、天空以及路上的車和人等等在像素級別上分開。當時的識別技術(shù)還算不上非常完美。
但在幾年后,我們可以看到有一些公司利用上述技術(shù)做了一些工作,系統(tǒng)可以識別出道路上的車輛和行人,這也是實現(xiàn)智能駕駛的重要組成部分。隨著深度學習的發(fā)展、網(wǎng)絡的深度越來越深,越來越多的人相信深度學習是可以奏效的。
隨著網(wǎng)絡深度的不斷增加,識別 ImageNet 圖像的錯誤率也在不斷下降,現(xiàn)在已經(jīng)表現(xiàn)得比人還要好。在 ImageNet 上的表現(xiàn)已經(jīng)太好了,以至我們現(xiàn)在都已經(jīng)不再把它作為首選的評價標準了 。我們現(xiàn)在也在研究更復雜的問題,不只是識別圖像,還要能夠進行本地化處理。
Mask R-CNN 是我們在 Facebook 人工智能研究院所做的研究,可以看到它的表現(xiàn)非常好,不僅僅可以識別出對應的物體是什么,還可以對圖像進行精細的分割。只是部分可見的東西都可以分得清。
可微分編程:
深度學習與推理的聯(lián)姻
我們再來看一下可微分編程。
實際上我們可以從另外一個角度來理解深度學習。深度學習并不是一定需要構(gòu)建一個固定架構(gòu)的神經(jīng)網(wǎng)絡然后訓練,它也可以是寫程序代碼,但程序代碼可以被解釋為神經(jīng)網(wǎng)絡。這樣的程序里會帶有一些參數(shù),然后可以通過訓練來優(yōu)化這些參數(shù),這些參數(shù)的最終取值也就取決于訓練數(shù)據(jù)。當然我們也需要寫第二個程序,計算輸入關(guān)于參數(shù)的導數(shù)的梯度,就可以往正確的方式調(diào)整這些參數(shù)的值了,這樣動態(tài)改變了最終網(wǎng)絡的結(jié)構(gòu),它也就可以適應不同的任務。這就是可微分編程。
這是幾年前所開展的一項典型工作,用記憶模塊增強神經(jīng)網(wǎng)絡,網(wǎng)絡的結(jié)構(gòu)也就是動態(tài)的。這樣的做法也會影響未來用什么樣的工具開發(fā)神經(jīng)網(wǎng)絡。
這是另外一個關(guān)于動態(tài)計算的例子。如果你要建立一個系統(tǒng)能夠回答復雜問題的話,比如在一副圖中,紅色的立方體,是不是要比別的大一些?或者立方體有沒有比某個顏色的東西更多?這是幾年前 Facebook 和斯坦福大學合作的研究,它的關(guān)鍵思想是,通過循環(huán)神經(jīng)網(wǎng)絡 LSTM 輸入問題,問題會被編碼成向量的形式,然后向量再被另一個網(wǎng)絡解碼,解碼后的結(jié)果像是一種程序,程序解釋后的結(jié)果是幾個模塊連接形成的計算圖。這樣最終就解答了這個問題。
比如對于問題“立方體有沒有比黃色的東西更多”,我們首先需要一個立方體的檢測器,然后需要檢測黃色東西的檢測器,分別數(shù)出來都有多少,最后對比兩個數(shù)字得到了結(jié)果。動態(tài)計算就可以端到端地訓練出執(zhí)行這樣任務的程序。決定它的組成結(jié)構(gòu)的也就是用來訓練它的數(shù)據(jù)。
剛才看到的都是一些已經(jīng)做到的深度學習成就,那么我們還需要看一下,距離達成“真正的 AI”我們還缺了什么?,F(xiàn)在我們已經(jīng)可以構(gòu)建出更安全的車輛或者說自動駕駛車輛,我們有更好的醫(yī)學影像分析、還不錯的翻譯軟件、差不多能用的聊天機器人。但我們還做不出來有“常識”的機器人、做不出真正有智慧的個人助理、做不出可以替代洗碗機的管家機器人。我們?nèi)绷艘恍┲匾臇|西。
強化學習是缺的那塊拼圖嗎?
有的人會說,答案就是強化學習。強化學習當然也很有力,但是它只能在游戲的、虛擬的環(huán)境里發(fā)揮。所以強化學習并不適合解決現(xiàn)實生活中的問題。
機器需要學習常識
我們想想嬰兒是怎么學習的?比如我們給嬰兒看一張圖,那個小車漂浮在空中,雖然下面沒有任何支撐,但是并沒有掉下來。不到 6 個月大的嬰兒看到這張圖片并不會覺得驚訝,但是更大的嬰兒已經(jīng)知道了沒有東西支撐的話是會掉下來的,看到這張圖片就會很驚訝。這是他們在生命的最初幾個月學到的一些概念,也就假說認為這就是“常識”萌芽的時期。
動物也有一定程度的常識,比如這只幼年的猩猩。我們給它變了個魔術(shù),在杯子里放了東西然后把它變沒了。猩猩本來期待著東西還在里面的,當它看到東西不見了的時候就笑得躺在地上了。這只猩猩就對這個世界有著較為準確的認知模型。
那么我們需要做的,也就是讓機器具備對這個世界的模型,我把這個稱作“自我監(jiān)督學習”或者“預測學習”。機器要嘗試預測自己看到的東西的各個方面,這也可能就是能讓機器像人類一樣高效地學習的關(guān)鍵。
這種學習主要靠觀察,沒有監(jiān)督,和世界只有很少的互動;它們除了接收,還要可以規(guī)劃和行動。這正是構(gòu)建自動化機器的關(guān)鍵。
所以不管下次的變革在哪里,我覺得都不會是監(jiān)督學習,當然也不會是純強化學習。它應該會有某種自我監(jiān)督或無監(jiān)督學習。而且也會在這樣的變革當中出現(xiàn)一些常識性的學習。
我總結(jié)一下,這也就是我們近期在 Facebook 做的預測學習如何預測、推理以及計劃,也就是學習“常識”。它的核心思想是,自動的智能機器人應當有一個內(nèi)部的世界模型,可以在它做出行動之前自己進行模擬,預知自己的動作的結(jié)果。這是一種最優(yōu)控制中常見的方法,但在機器學習中就不那么常見了。這里我們遇到的問題也就是如何讓人工智能學會對世界建模,從而用這個模型幫助自己規(guī)劃現(xiàn)實世界中的行為。
預測的時候還需要處理不確定性,在桌子上立一支筆,然后松手,它就會倒下來。我們只確定它會倒下來,但是不確定具體會倒向哪個方向。這種時候我們也就需要對抗性訓練,訓練模型不只給出一個答案,而是多個可能的答案。這里需要兩個模型,一個模型做預測,另一個模型來評判哪些結(jié)果還不錯、哪些結(jié)果是現(xiàn)實世界不太可能發(fā)生的。
所以,對抗性訓練也就是我們希望可以幫助建立預測機器的方法。預測應當是智慧的核心,我相信能訓練出具有預測能力的模型也就能在未來幾年中為我們帶來大的進步。
關(guān)于AI 未來發(fā)展的預測
對于 AI 學術(shù)研究的趨勢,監(jiān)督學習和強化學習即便不會被取代,也會被自我監(jiān)督學習和無監(jiān)督學習明顯地增強;學習具有預測能力的模型也會成為未來幾年內(nèi)的研究熱點,這能讓我們從無模型的強化學習來到基于模型的強化學習以及模仿學習,它們的效率都會提升很多,所需的嘗試次數(shù)也會少很多。
另一件事是,讓模型具有推理的能力,但同時還和深度學習是兼容的。就是讓深度學習方法可以做符號表示方法可以做的事情,把符號換成了向量,把邏輯變成了可微分的程序操作。目前的固定結(jié)構(gòu)的網(wǎng)絡會變成動態(tài)的、由數(shù)據(jù)決定的網(wǎng)絡結(jié)構(gòu)。這也會需要在計算方法方面有新的探索,從而成為系統(tǒng)性的問題。深度學習本身我認為也會有一些進化,它們操作的不再是數(shù)值或者高維向量,而是操作圖結(jié)構(gòu)之類的復雜數(shù)據(jù)結(jié)構(gòu),更多的深度學習理論也可能會出現(xiàn)。
(本文根據(jù)Yann LeCun的公開演講整理而成,未經(jīng)本人確認。)