
摘要
要讓機器人與人類在類似我們社會那樣的社會世界中共存,它們需要掌握類似人類的社交技能,這是很關鍵的。通過編程的方式來讓機器人掌握這些技能是很艱難的。在這篇論文中,我們提出了一種多模態深度 Q 網絡(MDQN:Multimodal Deep Q-Network),可以讓機器人通過試錯的方法來學習類似人類的交互技能。這篇論文的目標是開發能夠在與人類的交互過程中收集數據并且能夠使用端到端的強化學習從高維度傳感信息中學習人類交互行為的機器人。本論文表明,機器人在經過了與人類的 14 天交互之后,可以成功學會基本的交互技能。

圖 1:機器人向人學習社交技能
算法介紹
這里提出的算法由兩個獨立工作的流組成:一個用于處理灰度幀(grayscale frame),另一個用于處理深度幀(depth frame)。
下面的 Algorithm 1 概述了這個算法。因為該模型有兩個流,因為其參數 θ 和 θ- 是由兩個網絡的參數構成的。和 DQN [10] 不同,我們將數據生成階段和訓練階段分開了。每一天的實驗都對應于一個 episode,在這期間,算法要么執行數據生成階段,要么執行訓練階段。

本研究所提出的算法的偽代碼
以下是這兩個階段的簡述:
數據生成階段(data generation phase):在數據生成階段,系統使用 Q 網絡 Q(s, a; θ) 來與其環境進行交互。該系統會觀察當前場景(由灰度幀和深度幀構成),并使用 ε-greedy 策略來采取行動。該環境又會反過來提供標量的獎勵(reward)(請參閱 5(2) 節了解獎勵函數的定義)。交互經歷是
其被存儲在重放記憶 M 中。重放記憶 M 會保存 N 個最近的經歷,然后這些經歷會在訓練階段被用于更新該網絡的參數。
訓練階段(training phase):在訓練階段,該系統會利用存儲在重放記憶 M 中的數據來對網絡進行訓練。超參數 n 表示經歷重放的數量。對于每一次經歷重放,都會從有限大小的重放記憶 M 中隨機采樣出一個包含 2000 次交互經歷的迷你緩存器 B。該模型會在從緩存器 B 中采樣出的 mini batch 上進行訓練,該網絡的參數會在 bellman targets 的方向上迭代式地更新。這個對重放記憶的隨機采樣會打破樣本之間的相關性,因為標準的強化學習方法假定樣本是獨立的且完全分布式的。將該算法分成兩個階段的原因是為了避免延遲——如果該網絡在交互期間同時進行訓練就會產生這種延遲。該 DQN [16] 代理在一個循環中工作,其中它首先會與環境進行交互,然后會將這個轉變存儲到重放記憶中,然后其會從該重放記憶中采樣出 mini batch,并在這個 mini batch 上訓練該網絡。這個循環會不斷重復,直到終止。這個交互和訓練的順序過程在 HRI 之外的領域也許是可以接受的。在 HRI 領域,代理必須基于社會規范來和人類進行交互,因此機器人的任何停頓和延遲都是不可接受的。因此,我們將該算法分成了兩個階段:在第一個階段,機器人通過與人類進行有限時間的交互來收集數據;在第二個階段,其進入階段。在這個休息階段,訓練階段激活從而對該多模態深度 Q 網路(MDQN)進行訓練。
實現細節
這個模型由兩個流(stream)構成,一個用于灰度信息,另一個用于深度信息。這兩個流的結構是完全相同的,每個流都由 8 個層組成(包括輸入層)。整體模型架構如圖 2 所示。

圖 2:雙流式卷積神經網絡
該多模態 Q 網絡的 y 信道和 depth 信道的輸入分別是灰度圖像(198 × 198 × 8)和深度圖像(198 × 198 × 8)。因為每個流都使用 8 幀輸入,因此,來自對應相機的最新的 8 幀是被預處理后堆疊到一起,構成該網絡的每個流的輸入。因為這兩個流是完全一樣的,所以我們在這里只討論一個流的結構即可。198 × 198 × 8 的輸入圖像首先被傳遞給第一個卷積層(C1),其以 3 的步幅卷積計算 9×9 的 16 個濾波器,后面則跟著一個整流線性單元(ReLU)函數并得到每個大小為 64×64 的 16 個特征圖(我們將其記為 16@64×64)。這個來自 C1 的輸出然后會被送入下采樣層 S1,其以 2×2 的步幅應用 2×2 的最大池化(max-pooling)。第二(C2)和第三(C3)個卷積層分別卷積計算 32 和 64 個濾波器,其大小為 5×5,使用了 1 的步幅。C2 和 C3 的輸出通過非線性 ReLU 函數,然后分別被送入下采樣層 S2 和 S3。最后的隱藏層是帶有 256 個整流單元的全連接層。輸出層則是一個全連接的線性層,帶有 4 個單元,每一個單元對應一個合法動作。

圖 3:成功和不成功的握手示例

圖 4:在經過了一系列的 episode 之后,MDQN 在測試數據集上的表現








