OpenAI嘗試打破“中文房間悖論”,讓AI創造語言並自發交流
大規模機器學習技術已經在翻譯、語言推理、語言理解、句子生成等領域取得巨大進展,而它的訓練方式都大同小異:
給系統輸入大量文本資料;
系統提取特徵並提煉模式。
雖然這類研究碩果累累,但主要的缺點在於所學語言的表徵品質會影響對應的結果。雷鋒網瞭解到,如今越來越多的研究表示,如果用某種語言訓練電腦,實際上系統並不能深刻理解語言與真實世界的關係。OpenAI 發現了這一問題,並致力於讓智慧體自己創造基於自身感知的語言。
系統在缺乏基礎的情況下訓練語言模型,就像 John Searles 在「中文房間理論」裡所提到的機器一樣,它們將輸入的文本與分析大量文本資料的結果相對比,只呆在「房間」裡就能與文本描述的外界互動,那麼我們又如何判斷電腦的「智慧」呢?
雷鋒網AI 科技評論瞭解到,近日 OpenAI 宣佈了它們的一項研究成果,證明通過訓練,智慧體是可以創造語言並進行交流的。同時,他們也將論文《Emergence of Grounded Compositional Language in Multi-Agent Populations》同步到 arxiv 上。
OpenAI 的研究基於這樣的一個假設:智慧體對語言的理解,並不是在文本的龐大語料庫中提煉模式,而是通過學習單詞與環境之間的聯繫而實現的。因此,研究者們希望瞭解智慧體們是否能自發產生一種內部溝通語言。
訓練智慧體創造語言
研究者們將 AI 智慧體放在一個簡單的環境中,並讓它們自由溝通。OpenAI 採用了強化學習的策略,即當它們達成了一個目標的時候,會得到獎勵(reward)。為了達到所設定的目標(以獲得回報),智慧體們就能創造屬於自己的語言。
當然,智慧體所設計的語言並不和人類語言那樣複雜,而是「接地氣」且「可拼湊」的(grounded and compositonal)。Grounded 指的是語言中的單詞與說話者所接觸的內容能直觀地聯繫在一起。比如說,說話者會同時呈現單詞「tree」與一棵樹的圖片,表達一種對應關係。而 Compositional 指的是說話者在表達特定指令時,能夠將不同的單詞組合成句,比如要求另一個智慧體移動到某個指定的位置。
實驗是建立在二維世界中的,智慧體們能夠完成移動、觀察及對話等任務。圖中呈現的是智慧體 1 號正看著中間的某個點,並且正在說些什麼(utterance)。
為了訓練智慧體的交流能力,OpenAI 的研究者設計了一個合作性質的實驗(而不是競爭性的),以解決多智慧體強化學習的問題。智慧體所處的二維世界裡標有不同顏色的地標(landmark),而每個智慧體都設定了一個對應的目標,但主要分為兩類:
一類是自發完成任務,比如將視線看向某個地標,或是移動到某個地標所在的地方;
二類是指揮其它智慧體完成某個任務。
自然,每個智慧體都具備與其它智慧體溝通的能力,可以向對方傳輸資訊。而它們所得到的獎勵與場內智慧體所得獎勵總和相關,因此為了使獎勵最大化,每個智慧體也會遵循合作原則。
強化學習智慧體一般採取兩種行動:
1. 與環境相關的行動,比如移動與觀察;
2. 與交流有關的行動,比如向其它智慧體發送消息。
值得一提的是,智慧體採用的是獨熱編碼向量(One-Hot Vector)表示的抽象符號,但為了方便研究者理解智慧體想表達的內容,採用了像「Look at」或「Go to」這樣的單詞來表示。
(雷鋒網 AI 科技評論按:在機器學習任務中存在很多離散特徵,為了將特徵值轉換為數位,且能連續且有序地理解資料,採用 One-Hot 編碼就能解決這個問題。
用 Quora 上的例子來說明一下:比如現在有四個分類:人、企鵝、章魚、外星人,用 1234 的序號按順序標記。那麼對於樣本【人】而言,它的編碼就是 {1,0,0,0};而對應編碼為 {0,0,0,1} 的樣本,實際上就對應著【外星人】樣本。)
圖示展示了智慧體是如何溝通的。在 t=0 時刻,紅色智慧體指示了紅色標記的位置;隨後 t=1 下達了意為「Go to」的指令,在 t=2 時將這個指令傳遞給「green-agent」,在 t=3 時刻顯示,綠色智慧體理解了紅色智慧體傳達的含義,並移動到了紅色標記所在的位置。
智慧體的通信通道並不交匯,且每個通道在每個時間點上都是暢通的,保證了資訊能夠順利傳遞給對應的智慧體。當某個智慧體開始行動前,它會先處理前一時間點的溝通狀況,判斷各自的所處的位置,再決定下一秒的活動。
智慧體通過計算未來獎勵的梯度與獎勵的變化預期來決定下一步的行動。如果智慧體發現另一個智慧體發送了某個資訊才能夠做得更好,那麼前者便會向後者發出相應的指令。也就是說,智慧體在這個過程中會不斷思考,「如何交流才能使獎勵最大化?」
在訓練過程中,研究者採用了 Gumbel-Softmax 策略,以近似帶有連續性表徵的分離通信決策。也就是說,智慧體能夠採用連續性表徵快速學習相互通信的方法,並在訓練結束後彙集分離性的輸出,呈現更強的表達性與組合性。
以下面視頻為例,智慧體在環境複雜度提升之時,自身的語言也在不斷提升。
以下為三個典型情況:
單個智慧體不需要通信(圖1);
兩個智慧體為了完成簡單的任務,發明了一個詞進行交流協作(圖2);
三個智慧體在面對更複雜的任務時,創造了含有多個詞的句子(圖3)。
(圖1:單個智慧體不需要通信)
(圖2:兩個智慧體為了完成簡單的任務,發明了一個詞進行交流協作)
(圖3:三個智慧體在面對更複雜的任務時,創造了含有多個詞的句子)
存在的問題及解決方案
前途是光明的,道路是曲折的。在智慧體實現交流的過程中,OpenAI 也發現了不少問題。
一、語言難合成
OpenAI 一開始發現,智慧體會創造一些單一話語,並映射到空間。這類像莫爾斯電碼的語言無法解密,而且不具有合成性。也就是說,這些「鳥語」無法為其它智慧體所理解,更不要談合作了。
為了修正這一問題,研究者對語句賦予一定的成本(也就是說,智慧體在說話時需要消耗一定的獎勵),並提升了「快速完成任務」的優先順序。這樣一來,智慧體能夠以更加簡潔的語言交流,並且開拓了更大的詞彙量。
二、太過凝練
研究者們還發現,智慧體會嘗試用一個單詞編碼一個句子所表達的內容。產生這一問題的原因在於研究者們授予智慧體使用大量詞彙的能力,因此,智慧體會用一個詞來表達「紅色智慧體,移動到藍色地標那」。這樣一來,會導致詞彙量與句子長度成指數般增長,而且與研發可理解 AI 的初衷相違背。
為了防止智慧體的造句太過「凝練」,研究者受到句法交流的演變啟發,為單詞加上偏好權重,並縮小單詞庫的規模。此外,把特定單詞的出現頻率與獎勵掛鉤,鼓勵智慧體少造新詞。
三、不夠「絕對」
如果你看了前面的視頻,就會發現智慧體都是用顏色來指示相應的地標或對象。但其實一開始並非如此。研究員還發現,智慧體有時會用「top-most」、「left-most」這樣的詞來表述,這些詞是基於二維座標的相對位置來表達的,雖然在該環境下也行得通,但由於太過具體,一旦改變的智慧體所處的地理結構,那麼系統可能就跑不轉了。
為了解決這一問題,研究者抹掉了智慧體在絕對座標系上的聯繫,也就是說,每個智慧體都位於自身坐標系的原點上,而且無法共用坐標系,它們自然也就學會用更絕對的顏色屬性來指明對應的地標了。
智慧體可以是隊友的左膀右臂
當智慧體無法通過文本交流,而且需要在特定的類比環境中行動時,這一訓練同樣能應用。研究者們展示了如下特殊情況:
1. 智慧體通過指向將目標位置資訊告訴另一個智慧體;
2. 小智慧體引導大智慧體靠近目標;
3. 小智慧體推動沒有視覺功能的大智慧體靠近目標。
在未來,OpenAI 希望機器能自行創造與自己經驗密切有著密切聯繫的語言。如果我們以這一實驗為基礎增加環境複雜性,並擴大智慧體的活動範圍,或許它們可以創造出一門新的表達性語言,呈現更豐富的含義。
而隨著機器語言的複雜度增加,如何讓人類也理解這樣的語言呢?這一研究涉及人工智慧、語言學及認知科學。在下一個專案中,Ryan Lowe 與 Igor Mordatch 計畫與 UC 伯克利大學的研究人員合作,讓智慧體與講英語的智慧體進行交流,使機器創造的語言為人類所理解。雷鋒網將持續關注。