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