伯克利提出DeepMimic:使用強化學習練就18般武藝

選自BAIR Blog,作者:Xue Bin (Jason) Peng,機器之心編譯。

運動控制問題已經成為強化學習的標準基準,深度強化學習方法被證明適用於包括操縱和移動的多種任務。但是,使用深度強化學習訓練的智能體通常行為不太自然,會出現抖動、步伐不對稱、四肢動作過多等現象。而最近 BAIR 實驗室將模模擬實動作片段與強化學習結合,令智能體能從參考動作片段中學習流暢和高難度的動作。

我們從計算機繪圖中得到了大量靈感,基於物理的對自然動作的模擬數十年來已經成為廣泛研究的主題。對動作質量的關注通常受電影、視覺效果和遊戲應用的推動。這些年來,關於基於物理的人物動畫的大量工作開發出控制器,可生成適用於大量任務和人物的魯棒性、自然動作。這些方法通常利用人類洞察納入特定任務的控制結構,從而為智能體可執行的運動提供強大的歸納偏置(這些智能體包括有限狀態機、簡化模型和逆動力學)。但是由於這些設計決策,控制器通常特定於某種智能體或任務,為行走開發的控制器可能無法擴展至更加動態的技巧(缺乏人類洞察)。

在本研究中,我們將從兩個領域中獲取靈感,以利用深度學習模型的泛化性能,同時生成更自然的動作,可匹敵計算機繪圖中全身運動模擬的當前最優水平。我們展示了一種概念層面上很簡單的強化學習框架,使模擬智能體從參考運動片段中學習高動態、高難度動作,參考運動片段的格式是人類的動作捕捉數據。給出一個簡單的技巧展示,如迴旋踢或後空翻,我們的智能體能夠學習一個魯棒的策略來模仿該技巧。這些策略生成的動作與動作捕捉數據幾乎難以區分。

動作模仿

在大部分強化學習基準中,模擬智能體使用簡單模型來呈現,模型僅提供粗糙的現實世界動態近似。因此智能體傾向於利用模擬的特性開發出現實中不可行的不自然行為。通過結合更真實的生物工程學模型可以使動作更加自然。但是構建高保真模型難度非常大,而且得到的動作有可能還是不自然。

另一種方法是數據驅動,人類運動的參考片段提供自然運動的樣本。然後訓練智能體通過模仿參考運動來生成更自然的動作。模仿運動數據的模擬在計算機動畫中有很長的歷史,近期也出現了一些使用深度強化學習的案例,如《DeepLoco: Dynamic Locomotion Skills Using Hierarchical Deep Reinforcement Learning》。儘管結果看起來更加自然,但是離生動再現大量運動還有很遠的距離。

本研究中,我們的策略將通過一個運動模擬任務來訓練,智能體的目標是再現給出的參考運動。每個參考運動都以目標姿勢序列的形式呈現:

,其中 q_t hat 是時間步 t 的目標姿勢。獎勵函數旨在最小化目標姿勢 q_t hat 和模擬智能體姿勢 q_t 之間的最小平方誤差。

儘管運動模仿應用了更複雜的方法,但是我們發現僅僅最小化追蹤誤差(和一些額外洞察)就可以達到非常好的效果。這些策略是使用 PPO 優化目標來訓練得到的。

有了這個框架,我們能夠開發出適合大量高難度技巧(包括移動、雜技動作、武術和跳舞)的策略。

模擬機器人學習模仿不同技巧。藍色智能體是模擬智能體,綠色智能體在重演對應的動作捕捉片段。從上到下分別為側空翻、側手翻、蹬足上和單手跨欄。

下一步,我們把現有方法與之前模仿動作捕捉片段的結果(比如生成對抗模仿學習(GAIL))進行了對比。我們的方法要比 GAIL 簡單很多,而且能夠更好地復現參考動作。由此得到的策略避免了深度強化學習方法很多常見的 artifacts,使得智能體的運動可以像人一樣流暢。

我們的方法(左)與 Merel et al. [2017] 方法的對比,後者使用 GAIL 模仿動作捕捉數據。相比之前使用深度強化學習的研究,我們的智能體動作顯然更加自然。

洞見

參考狀態初始化(RSI)

假設智能體正在嘗試模仿後空翻,那麼它如何知道在半空中做一個完整旋轉會得到高獎勵呢?由於大多數強化學習演算法是回溯性的,它們只能觀察到訪問過的狀態獎勵。在後空翻實例中,智能體必須先觀察成功的後空翻軌跡,才能了解哪些狀態能夠得到高獎勵。但由於後空翻對於起跳和著地的初始條件很敏感,智能體不大可能通過隨機探索偶然性地執行成功的後空翻軌跡。為了給智能體一個提示,在每個 episode 開始時,我們把智能體初始化至從參考動作隨機採樣的狀態。因此,智能體有時候會從地面開始,有時候會從後空翻的中間狀態開始。這樣即使智能體尚未熟悉如何達到這些狀態,它們也能學習到哪些狀態能獲得高獎勵。

RSI 通過將智能體初始化至從參考動作隨機採樣的狀態,為它提供豐富的初始狀態分布。

以下是使用 RSI 訓練和未用 RSI 訓練的後空翻策略對比,在後者的訓練中智能體總是被初始化到固定的初始狀態,即後空翻動作的起始點)。沒有用 RSI 訓練時,智能體沒有學習到「空翻」,只學到了「後」。

提前終止(ET)

提前終止對於強化學習從業者來說至關重要,它通常用來提高模擬效率。如果智能體在某個狀態被困住了,不再可能成功學習到動作,那麼該 episode 將提前終止,以避免繼續模擬。這裡我們證明提前終止實際上對結果有顯著影響。還以後空翻為例。在訓練的早期階段,其策略是很糟糕的,智能體大部分時間都在失敗。智能體一旦摔倒,就很難再恢復到原來的狀態,因此智能體大部分時間內都在地上掙扎。這和其它方法論如監督學習中遇到了類別不均衡問題相似。一旦智能體到達了這樣的狀態(例如摔倒),就終止這個 episode,以緩解該問題。ET 結合 RSI 有助於確保數據集的主要部分是由接近參考軌跡的樣本構成的。沒有 ET,智能體永遠無法學會「空翻」,而只是摔倒然後在地上嘗試表演這個動作。

更多結果

通過提供不同的參考動作,類人體總共已學會超過 24 種技能。

除了模仿動作捕捉片段,我們還可以訓練類人體執行其他任務,比如踢一個隨機放置的目標,或者把球扔向目標。

訓練向隨機目標扔球的策略

我們也可以訓練一個仿造的 Atlas 機器人模仿人類的動作捕捉片段,儘管 Atlas 的形態和質量分布非常不同,它依然可以重現預期的動作。該策略不僅可以模仿參考動作,還可以從相當顯著的干擾中恢復過來。

訓練 Atlas 來完成迴旋踢,即使存在外部擾動,訓練出的策略也極為穩健

但是如果我們沒有動作捕捉片段,該怎麼辦?假設我們想要模擬霸王龍。因各種原因,捕捉霸王龍的動作不現實。所以,作為替代,我們可以用手繪的藝術動畫來做關鍵幀,然後訓練策略來模擬這些動作。

模擬訓練霸王龍,來模仿藝術創造的關鍵幀

而且不只是霸王龍,讓我們訓練一頭獅子:

模擬獅子,參考動作由 Ziva Dynamics 提供

用 418D 狀態空間和 94D 動作空間模擬一條龍

這裡想說的是,一個簡單的方法表現都很驚人。只是最小化循跡誤差(tracking error),我們就能訓練掌握不同特徵和技能的策略。我們希望該研究有助於啟發為虛擬和現實機器人開發更多動態動作技能。探索從更多源(例如視頻)中模擬動作也是令人激動的研究方向,例如動物和雜亂環境中比較難的動作捕捉。

論文:DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills

論文鏈接:xbpeng.github.io/projec

摘要:角色動畫(character animation)的一個長期目標是把行為的數據驅動性與可在物理模擬中執行相似行為的系統結合起來,從而逼真地回應擾動和環境改變。我們的研究表明,強化學習方法可用於學習模仿大量樣本動作片段的魯棒控制策略,同時也可以學習複雜的恢復,以適應形態的改變,完成用戶特定的目標。我們的方法處理關鍵幀動作、高度動態動作(比如動作捕捉的翻轉和旋轉)以及重定向動作。

通過結合動作-模仿(motion-imitation)目標與任務目標,我們在互動式設定中訓練能夠智能反應的智能體,例如向目標方向行走或朝用戶指定的目標扔球等。這種方法具有使用動作片段的便利性與動作質量,以高效定義所需的風格和外觀,還結合了 RL 方法和基於物理的動畫所提供的靈活性和泛化性。我們進一步探索了大量將多個片段集成到學習過程的方法,以構建出能執行多個不同技能的智能體。我們還展示了使用多個對象(人、Atlas 機器人、雙足恐龍和龍)和多種技能的學習結果,包括移動、武術和雜技等。

原文地址:bair.berkeley.edu/blog/

推薦閱讀:

TAG:人工智慧 | 強化學習ReinforcementLearning |