好的表徵意味著學習任務變得更加容易,意味著計算機可以擁有「知識」,進而可以進行人與動物所擅長的決策。而如何定義好的表徵?如何學習好的表徵?那些試圖理解人類自身的研究(例如腦科學與自然語言學科的研究),又給表徵學習帶來了哪些啟發?這些都是 Bengio 試圖回答的問題,而深度學習,一方面是表徵學習的手段,另一方面,是可以利用好的表徵實現人類水平 AI 的「獲益者」。
2007 年,Bengio 與 Yann LeCun 合著的論文 [2] 著重強調錶徵必須是多層的、逐漸抽象的。13 年,Bengio 在綜述論文中 [3],增加了對解糾纏(Disentangling)的強調。
17 年,Bengio 在 ArXiv 釋出了一篇題名為《意識先驗》(The Consciousness Prior)的 、僅有四頁紙長的文章 [4]。這四頁紙,與其說是論文,不如說是他回首過去十年在表徵學習一途的研究之路,無論大路小路、歧路遠路,然後為未來十年畫下的一張藍圖。
近日,長居於蒙特利爾的 Bengio 來到了北京,除了發表了兩場公開演講之外,也接受了機器之心的專訪。以「意識先驗」這張可以串聯起前後數百篇論文的藍圖為線索,Bengio 向我們解釋他如今思考表徵學習的理論框架、在此框架下完成的一系列工作、以及為什麼這個框架能夠引導深度學習走向人類水平的 AI。
從「意識先驗」理論說起
「深度學習的主要目標之一就是設計出能夠習得更好表徵的演算法。好的表徵理應是高度抽象的、高維且稀疏的,但同時,也能和自然語言以及符號主義 AI 中的『高層次要素』聯絡在一起。現在,我們還無法用無監督學習的方法找到這樣的表徵。
一個有關世界的描述其實只需要很少幾個高層次要素,就像你可以用寥寥幾個單片語成一句話一樣。一句話,或者符號主義 AI 系統的一條規則之中,通常只涉及幾個概念,而相比之下,當前的機器學習演算法則需要學習大量變數的聯合分佈(比如一張圖片中的所有畫素的聯合分佈),維度極高。
意識先驗試圖用上述的動機迫使表徵學習到一些好的特性:比如能夠輕鬆提取特徵的少數幾個維度、能夠利用少數幾個維度作出動作或者對未來的預測等等。換言之,意識先驗通過額外的壓力與限制條件,來找到那些善於表達符號化的知識的表徵。」Bengio 這樣解釋意識先驗的工作。
如果你對先驗(prior)這個詞感到陌生,不妨將它替換為約束(constraint)或者正則化項(regularization term)。
學習本質是一個在所有可能性裡進行挑選的過程,而先驗告訴你挑選的偏好以及理由。文章開頭的例子中,把數字表示成阿拉伯數字而非羅馬數字的理由「方便計算」就是一種先驗。而「意識先驗」則是 Bengio 提出的一種新先驗。
圖:意識先驗的網路示意圖,來自 Bengio 演講 Challenges for Deep Learning towards Human-Level AI,機器之心漢化
意識先驗理論來自對人的觀察。意識是某一時刻人腦中的想法,它的維度很低——不管我們的大腦裡儲存了多少知識,在某一時刻裡,腦海中只能容納少數幾個要素構成一個想法。
Bengio 將這個類比想法的低維向量稱為有意識狀態(conscious stat),將大腦中的所有內容——一個非常高維、非常稀疏的向量,稱為無意識狀態(unconscious state, representation state),而來自外界的資訊輸入則稱為觀測狀態(observed state)。
感知狀態通過一個表徵 RNN 得到無意識狀態,無意識狀態通過一個注意力機制,或稱意識 RNN 得到有意識狀態。獲得好的表徵 RNN,從而得到好的表徵,是表徵學習的目的。
意識先驗對於「好」的定義是:「能夠容易地從無意識狀態中提取出少數幾個要素,它們包含了足夠多的知識,能夠作出與真實世界有關的陳述、動作預測。」
這就是意識先驗的理論框架。
理論骨骼的「血與肉」:目標函式與優化方法
框架搭好之後,問題就變成了:如何將這樣的先驗表達出來?
訓練目標問題首當其衝。
標準的深度學習演算法的目標函式通常基於最大似然,但是我們很難指望最大似然的訊號能夠一路經由反向傳播穿過用於預測的網路,穿過意識 RNN,最終到達表徵 RNN。不要說表徵 RNN 了,當你嘗試從大量資訊中挑出非常少幾個維度時,意識 RNN 會傾向於將注意力集中在那些高度可預測但是毫無意義的要素上。
更重要的是,最大似然與意識先驗的思想天然存在衝突。「人類從不在畫素空間進行想象與生成任務,人類只在高度抽象的語義空間使用想象力,生成一張畫素級的影像並非人類需要完成的任務。」因此,在訓練目標裡引入基於表徵空間的專案就變得順理成章。
過去的機器學習中,是否有類似的不在原始資料空間內定義目標函式的案例?
有,Bengio 以 PCA 舉例:「PCA 的訓練可以發生在不同的空間:你可以在畫素空間訓練 PCA,用重構誤差做目標函式,也可以在其表徵空間構建目標:要求表徵高方差、要求表徵保留儘可能多的輸入資訊 、要求表徵彼此獨立……這些都是在表徵空間定義的無監督訓練目標。」
那麼對於意識先驗來說,有什麼合適的無監督目標嗎?
《意識先驗》釋出後不久,Bengio 就和他當時的博士後學生、現 DeepMind 研究員 Philemon Brakel 共同發表了論文 [5],討論將互資訊(mutual information)作為意識先驗目標函式重要組成部分的可能性。
「『不在畫素空間定義目標函式』的思想可以回溯到上世紀 90 年代初聯結主義和神經網路剛剛興起的時候,Hinton 的博士生 Suzanna Becker 在其畢業論文 [6] 裡討論了空間中的互資訊:她認為,我們應該將『找到一種影像變換,讓空間中相鄰的特徵具有高互資訊』作為影像任務的無監督學習目標。」
「我認為這是一個沒有得到足夠重視的方向。」Bengio 說。他認為可以將這一思路從空間擴充套件到時間序列,尋找在不同時間步裡擁有高互資訊的特徵。「一個合理的假設是,在好的表徵空間裡,當前的表徵中會擁有很多關於未來的資訊,從而獲得跨時間的可預測性。」
這個概念還可以被擴充套件到增強學習裡,在這裡,「眾望所歸」的高互資訊物件是「意圖/策略/動作」與表徵。Bengio 指了指手中的筆,「比如,我想要在移動這支筆(意圖),那麼在表徵空間裡有專門的維度負責描述這支筆的位置會讓未來對筆的表徵格外順利。事實上我很希望我的大腦裡有一個專門的神經元負責這件事。」
如果你對這個話題非常感興趣,那麼你可以順著心理學中的「功能可見性」(affordance,看到一樣物體就能知道如何與它互動)一詞繼續探索。
除了目標函式之外,意識先驗的優化方式也會和經典深度學習有所不同。
即使是注意力機制,也需要「軟化」這樣的手段以便反向傳播,更不用提意識先驗的超高維表徵和超長時間跨度了。人們在大量使用強化學習方法處理不能反向傳播的情況,然而,這還遠遠不足。
「什麼樣的優化方式最適合意識先驗?我仍然不知道這個問題的答案。」Bengio 說。在他看來,一類很有前景的研究是合成梯度(synthetic gradient)[7]。
「合成梯度是說,即使我們在不知道全部知識的情況下進行了無法反向傳播的離散決策,我們仍然可以訓練神經網路的一個部分,就像 GAN 中的判別器一樣,它擁有一個損失函式,我們能夠通過它獲得近似梯度。」
有了合成梯度之後,每一層的梯度可以單獨更新了。但是當時間步繼續拉長,問題仍然存在。理論上反向傳播可以處理相當長的序列,但是鑑於人類處理時間的方式並非反向傳播,可以輕鬆跨越任意時長,等「理論上」遇到一千乃至一萬步的情況,實際上就不奏效了。
換言之,我們對時間的信用分配(credit assignment)問題的理解仍然有待提高。
「比如你在開車的時候聽到『卟』的一聲,但是你沒在意。三個小時之後你停下車,看到有一個輪胎漏氣了,立刻,你的腦海裡就會把癟輪胎和三小時前的『卟』聲聯絡起來——不需要逐個時間步回憶,直接跳到過去的某個時間,當場進行信用分配。」
受人腦的信用分配方式啟發,Bengio 的團隊嘗試了一種稀疏注意回溯(Sparse Attentive Backtracking)方法。「我們有一篇關於時間信用分配的工作,是 NIPS 2018 的論文 [8],能夠跳過成千上萬個時間步,利用對記憶的訪問直接回到過去——就像人腦在獲得一個提醒時所作的那樣——直接對一件事進行信用分配。」
意識先驗理論只是一個思維框架、一個研究計劃,它撐起了一個研究方向的骨骼,衍生出一堆亟待探索的問題。目標函式的構建、優化方法的選擇,最後,還有模型結構的設計,這些則是研究方向的血肉。這些問題中,有的問題存在幾個前景可觀的方向,還有一些仍然處於設想階段。
從實驗場出發:發現優秀的演算法,而不是搭一個 AI
想要對意識先驗理論進行實驗存在一個問題:無論想要找到合適的目標函式、還是優化方法,都要和表徵 RNN 以及無意識狀態打交道。雖然有意識狀態的大小隻是和一句話、一條規則差不多,但與無意識狀態的規模對應的,是大腦儲存的全部內容。
「學習整個世界是非常困難的。刻畫現實世界的複雜性是我們的最終目的,最終我們會實現這一點的,但是作為第一步,我們應該減小問題的範圍,在一個有限的環境內學習『學習』本身。要記住,機器學習研究的目的不是搭一個 AI,而是發現優秀的學習演算法。學習演算法是通用的,所以我們可以在一個有限的環境裡測試自己的演算法,如果它在有限環境中都無法學到東西,那麼無疑它無法走入真實世界。」
因此,我們搭建一個如同視訊遊戲一樣的虛擬環境。一個如同果蠅之於生物學、MNIST 之於傳統機器學習框架的環境。
1971 年,Winograd 在試圖用符號主義方法建立一個能夠用自然語言執行任務的系統時,也建立了一個環境:一個叫 SHRDLU 的磚塊世界,計算機可以在其中和人的指令進行簡單的互動。
雖然 Winograd 的方法並沒有成功,但合成環境的思想流傳了下來:與其被動地觀察巨量的要素相互作用產生的結果,不如與少一些的要素直接進行互動。
基於這一思想,Mila 實驗室的一個團隊建立了 BabyAI 平臺 [9],構建了一個 2D 網格世界,有一些房間,有漸進的難度係數,有一位虛擬的「老師」,希望像老師教嬰兒學習一樣,教會還是個「寶寶」的 AI,至於教學的任務,則以自然語言的形式出現:希望 AI 同時學會關於這個世界的知識,以及語言與這個世界中的要素的關係。
那麼,為什麼是語言?
連線自然語言,連線符號主義
其實這個問題應該換一個問法:為什麼是表徵+語言?
Bengio 仍然從腦科學入手解釋這個問題。
人類的認知任務可以分為系統 1 認知(System 1 cognition)和系統 2 認知(System 2 cognition)。系統 1 認知任務是那些你可以在不到 1 秒時間內無意識完成的任務。例如你可以很快認出手上拿著的物體是一個瓶子,但是無法向其他人解釋如何完成這項任務。這也是當前深度學習擅長的事情,「感知」。
系統 2 認知任務與系統 1 任務的方式完全相反,它們很「慢」且有意識。例如計算「23+56」,大多數人需要有意識地遵循一定的規則、按照步驟完成計算。完成的方法可以用語言解釋,而另一個人可以理解並重現。這是演算法,是電腦科學的本意,符號主義 AI 的目標,也屬於此類。
人類聯合完成系統 1 與系統 2 任務,人工智慧也理應這樣。
「這種聯合並非將符號化知識與聯結主義知識合併,而是將符號主義 AI 的目標視為聯結主義優化的最終目標,同時讓聯結主義表徵習得的關於世界的知識作為符號主義任務的基礎。」
就像把一支只會砌磚的施工隊,和一位只會畫圖的建築師組合在一起:原本只會砌平房的施工隊按照圖紙能蓋摩天樓了,而原本只能設想空中樓閣的建築師也接了地氣。
回到表徵和語言的例子裡。
「下雨了,人們撐起了傘。」是單獨存在的語言,寥寥數字裡有兩個明確的要素:「是否下雨」和「是否撐傘」,你可以很容易地把它們從句子裡摘出來,然後用它們建立規則進行推理。但是這種推理是與真實世界隔離的。
上面這幅照片則是單獨存在的表徵,雖然用一團畫素表達了和語言同樣的意思,可是我們無法把代表「下雨」和「撐傘」的畫素挑出來,更無法推理說一些畫素是另一些畫素的原因。我們能做的只是以標籤的形式告訴機器,這張圖裡有一個很重要的概念,叫做「下雨」,而這樣形式習得的表徵也無法完成推理任務。
「意識先驗是將聯結主義與符號主義結合的粘合劑。符號主義 AI 向聯結主義表徵 RNN 表達訴求:我想要完成『下雨的時候人們會打傘。』這樣的推理,請給我合適的變數,而表徵 RNN 需要自己發現,『下雨』是一個能夠從影像中提取出的、幫助推理的特徵,然後學習它。」
這才是意識先驗最終的目的,這張顯著不同於現有深度學習框架的藍圖所規劃的方向。
「五年前我們關心的問題是,如何設計不依賴蒙特卡洛鏈的生成模型,所以我們有了變分自編碼器(VAE),有了生成對抗網路(GAN),自那以後我們在生成方面獲得了巨大的進步,但是生成並不是最終目的。」
五年前人們仍然認為通過學習文字本身能夠解決自然語言處理問題,現在谷歌的 BERT 大規模預訓練語言模型已經在 33 億規模的詞庫上進行訓練了。「BERT 還是會和其他現有模型一樣,犯一些人類根本不會犯的『愚蠢』錯誤。BERT 在推動單純基於文字的自然語言處理模型的極限,這是件很好的事,但是它能夠獲得的終究是不完整的語言模型,」
在 Bengio 眼中,生成模型和 BERT 都沒有觸及本質問題:「大概十年前,我提出了一個非常基本的問題:『如何將潛在的變差因素解糾纏?』(the disentangling the underlying factors of variation)十年過去了,這仍然是一個未解之謎。」
那些「基本的問題」好像是 AI 之路通關前的最後一道門,解開了問題彷彿就能獲得開門的鑰匙,門後面就是如 Yoshua Bengio 一樣走在最前列的研究者們從數十年前就夢寐以求的「通用的、人類水平的人工智慧」。他們嘗試了各種技巧,每一條路都讓我們離這扇門更近,但似乎又沒有一條能夠真正通向這扇門。
「如果說十年前的我和現在的我在觀點上有什麼不同的話,那就是五年或者十年前,我仍然天真地希望我們所掌握的技巧能奇蹟般地通過嘗試學會做正確的事。」
Bengio 花了十年時間,相信這個奇蹟不會發生。
「現在我不這麼認為了。我們要引導機器去做正確的事,通過那些能夠推動機器朝正確的方向前行的先驗。」
References:
[1] Goodfellow, I., Bengio, Y., Courville, A., & Bengio, Y. (2016). Deep learning (Vol. 1). Cambridge: MIT press.
[2] Bengio, Y., & LeCun, Y. (2007). Scaling learning algorithms towards AI. Large-scale kernel machines, 34(5), 1-41.
[3] Bengio, Y. (2013, July). Deep learning of representations: Looking forward. In International Conference on Statistical Language and Speech Processing (pp. 1-37). Springer, Berlin, Heidelberg.
[4] Bengio, Y. (2017). The consciousness prior. arXiv preprint arXiv:1709.08568.
[5] Brakel, P., & Bengio, Y. (2017). Learning Independent Features with Adversarial Nets for Non-linear ICA. arXiv preprint arXiv:1710.05050.
[6] Becker, S., & Hinton, G. E. (1992). Learning to make coherent predictions in domains with discontinuities. In Advances in Neural Information Processing Systems (pp. 372-379).
[7] Jaderberg, M., Czarnecki, W. M., Osindero, S., Vinyals, O., Graves, A., Silver, D., & Kavukcuoglu, K. (2016). Decoupled neural interfaces using synthetic gradients. arXiv preprint arXiv:1608.05343.
[8] Ke, N. R., Goyal, A., Bilaniuk, O., Binas, J., Mozer, M. C., Pal, C., & Bengio, Y. (2018). Sparse Attentive Backtracking: Temporal CreditAssignment Through Reminding. arXiv preprint arXiv:1809.03702.
[9] Chevalier-Boisvert, M., Bahdanau, D., Lahlou, S., Willems, L., Saharia, C., Nguyen, T. H., & Bengio, Y. (2018). BabyAI: First Steps Towards Grounded Language Learning With a Human In the Loop. arXiv preprint arXiv:1810.08272.