【重磅】百度通用 AI 大突破,智能體通過交互式學習實現舉一反三

ADVERTISEMENT

新智元編譯

來源:arxiv

作者:趙以文 劉小芹 胡祥傑

  【新智元導讀】百度IDL研究員徐偉、餘昊男、張海超提出了一個新的框架,通過多任務強化學習和零數據學習,讓智能體在沒有先驗知識的情況下,自己學會了結合語言和視覺兩種信號在迷宮中導航並定位物體。這項研究是百度在通用AI研究中交互式學習上的突破,有助於研發在現實世界中完成任務的機器人。

  論文下載地址:https://128.84.21.199/pdf/1703.09831.pdf

  百度這次開發的AI需要完成的任務是在二維迷宮里找東西,但與以往大多數研究讓AI自己去探索新環境不同,百度研究人員使用了一個“教練”算法,使用語言命令AI去到不同的地方做事情。

  在這里,AI要完成任務,除了自己處理視覺信號導航,還需要學會理解語言信號並將這些語言信號與視覺信息對應起來。這種結合了圖像分析、自然語言處理以及現實世界行動的能力,正是人類使用語言命令機器人去完成任務所不可或缺的。由此,這項研究對於機器人應用有很大的潛力。

  論文作者、百度深度學習研究院傑出科學家徐偉在接受外媒采訪時表示,他們希望教會機器人用人的方式做事情,這樣對人類用戶而言更加方便,而“語言則是知識交流很重要的部分”。

  百度的這個AI具體怎麼工作呢?在一個7×7的迷宮中,AI需要找到水果,找到了以後有獎勵,碰壁或者走錯方向則會受處罰。論文里的AI算法由四個部分組成:一個語言模塊,用於理解命令和生成答案;一個識別模塊,用於明確關鍵詞(比如蘋果);一個視覺模型,用於“看”迷宮;還有一個決策模型,用於決策。

  上文提到的那個“教練”算法會發出指令(英語),比如“往蘋果的東邊移動”,經曆數百萬次的迭代以後,AI就能學會什麼是“東”、什麼是“蘋果”,以及這兩個概念如何關聯。

  不僅如此,研究人員還發現,實驗中AI通過強化學習,在接收到以前沒有接觸過的語言命令後,也能正確執行任務。

  雖然目前論文里AI能夠完成的任務還十分簡單,算法也不能生成完整的句子響應,但徐偉表示,這項研究是一項“概念證明”(proof of concept),用於探索算法能否同時學會語言和在迷宮中導航。

  研究人員在論文中表示,他們接下來計劃將實驗拓展到三維環境。

  值得一提,系統是使用百度PaddlePaddle框架寫的。

  這個實驗與徐偉的研究目標十分呼應。3月2日,深度學習技術及應用國家工程實驗室學術研討會在京召開(李彥宏稱百度要做女排那樣的人工智能國家隊),徐偉在現場表示:“現在我們的機器和人還是有著非常大的差距,我們應該從一個非常簡單的學習場景開始,讓機器像兒童一樣,通過在環境中的互動去學習感知、行動、語言這樣一些基本的能力。”

  當天,徐偉發表了關於通用AI的演講,談論了如何打造通用人工智能的研究平台。徐偉在演講中說:“我在這里和大家分享的是我們對於以後人工智能發展的希望和我們現在做的一些工作。我特別要強調的是,我們現在考慮的是通用人工智能的技術發展。”

  下面,我們具體來看看這項研究。

  虛擬環境中類似人類語言習得的深度組合性框架(A Deep Compositional Framework for Human-like Language Acquisition in Virtual Environment)

  

ADVERTISEMENT

  摘要

  我們讓一個智能體在一個被稱為 XWORLD 的 2D 迷宮環境中學習導航任務。在每個回合,智能體得到一個原始像素幀的序列,一個由指導者(teacher)發出的命令,以及一組獎勵。智能體需要從零開始學習 teacher 的語言,以在經過訓練後能夠正確執行 zero-shot 的命令:1)命令語句中出現的詞組從未在先前出現過;和/或 2)命令語句包含從另一個任務中學習到的新的對象概念(new object concepts),但這些概念從未在導航(navigation)任務中學過。

  我們對智能體的深層框架的訓練是端到端的:它同時學習環境的視覺表示,語言的句法和語義,以及用於輸出行動的動作模塊(action module)。該框架的 zero-shot 學習能力來自其具有參數約束(parameter tying)的組合性(compositionality)和模塊化(modularity)。我們對該框架的中間輸出進行了可視化,證明智能體真正理解如何解決問題。我們相信,我們的結果提供了對在3D環境中訓練具有類似能力的智能體的初步啟發。

  引言

  複雜語言系統的發展是實現人類水平的機器智能的關鍵。語言的語義來源於感知經驗,可以編碼有關感知世界的知識。這種知識能夠從一個任務遷移到另一個任務,賦予機器泛化的能力(generalization ability)。有研究認為,機器必須經曆物理的體驗,才能學習人類水平的語義[Kiela et al., 2016],即,必須經曆類似人類的語言習得過程。然而,目前的機器學習技術還沒有能以高效率實現這一點的方法。因此,我們選擇在虛擬環境中對這個問題進行建模,作為訓練物理智能機器的第一步。

  在通過自然語言的指導學習新的概念和技能時,人類是能夠非常好地舉一反三、推廣泛化的。我們能夠將已有的技能應用到新學會的概念上,而且毫不費勁。例如,當一個人在學會如何執行“用刀切 X”,X 等於蘋果這個命令後,當 X 是其他這個人知道的東西,例如梨或橙,或者甚至X是其他他從未被問過的東西時,他都能夠正確執行這個命令。

  

  圖1:XWORLD 環境和 zero-shot 導航任務的圖示。(a)測試命令包含一個從未遇過的單詞組合;(b)測試命令包含全新的物體概念,這些概念在前面的回合(a)的物體識別任務中學過。

  這篇論文介紹了一個框架,該框架演示了一個智能體在特定任務中的 zero-shot 學習能力,即,在名為 XWORLD 的類似迷宮的環境中學習導航(圖1)。我們試圖解決的問題與嬰兒牙牙學語時在學習走路和導航中所遇到的問題類似。父母可能會給出一些簡單的指導性的命令,其中最初隻包含兩三個單詞,然後隨著時間的推移命令逐漸變得複雜。同時,父母也會在其他一些任務中教孩子語言,例如識別物體的任務。在嬰兒理解了語言並掌握了導航的技巧後,他能夠馬上把在物體識別中學到的新概念應用到導航任務中,即使這些概念從未出現在父母的導航命令中。

  我們在 XWORLD 中用多個學習回合訓練我們的嬰兒智能體。在每個回合,智能體得到一系列的原始像素圖像用以感知環境,一個由 teacher 發出的自然語言形式的命令,以及一組獎勵。當某些條件被觸發時,智能體也偶爾會接到來自 teacher 的有關對象識別的問題。通過探索環境,智能體同時學習環境的視覺表示,語言的句法和語義,以及如何在環境中給自己導航。智能體的整個框架使用梯度下降端到端地從零開始訓練。我們在三個不同的命令條件下測試智能體表現,其中兩個要求智能體能夠推廣去解釋從未見過的命令和詞彙,而且框架的結構是模塊化的,以便其他模塊(如視覺感知模塊和動作模塊)在這種情況下仍然可以正常工作。我們的實驗表明,該智能體在所有條件下表現得差不多好(平均成功率約 90%)。此外,簡單學習圖像和語言的聯合嵌入的幾個基線框架的結果很差。

  概況而言,我們的研究的主要貢獻是:

一種將視覺和語言整合到一起的新的導航任務,使用深度強化學習(RL)。此外,該語言沒有被預解析(pre-parsed)[Sukhbaatar et al., 2016]或被鏈接到環境中 [Mikolov et al., 2015, Sukhbaatar et al., 2016]。相反,智能體必須從零開始學習所有內容,並將語言置於視覺的基礎上。

語言的多任務遷移學習加速了 RL。輔助任務中的語言習得可以幫助智能體更快地理解導航命令,從而更快地掌握導航技巧。

通過利用語言和模型架構的組合性(compositionality)得到 zero-shot 學習能力。我們認為這種能力是人類水平的智能的關鍵要素。

  XWORLD 環境

  首先,讓我們簡單介紹一下 XWORLD 的環境。更多細節請參見論文附錄 8.3。XWORLD 是一個 2D 的柵格(grid)世界(圖1)。一個智能體在多個時間步長 T 中與環境進行交互,其中有4個動作:上,下,左,右。訓練過程有許多個回合。每個回合開始時,指導者(teacher)啟動計時器並發出一個自然語言形式的命令,要求智能體到達環境中特定對象的位置。其中可能會有其他物體作為干擾物出現。因此,智能體需要區分不同的對象,並導航到正確的位置。智能體通過具有自我中心視圖的 RGB 像素感知整個環境(圖2c)。如果智能體在時間結束前正確執行了命令,則會得到積極的激勵R +;每當它碰到牆壁,或者到達的位置不是目標對象時,分別會得到消極的激勵R- w或R- o;假如智能體在徘徊不前,會得到消極獎勵 R − t。在每個回合結束後,環境和智能體都會被重置。

  下面是一些示例命令(括號里包含從智能體中保留的環境配置,下同):

請導航到蘋果。(有一個蘋果,一個香蕉,一個橙子和一個葡萄。)

ADVERTISEMENT

你能移動到蘋果和香蕉之間的網格嗎?(有一個蘋果和一個香蕉,蘋果和香蕉間有一個空格隔開。)

你能移動到紅蘋果那兒嗎?(有一個青蘋果,一個紅蘋果和一個紅櫻桃。)

  這個導航任務的難點在於,一開始,智能體對這種語言是一無所知的:每個字似乎都沒有意義。經過試驗和犯錯後,智能體必須弄清語言的句法和語義,以正確地執行命令。

  我們添加一個輔助的對象識別任務來幫助智能體學習語言。在探索環境的同時,當某些條件被觸發時,teacher 會詢問一些與對象有關的問題,問題的答案都是一個詞彙,並且答案也由 teacher 提供。下面是一些 QA 示例:

Q:北邊的物體是什麼? A:香蕉。(智能體在香蕉南邊,蘋果北邊,黃瓜西邊。)

Q:香蕉在哪裏?A:北。(智能體在香蕉南邊,蘋果東邊。)

Q:蘋果西邊的物體的顏色是什麼?A:黃色(蘋果的西邊有一個香蕉,東邊有一個黃瓜。)

  我們希望智能體在這個輔助任務的幫助下,能夠更快地學習語言。

  Zero-shot 導航的組合性框架

  我們的框架包含四個主要模塊:語言模塊,識別模塊,視覺感知模塊和動作模塊。框架的設計主要受需要導航到新的物體的影響(圖1b),這些新的物體概念不會出現在命令語句中(僅出現在識別模塊中作為答案顯示,而不會出現在圖2a的語言模塊)。

  這個框架有三個關鍵屬性:

語言模塊必須是組合性的(compositional)。該模塊需要處理句子,同時保留(主要的)句子結構。例子之一是輸出語法分析樹(parse tree)的語法分析器(parser)。

歸納偏向(inductive bias)[Lake et al., 2016]必須從現有的句子中學習。語言模塊知道如果用完全新的單詞填充到已知結構里的單詞位置時,應該如何解析句子。

語言接地(language grounding)(圖2a)和識別(圖2b)必須縮減成(大約)相同的問題。這樣可以確保用n-1個單詞訓練的語言接地在從識別任務中訓練的第 n 個單詞上仍然能正常工作。

  

  圖2:左:框架的示例。輸入是環境圖像和句子(一個導航命令或一個問題)。輸出分別是導航動作或問題的答案。(a)中的紅色和藍色線表示完全相同過程的不同任務。右:語言模塊。輸入是字嵌入序列。輸出是最後一步的注意力地圖。

  實驗

  我們使用了Adagrad,讓隨機梯度下降(SGD)的學習率達到10-5。在所有的實驗中,我們把Batch 的大小設定在16,並且訓練200k 的 batches。目標參數θ - 在每一個J=2k batches 中都會被更新。所有的參數都有一個默認權重衰退,相當於10-4x Bath 大小。對於神經網絡中的每一層,通過默認其參數為0,以及一個標準的派生1/ √ N,其中N是每一層的參數數量。智能體總共擁有500k個探索步驟,探索率(exploration rate)α 的降低是線性的,從1到0。我們修正了編程步驟的數量S作為3。我們使用了4個隨機的初始化來訓練每一個模型。整個框架都使用PaddlePaddle 4來端到端的部署和訓練。更多的部署細節會在附錄8.1中進行描述。

ADVERTISEMENT

  

  圖3:訓練激勵曲線。圖中顯示的激勵是每個回合累積的折扣激勵,由每8k個訓練示例平均得來。每條曲線的陰影區域表示4個隨機初始化之間的方差。(a)我們的框架在不同的命令條件下的激勵曲線。(b)標準命令條件下四個基線的曲線。

  zero-shot 導航

  我們的主要問題是智能體是否具有執行以前從未遇過的命令的“零樣本”(zero-shot)導航能力。我們設計了4個命令條件來訓練智能體:

標準(Standard)。訓練的命令集與測試的命令集具有相同的分布。

NC。在訓練的命令集中刪除某些詞彙組合,雖然訓練命令集中仍包含所有單詞。具體來說,我們考慮了三種類型的詞彙組合:(object,location),(object,color)和(object,object)。我們列舉了美中類型的所有組合,並隨機在 teacher 的導航命令集中刪除了10%的組合。

NWNav 和 NWNavRec。一些物體詞(object words)被排除在導航訓練之外,而且僅出現在識別任務的訓練中,作為新的概念。NWNavRec 保證新詞不會出現在問題中,而只能出現在答案中;NWNav 則不出現在答案中。我們隨機排除了10%的物體詞。

  我們的框架在不容的訓練環境下都有相同的超參數。在測試中,我們把留存( held-out)綜合物/詞語 拉回到命令中(例如,標準的條件),並且測試了10k 的session,用於四個導航的次級任務: nav_obj, nav_col_obj, nav_nr_obj, and nav_bw_obj (Appendix 8.3).

  

  圖10.不同session 中attention 地圖的例子。頂部:導航命令。中間:當下的環境圖像。底部:相應的attention 地圖,由語言模塊輸出。需要指出的是,attention 地圖都是自我為中心的,地圖的中心就是智能體的定位。

  

  圖11. 用兩個例子來描述語言的編程過程。考慮到當下的環境圖像和導航命令,程序通過三個步驟生成一個attention map。

  在每一個步驟中,程序會關注不同的句子中的不同部分。詞語的attention 通過彩色線條進行可視化,其中,越亮的部分代表更多的attention。在左邊,每一個彩色線條代表的相應的attention 地圖和當下的環境,以及此前儲存的一個(圖2 右)。最後的attention地圖被用作程序的輸出。

  

  圖12:bypassing long walls的例子。在每一個通道中,只有三個關鍵的步驟得到了展示。

  我們計算了成功率,其中成功指的是智能體要在每一個session規定的時間內抵達目標定位。圖3a 展示了訓練的回報曲線,表1a 包含了成功率。曲線之間彼此很接近,這和期待的一致,因為指令(commands)10%的減少幾乎不會改變學習的難度。我們在所有的環境下都獲得了幾乎相同的成功率,並且獲得了高的zero-shot 成功率。NWNavRec 的結果顯示,雖然一些新的對象概念是從一個完全不同的問題中進行學習的,但是它們也能夠在不需要任何模型訓練和調參的傾向下,在導航這一方面進行測試。

  

  表1:成功率(%),(a)我們的框架和SimpleAttention(SA)在不同訓練命令條件(列)下的四個子任務的分解率。最後四行顯示包含測試session,包含訓練中沒有看到的命令。 (b)標準命令條件下所有方法的總體成功率。

  結論

  本文展示了虛擬智能體的一個端到端的組合框架,能夠將已學會的技能推廣到新的概念,而無需建模再訓練或微調。這種推廣能力是通過重新利用在其他任務中學到的,並由自然語言編碼的知識實現的。通過以不同的方式組合詞彙,智能體能夠應對新的任務,同時利用現有的知識。這種能力對於快速學習和更好地泛化至關重要。我們在框架實際中反映了這些重要觀點,並將其應用於具體的例子:在 XWORLD 中執行 zero-shot 導航。

  我們的框架只是一個可能的實現。框架的一些組件仍存在改進的空間。我們的主張並不是一個智能體必須像論文中展現的那樣具有心智模型(mental model),但是必須具有在第1節和第4節所討論的幾個關鍵屬性。目前,智能體還只是在 2D 環境中進行了探索。未來,我們計劃將該智能體放到例如 Malmo [Johnson et al。,2016]那樣的 3D 環境中。這將會提出一些新的挑戰,例如,視覺感知和幾何變換將更加難以模擬。我們希望目前的框架為如何在 3D 環境中訓練類似的智能體提供一些初步的思考。

  (更多實現細節請參考論文,下載地址:https://128.84.21.199/pdf/1703.09831.pdf)

  3月27日,新智元開源·生態AI技術峰會暨新智元2017創業大賽頒獎盛典隆重召開,包括“BAT”在內的中國主流 AI 公司、600多名行業精英齊聚,共同為2017中國人工智能的發展畫上了濃墨重彩的一筆。

  文字實錄:新智元“春節”引爆AI原力,群星縱論中國AI大棋局

  訪問以下鏈接,回顧大會盛況:

阿里雲棲社區:http://yq.aliyun.com/webinar/play/199

愛奇藝:http://www.iqiyi.com/l_19rrfgal1z.html

騰訊科技:http://v.qq.com/live/p/topic/26417/preview.html

ADVERTISEMENT