OpenAI Baselines 更新,新增 HER 強化學習演算法
AI 研習社按:富有挑戰的新測試環境和任務,極具競爭力的基準模型,你感到興奮和壓力了嗎?
為了方便快速開發迭代以及對比測試,各大人工智慧機構都會在專門開發的模擬器(實驗平台)內布置測試環境和測試任務,然後後續研究就只需要關注演算法本身。OpenAI 就在自己的 Gym 平台中搭建了許多實驗環境,包括 Atari 2600 遊戲系列、MuJoCo 物理模擬器、Toy text 文本環境等等。
隨著近期 PPO(Proximal Policy Optimization,近端策略優化)這類新控制演算法的出現,在 OpenAI 看來 MuJoCo 中現有的幾個四足機器人、半獵豹機器人、仿人機器人的連續運動控制任務都已經可以輕鬆解決了,甚至參照真實機器人(波士頓動力 Atlas)設計的具有 30 個自由度的模擬模型都已經跑起來了。 OpenAI 現在也就根據自己過去一年的研究進展放出了一組八個新的機器人控制任務。
新的機器人連續控制任務
同樣是藉助 MuJoCo 物理模擬器,這次 OpenAI 在 Gym 中搭建了兩組共八個新環境 & 新任務。這些任務不僅難度要比之前 MuJoCo 中的任務明顯高一些,而且也需要控制來自真實機器人結構設計的模擬模型,實現一些現實世界任務。
這八個任務都是默認為稀疏反饋的,目標未達成則反饋為 -1,在允許的誤差內達成則為 1。環境中也帶有密集反饋的版本,但是 OpenAI 的研究人員們認為稀疏反饋的情況更接近於機器人在實際使用中會遇到的狀況,所以希望大家還是以稀疏反饋的版本為主。
Fetch 機械臂
基於 Fetch 機械臂的末端運動控制,共有末端位置、撥動冰球、推箱子、舉箱子四個任務
左:FetchReach,「末端位置」,控制機械臂,讓末端到達指定的空間位置(紅點)
右:FetchSlide,「撥動圓盤」,控制機械臂撥動圓盤,讓它在桌子上滑動,最後到達指定位置
左:FetchPush,「推箱子」,控制機械臂推動一個盒子,讓它到達指定位置
右:FetchPickAndPlace,「舉箱子」,通過機械臂末端的平行夾鉗從桌子上拿起盒子,讓它到達桌子上方指定的空間位置
OpenAI 已經研究了這些問題一段時間了,比如對於 FetchSlide「撥動圓盤」任務,他們完全在模擬環境中訓練了控制演算法,然後把它部署在機器人上。為了讓機器人能夠正常運行,以及應對環境中的隨機變化,他們還為之新設計了閉環控制系統,讓完全在模擬器中訓練的控制演算法結合一部分來自真實世界反饋的矯正。在下面動圖裡的實驗就是運行在真實機器人上時在圓盤下面墊了一個薯片袋子,改變了圓盤的運動特性,而閉環控制的機械臂仍然可以適應這一隨機改變,把圓盤送到指定位置(紅點處)。相比之下一個傳統的開環(前饋)控制演算法連不做改變的真實環境都適應不了。
ShadowHand 機械手
機械手模型參照的是 Shadow Dexterous Hand,這是一個完全仿照人手設計的具有 20 個驅動自由度、4 個半驅動自由度、共 24 個關節的機械手,它的大小也和人手大小相同。基於 ShadowHand 機械手的四個任務為手指捏合、控制方塊、控制雞蛋和控制筆。OpenAI 也已經給出了一些自己的控制雞蛋和筆的學習成果視頻,看起來還挺順溜的。
左:HandReach,「手指捏合」,要讓大拇指和另一根指定的手指在手掌上方某個指定的位置接觸
右:HandManipulateBlock,「控制方塊」,控制一個方塊讓它達到指定的位置和方向
左:HandManipulateEgg,「控制雞蛋」,控制一個雞蛋讓它達到指定的位置和方向
右:HandManipulatePen,「控制筆」,控制一枝筆讓它達到指定的位置和方向
新的基準演算法:HER
隨著新的機器人環境發布,OpenAI 也同步發布了 Hindsight Experience Replay(後見經驗重放,HER)演算法的代碼作為環境的基準模型之一。HER 來自論文 https://arxiv.org/abs/1707.01495 ,這是一種可以從失敗經驗中學習的強化學習演算法。OpenAI 的實驗表明 HER 只依靠稀疏反饋就可以針對多數新的機器人控制問題學習到成功的策略。
HER 簡述
OpenAI 以 FetchSlide 任務為例介紹了 HER 演算法的核心思想。現在需要用機械臂的末端撥動圓盤讓它到目標位置。對於強化學習模型來說,初次嘗試基本是註定失敗的;如果不是特別的幸運,接下來的幾次嘗試也同樣會失敗。典型的強化學習演算法是無法從這些失敗經驗中學習的,因為它們一直接收到固定的失敗(-1)反饋,也就不含有任何可以指導學習的信號。
人類在執行任務的時候其實有一個直覺的感受是:即便我沒有達成原來那個給定的目標,我起碼還是完成了另外一個目標的。HER 的核心思想就是把這一人類直覺公式化。在這裡,HER 會把實際達到的目標暫且看成要達到的目標;進行這個替換以後,演算法認為自己畢竟達到了某個目標,從而可以得到一個學習信號進行學習,即便達到的目標並不是最開始任務要求的那個目標。如果持續進行這個過程,最終演算法可以學會達成任意目標,其中也自然就包括了我們最開始要求的目標。
依靠這樣的辦法,即便最開始的時候機械臂根本就碰不到圓盤、以及反饋是稀疏的,最終它也學會了如何把圓盤撥到桌子上的指定位置。這個演算法之所以稱為 Hindsight Experience Replay 後見經驗重放,就是因為它是在完成了一次動作之後再選定目標、重放經驗進行學習(重放經驗的方法在 DQN、DDPG 等策略無關的強化學習演算法中經常用到)。也所以,HER 可以和任何策略無關的強化學習演算法結合起來使用,比如 DDPG+HER。
HER 測試結果
經過測試,OpenAI 的研究員們發現 HER 在基於任務、反饋稀疏的環境中有著異常好的表現。原本的 DDPG 在稀疏和密集反饋兩種情況下都幾乎無法完成任務, DDPG + HER 在稀疏反饋下不僅具有極高的成功率,甚至還大幅超過密集反饋下的 DDPG + HER (這個結果真是耐人尋味)。在 OpenAI 的其它實驗中,DDPG + HER 多數時候也都有最好的表現。
和 OpenAI 一同改進 HER
雖然 HER 在稀疏反饋環境下學習複雜的目標指向任務已經顯示出了不錯的潛力,OpenAI 認為它還有很大的提升空間。和以往一樣,OpenAI 邀請更多研究者和他們一起改進 HER,以及考慮其它一些強化學習整體的問題。
自動創建後見目標:目前 OpenAI 用手工編寫的固定策略代碼選擇要替換的後見目標,如果這個策略可以自行學習就會很有意思。
無偏 HER:後見目標替換的過程其實會不受約束地改變模型學到的經驗的分布。理論上這種偏倚可能會導致一定的不穩定性。雖然 OpenAI 目前的實際實驗中還沒發現這種問題,但確實最好能夠改進出無偏版本的 HER。
HER + HRL:OpenAI 之前已經有了層次化強化學習(hierarchical reinforcement learning)方面的一些研究成果。那麼除了直接對任務目標應用 HER,OpenAI 認為也有機會把它應用於動作上,讓策略產生更好的動作。比如高層次模型要求低層次模型達到某個任務 A 的時候,就可以利用 HER 進行高效學習。
更豐富的評價函數:如果把額外的輸入作為價值函數的條件會發生什麼呢?比如縮小係數或者成功率閾值,甚至還可以考慮把他們也作為後見中替換的目標。
更快的信息傳播:多數策略無關的深度強化學習演算法都需要使用一群目標網路來提高訓練穩定性。然而,由於發生改變後傳播需要時間,這將會限制訓練速度,OpenAI 的研究人員們就已經發現這經常是他們的 DDPG+HER 訓練中影響訓練速度的最重要因素。那麼也就很值得考慮有沒有其它能穩定訓練過程但不造成如此明顯速度下降的方法。
HER + 多步反饋:由於其中含有目標替換,所以 HER 中使用的經驗是高度策略無關的。那這樣就讓 HER 很難和多步操作後獲得反饋值的演算法共同使用。然而,我們很多時候更希望使用多步操作的方法,因為它們能讓關於反饋值的信息傳播得快得多。
包含策略的 HER:同樣是由於含有目標替換,所以 HER 目前只能和策略無關的演算法一同使用。然而目前最先進的 PPO 之類的演算法都表現出了非常好的穩定性。如果能想辦法把這樣的策略相關的演算法和 HER 結合起來使用肯定很有意思。這個方向目前已經有一些初步的研究成果,比如 https://arxiv.org/abs/1711.06006 。
頻繁動作的強化學習:目前的強化學習演算法都對動作頻率非常敏感,這也是為什麼 Atari 遊戲的演算法中經常用到跳幀技巧的原因。在連續控制領域,隨著模型動作的頻率逐漸提升到無限大,模型的表現會逐漸下降到 0。這其中有兩個原因:探索行為的不連貫性,以及為了及時傳播反饋中的信息需要引導更多次。如何設計一個可以高效利用樣本、而且即便動作頻率上升到無限大也能保持表現的演算法呢?
把 HER 和強化學習的近期進展結合起來:目前有許許多多的研究在嘗試提升強化學習的各個方面。目前作為開頭,HER 已經可以和優先經驗重放(Prioritized Experience Replay, https://arxiv.org/abs/1511.05952)、分散式強化學習(https://arxiv.org/abs/1707.06887)、熵正則化強化學習(entropy-regularized RL,https://arxiv.org/abs/1704.06440)以及反向過程生成(reverse curriculum generation,https://arxiv.org/abs/1707.05300 )等方法結合起來。
新的八個環境已經可以在 https://gym.openai.com/envs/#robotics 詳細查看,新的 HER 基準演算法代碼也已經和以往的基準演算法一起開源在https://github.com/openai/baselines。
對於新任務和新演算法,我們和 OpenAI 一同期待更精彩的後續研究。
via OpenAI Blog,AI 研習社編譯。
NLP 工程師入門實踐班:基於深度學習的自然語言處理
三大模塊,五大應用,手把手快速入門 NLP
海外博士講師,豐富項目經驗
演算法 + 實踐,搭配典型行業應用
隨到隨學,專業社群,講師在線答疑
新人福利
關注 AI 研習社(okweiwu),回復1領取
【超過 1000G 神經網路 / AI / 大數據,教程,論文】
OpenAI 提出層級強化學習,給長序列動作學習帶來新的曙光
※多Agent 學習 AI 炸彈人遊戲挑戰賽——Playground
※如何用 Python 和深度神經網路識別圖像?
TAG:AI研習社 |