當前位置:
首頁 > 科技 > OpenAI發布最新多目標強化學習的機器人模擬環境

OpenAI發布最新多目標強化學習的機器人模擬環境

前言

最近,OpenAI發布了一份有關「多目標強化學習」研究報告。基於現有的機器人硬體,引入了一套具有挑戰性的連續控制任務(與OpenAI Gym集成)。這些任務包括用Fetch機械臂來推動、滑動、拾取和放置,以及用Shadow Dexterous Hand來操縱手中的物體。所有的任務都有稀疏的二元獎勵,並遵循多目標強化學習(Reinforcement Learning, RL)框架,在該框架中,智能體被告知要使用附加的輸入做什麼。同時,在研究要求部分提出了一套改進RL演算法的具體研究思路,其中大部分與多目標RL和事後經驗回放(Hindsight Experience Replay)有關。

環境

所有的環境都是作為OpenAI Gym(Brockman等人,於2016年提出)的一部分發布的,並使用MuJoCo(Todorov等人,於2012年提出)物理引擎進行快速和精確的模擬。

圖1:提出的四個提取環境:FetchReach、FetchPush、FetchSlide和FetchPickAndPlace。

Fetch環境

Fetch環境是基於7-DoF Fetch機械臂的,該機械臂有一個雙指的並行抓取器。它們與Andrychowicz等人(於2017年)使用的任務非常相似,但我們增加了一個附加的任務,而且拾取和放置任務略有不同。

在所有的Fetch任務中,目標是三維的並描述物體的期望位置(或到達的末端器)。獎勵是稀疏的、二元的:如果物體位於目標位置(在5 cm的容忍範圍內),則智能體獲得0的獎勵,否則獲得-1的獎勵。動作是四維的:三維空間在笛卡爾坐標(Cartesian coordinates)中指定了想要的夾持抓取器移動,最後一個維度控制了抓取器的開啟和關閉。在將控制權交還給智能體之前,我們在隨後的20個模擬器步驟(每個Δt= 0.002)中應用相同的操作,即智能體的作用頻率為f = 25Hz。觀察結果包括抓取器的笛卡爾坐標,其線速度(linear velocity),以及機器人抓取器的位置和線速度。如果一個物體存在,我們也會包含物體的笛卡爾位置和使用歐拉角(Euler angle)的旋轉,其線速度和角速度(angular velocity),以及它相對於抓取器的位置和線速度。

到達 (FetchReach):任務是將抓取器移動到目標位置。這項任務是非常容易學習的,因此是一個確保新想法有效的合適基準。

推動 (FetchPush):一個盒子放在機器人前面的桌子上,任務是將它移動到桌子上的目標位置。機器人的手指被鎖住以防止抓握。所學到的行為通常是推動和滾動的混合。

滑動 (FetchSlide):一個冰球被放置在一個長的、滑的桌子上,目標位置在機器人能到達的範圍之外,所以它必須用這樣的力量撞擊冰球,使其滑動,然後由於摩擦而停留在目標位置。

拾取和放置(FetchPickAndPlace):任務是抓住一個盒子,並將它移動到目標位置,該位置可能位於桌面上或桌面上方的空氣中。

圖2:所提出的Shadow Dexterous Hand的四個環境:HandReach、HandManipulateBlock、HandManipulateEgg和HandManipulatePen。

Hand環境

這些環境是基於Shadow Dexterous Hand的,它是一個具有24個自由度的擬人機器人手。在這24個關節中,20個可以被獨立控制,而其餘的是耦合關節(coupled joint)。

在所有的手動任務中,獎勵都是稀疏的、二元的:如果目標已經實現(在某個任務特定的容忍範圍內),則智能體獲得值為0獎勵,否則為-1。動作是20維的:我們對於手的所有非耦合關節使用絕對的位置控制。在將控制返回給智能體之前,我們在20個隨後的模擬器步驟(每個Δt= 0.002)中應用相同的動作,即智能體的動作頻率為f = 25Hz。觀察結果包括機器人關節的24個位置和速度。對於正在操作的物體,我們還包括其由四元數(因此為7維)表示的笛卡爾位置和旋轉,以及它的線速度和角速度。在到達任務中,我們包括所有5個指尖的笛卡爾位置。

到達(HandReach):一個簡單的任務,其目標是15維的、並且包含手的每個指尖的目標笛卡爾位置。與FetchReach任務類似,此任務相對容易進行學習。可以這樣說,如果指尖與其想要達到位置之間的平均距離小於1厘米,則認為該目標已實現。

塊操縱(HandManipulateBlock):在塊操縱任務中,一個方塊被放置在手掌上。任務是操縱該方塊以達到目標姿勢。該目標是7維的、包括目標位置(以笛卡爾坐標表示)和目標旋轉(以四元數表示)。我們包含多個難度係數不斷增加的變體:

?HandManipulateBlockRotateZ:圍繞塊的z軸進行隨機目標旋轉。沒有目標位置。

?HandManipulateBlockRotateParallel:圍繞塊的z軸進行隨機目標旋轉,以及針對x和y軸進行軸對齊目標旋轉。沒有目標位置。

?HandManipulateBlockRotateXYZ:針對塊的所有軸進行隨機目標旋轉。沒有目標位置。

?HandManipulateBlockFull:針對塊的所有軸進行隨機目標旋轉。隨機目標位置。

可以這樣說,如果塊的位置與其所需到達位置之間的距離小於1厘米(僅適用於完整的變體)並且旋轉的差值小於0.1弧度,則認為目標已實現。

雞蛋操縱(HandManipulateEgg):這裡的目標與塊操縱任務相似,但是使用的是一個雞蛋形物體而不是塊。我們發現物體的幾何形狀會使問題的嚴重程度上有明顯的區別,而雞蛋可能是最簡單的物體。目標又是7維的、包括目標位置(以笛卡爾坐標表示)和目標旋轉(以四元數表示)。我們在其中涉及了多個難度係數不斷增加的變體:

?HandManipulateEggRotate:圍繞雞蛋所有軸進行隨機目標旋轉。沒有目標位置。

?HandManipulateEggFull:圍繞雞蛋的所有軸進行隨機目標旋轉。隨機目標位置。

可以這樣說,如果雞蛋的位置與其所需到達位置之間的距離小於1厘米(僅適用於完整的變體)並且旋轉差小於0.1弧度,則認為該目標已實現。

筆操縱(HandManipulatePen):這是另一種操縱任務,這次使用筆而不是塊或雞蛋。抓住一支筆很困難,因為它很容易從手上掉下來,且很容易碰撞並卡在其他手指之間。目標是7維的、包括目標位置(以笛卡爾坐標表示)和目標旋轉(以四元數表示)。

多目標環境界面:所有環境都使用描述任務期望得到結果的目標。例如,在FetchReach任務中,所需的目標位置由一個三維目標描述的。雖然我們的環境與OpenAI Gym API完全兼容,但我們稍微對其進行擴展以支持這種新型環境。所有的環境都擴展了這種新引入的gym GoalEnv。

目標感知的觀察空間:首先,它對觀察空間施加約束。更具體地說,它要求觀察空間是gym.spaces.Dict空間的類型,至少有以下三個關鍵字:

?觀察(observation):對環境的實際觀察,例如機器人的狀態和物體的位置。

?要達到的目標(desired_goal):智能體必須達到的目標。在FetchReach的情況下,這將是一個三維目標位置。

?已達到目標(achieved_goal):智能體目前所取得的目標。在FetchReach的情況下,這是機器人末端執行器的位置。理想情況下,這將儘可能快地與所需達到目標相同。

公開的獎勵函數:第二,我們以一種允許使用不同的目標重新計算獎勵的方式公開獎勵函數。這是替代目標的HER風格演算法的必要條件。

與標準RL演算法的兼容性:由於OpenAI Gym在大多數RL演算法框架和工具(如OpenAI Baselines)中普遍得到支持,我們提供了一個簡單的包裝器,可將新的基於字典的目標觀察空間轉換為更常見的數組表示。

研究要求

決定哪個問題值得研究可能是研究中最難的部分。下面我們提出了一系列的研究問題,我們認為這些問題會導致廣泛適用的RL改進。對於每個問題,我們提出至少一個可能的解決方案,但解決其中的許多問題需要發明新的想法。

自動事後目標生成(Automatic hindsight goals generation):Andrychowicz等人(於2017年)提出的,用於HER的目標是使用手工啟發式生成的,例如,在一個場景中的隨機未來時間步驟中回放已實現的目標。相反,我們可以了解哪些目標對於最有回放價值。它們可以從訓練期間已實現或者已看到的目標中,或者通過一個單獨的神經網路生成,並將其作為輸入轉換的目標中進行選擇。最大的問題是如何判斷哪些目標最有回放價值。一種選擇是訓練生成器以最大化貝爾曼誤差(Bellman error)。這與優先經驗回放(Prioritized Experience Replay)有很多相似之處,我們期望本文中的一些技術可能對此有用。

無偏差HER:HER以無原則的方式改變了回放(狀態、動作、下一個狀態、目標)元組的聯合分布。理論上,這可能使得在非常隨機的環境中不可能進行訓練,儘管我們在實踐中沒有注意到這一點。考慮這樣一個環境,在這個環境中有一個特殊的動作,這個特殊的動作把智能體帶到一個隨機的狀態,然後場景就結束了。如果我們回放未來智能體所實現的目標,這種動作在事後看來似乎是完美的。如何避免這個問題?一種可能的方法是使用重要性採用來取消採樣偏差,但這可能會導致梯度偏差過大。

更豐富的價值函數:UVFA(Schaul等人於2015年提出)將價值函數擴展至多個目標,而TDM(Pong等人於2018年提出)將價值函數擴展至不同的時間範圍。儘管學習的函數更加複雜,但這兩項創新可以使訓練過程變得更容易。我們怎樣完善價值函數才能提高採樣效率?二分獎勵(binary rewards)的貼現因子(discount factor)和成功閾值(success threshold)又是怎樣的?

更快的信息傳播:大多數先進的off-policyRL演算法使用目標網路來穩定訓練過程(例如:DQN(MNIH等人於2015年提出)或DDPG(Lillicrap等人於2015年提出))。然而,這是以限制演算法的最大速度作為代價的,每個目標網路更新發送的信息都會在時間上返回上一步(如果使用一步自助法(one-step bootstrapping)的話)。我們注意到,在訓練的早期階段,DDPG+HER的學習速度往往與目標網路更新的頻率成正比,但目標網路更新的頻率/幅度過大會導致訓練不穩定,並使得最終性能表現較差。我們應如何調整目標網路的更新頻率(或更新網路時使用的移動平均係數)以最大限度地提升訓練速度?是否有更好的方法來更新目標網路,而不是簡單地替換或移動平均時間?是否有其他方法來穩定不受學習速度限制的訓練(例如:與PPO中使用的目標相類似的clipped objective(Schulman等人於2017年提出))。

HER+多步回歸(multi-step returns):HER生成的是off-policy數據,因此,除非我們採用重要性採樣等修正因子,否則無法使用多步返回。儘管有多種解決方案可以處理數據的off-policy(例如:Munos等人於2016年提出),但目前尚不清楚訓練數據遠未處於on-policy狀態時,這些方案是否會有優異的性能表現。另一種方法是使用多步最優緊縮不等式(multi-step optimality tightening inequalities)(He等人於2016年提出)。使用多步返回可能是有益的,因為自助法(bootstraping)頻率的降低可能會導致較少的偏差梯度。此外,它加速了返回相關信息的反向傳遞,因此我們的實驗往往是DDPG+HER訓練的限制因素。

On-policy HER:如何將HER與諸如PPO(Schulman等人於2017年提出)等最先進的on-policyRL演算法相結合?Rauber等人於2017年提出了普通策略梯度(vanilla Policy Gradients)的一些初步結果,但這種方法需要在更具挑戰性的環境(如本文所提出的環境)中進行測試。一種可能的選擇是使用與IPG中使用的技術向類似的技術(Gu等人於2017年提出)。

將HER與RL的最新改進結合在一起:看到近期RL在與HER結合的情況下的改進情況會很有趣。潛在的改進清單很長,例如:優先經驗回放(Schaul等人於2015年提出),分散式RL(Bellemare等人於2017年提出),熵正則RL(Schulman等人於2007年提出)或反向課程生成(Florensa等人於2017年提出)。

動作頻繁的RL:RL對採取動作的頻率非常敏感,這就是為什麼在Atari(Mnih等人於2015年提出)上通常使用跳幀技術的原因。在連續控制領域,隨著採取動作的頻率趨近於無窮大,性能逐步趨近於0,這是由兩方面因素造成的:不一致的探索以及引導更多的時間來及時反向傳播關於返回的信息。如何設計一個即使在採取動作的頻率趨近於無窮時,也能保證其性能的樣本高效的RL演算法。探索過程中的參數雜訊(Plappert等人於2017年提出)可解決探索問題,多步返回可實現更快的信息傳播。其他方法可以是自適應和可學習的跳幀。

來源:「雷克世界」

編譯:嗯~是阿童木呀、KABUDA、EVA


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器人大講堂 的精彩文章:

最新ESI中國大學綜合排名百強出爐
中國晶元產業深度分析,一文看懂國產晶元現狀

TAG:機器人大講堂 |