編譯:Bing

在這篇博文中,我們將展示深度強化學習將如何控制機械臂的靈活動作。我們還會討論如何用低成本的硬體,高效地使用強化學習,以及如何能加速學習速度。

為什麼用機械抓手?

目前市面上大部分機器人都是用簡單的抓手進行控制,對工廠來說已經足夠了。但是,對於非結構化的、以人為中心的環境(例如家庭),能進行多工的操控器是非常重要的。多手指的機械手是最常見的操控器之一,它能完成多種日常生活中的動作,例如移動物體、開門、打字、繪畫等。

強化學習應用例項:讓機械手靈活多變

但是,控制靈活的機械手非常困難。其中精密的感測器和驅動器使得高階機械手價格很高。深度強化學習的出現能在便宜的硬體上實現複雜任務的自動控制,但是很多深度強化學習應用都需要大量模擬資料,這讓他們在成本和安裝上都很複雜。人類可以快速學習各種動作,無需大量的動作示例。我們首先會展示深度強化學習是如果透過在現實世界中的訓練而用於學習複雜操控行為的,無需任何模型或模擬器,使用低廉的機器人硬體。之後,我們會展示加入額外的監督機制,包括示範和模擬,從而能加速學習的時間。我們在兩個硬體平臺上進行學習:一個是有三根手指的簡易機械手,價格不到2500美元。另一個是高階的Allegro機械手,價格為15000美元。

強化學習應用例項:讓機械手靈活多變

現實中的無模型強化學習

深度強化學習演算法透過試錯法進行學習,從經驗中將獎勵函式最大化。我們將用一個氣門轉動任務當做示範,閥門或者水龍頭必須旋轉180°才能開啟。

強化學習應用例項:讓機械手靈活多變

獎勵函式僅僅是目前閥門的方向和目標位置之間的負面距離,機器人手臂必須自己思考如何移動旋轉。深度強化學習的中心問題是如何利用微弱的獎勵訊號找到能讓該任務成功的複雜且協調的行為策略。該策略由一個多層神經網路表示,通常這需要大量實驗,由於數量太多,領域內專業人士都在討論深度強化學習方法能否用於模擬之外的訓練。然而,這樣會對模型的可用性施加很多限制:在現實環境中直接學習可以從經驗中學到任意一種任務,然而用使用模擬器則需要設計合適的示例,對任務和機器人進行建模,並仔細調整它們的引數,以實現良好結果。首先,我們將證明現有的強化學習演算法是可以直接在真是硬體上直接學習這一任務的。

我們用Truncated Natural Policy Gradient來學習這一任務,在真實硬體上需要大約9個小時。

強化學習應用例項:讓機械手靈活多變

直接的強化學習方法很有吸引力,它無需過多假設,而且能自動掌握很多技能。由於這種方法除了建立函式無需其他資訊,所以很容易在改進後的環境中重新學習技能,例如更換了目標物體或機械手。

下圖用了不同的材料(海綿),也能使用一樣的方法讓機械手學習旋轉閥門。如果用模擬法,很難精確學習,而直接在現實中訓練可以不需要精確的示範。

強化學習應用例項:讓機械手靈活多變

另一個任務是在水平平面上翻轉180°的板子,在沒有模擬案例的情況下,用了8小時解決了這一問題。

強化學習應用例項:讓機械手靈活多變

強化學習應用例項:讓機械手靈活多變

這些行為都是在不到2500美元的裝置上實現的,另外還有一臺定製的桌上型電腦。

用人類示範加速學習

無需模型的強化學習可以很通用,但是假如人類專家在其中加入監督,將更有助於學習速度的加快。具體方法可以參考我們的論文

Demonstration Augmented Policy Gradient(DAPG)

。DAPG背後的思想是,人類示範可以從兩方面加速強化學習:

透過行為克隆對策略提供好的初始狀態

在學習過程中新增輔助學習訊號,用輔助獎勵引導研究探索

強化學習中的輔助目標能阻止策略在強化學習過程中偏離示範。用有限的資料克隆的純粹行為通常無法訓練成功的策略,因為分佈偏差和有限的資料支援。強化學習對魯棒性和泛化很重要,利用示範的確可以加速學習過程。下圖是我們在不同任務上做出的驗證:

強化學習應用例項:讓機械手靈活多變

在現實世界,我們能用帶有多功能感測器的抓手和演算法顯著加快學習速度。下面的示例中,是人類老師直接移動機器人的手指,結果將訓練時間減少到了4個小時以下。

強化學習應用例項:讓機械手靈活多變

示範將人類的先驗知識用一種自然的方式結合到了演算法中,並且加速學習過程。然而,並不是所有任務都能用示範加速,我們還需要尋找其他替代的加速方法。

透過模仿加速學習

某種任務的模擬模型能透過大量的模擬資料對顯示資料進行增強。對於要表示現實世界複雜性的莫資料,通常需要對多種模擬引數進行隨機選擇。此前的研究證明這樣的隨機結果有助於產生穩定的策略,可以用於人臉的遷移。我們的實驗也證明了用隨機資料從模擬到現實的遷移很有效。

強化學習應用例項:讓機械手靈活多變

雖然對脆弱的機器人來說,透過隨機化進行遷移是很不錯的選擇,但這種方法會有幾點弊端。首先,由於是隨機的,最終策略會過於保守。另外,引數的選擇也是產生好結果的重要一點,某一領域中好的結果也許不能遷移到其他領域中,第三,在複雜模型中增加了大量隨機的結果,會使得訓練時間大大增加,也需要更多計算量。最後,可能也是最重要的一點,一個精準的模擬器必須手動搭建,進行每項新任務時都要手動調整,需要很多時間。

用學習過的模型加速學習

此前,我們同樣研究了經過學習的動態模型是如何加速現實中強化學習的,同時無需手動調整模擬器。用這種方法,動態模型中的區域性導數能近似計算出來,可以對區域性進行迭代最佳化策略。這種方法能從現實中獲得多種隨時可用的操控策略。另外,我們可以看到演算法還能在軟體機器人抓手上學會控制動作。

強化學習應用例項:讓機械手靈活多變

強化學習應用例項:讓機械手靈活多變

然而,這種方法的表現也受到模型質量的影響,未來會朝著基於模型的強化學習的方向研究。

結語

雖然現實環境中的訓練很普遍,但它仍有幾處挑戰:

由於需要進行大量探索行為,我們發現機械抓手很快就會發熱,所以需要時間暫停,以免造成損壞。

由於抓手要處理多種任務,我們需要搭建一個自動重啟裝置。未來如果想取消這一裝置,就需要自動學習如何重啟了。

強化學習方法需要提供獎勵,而這一獎勵需要手動設計。最近我們正在研究自動獎勵機制。

但是,讓機器人直接從真實世界學習複雜技巧是建立完全通用的機器人的必經之路。和人類學習一樣,機器人也可以透過簡單的試錯獲取技巧。同時加上示範、模擬器和先驗知識,可以大大減少訓練時間。