DeepMind開源強化學習研究環境Control Suite

 2018-01-04 12:12:00.0

原標題:資源 | DeepMind開源強化學習研究環境Control Suite

選自GitHub

DeepMind 最近開源的強化學習環境 Control Suite 相比 OpenAI Gym 擁有更多的環境,更易於閱讀的代碼文檔,同時更加專注於持續控制任務。它基於 Python,由 MuJoCo 物理引擎支持,是一套強大的強化學習智能體性能評估基準。

圖 1:基準環境。第一行:Acrobot、Ball-in-cup、Cart-pole、Cheetah、Finger、Fish、Hopper。第二行:Humanoid、Manipulator、Pendulum、Point-mass、Reacher、Swimmer、Walker。

DeepMind Control Suite 是一系列穩定、測試良好、易於使用和修改的持續控制任務。這些任務用 Python 編寫,物理模型使用 MJCF 定義。標準化動作、觀察和獎勵結構使得基準簡單,學習曲線易於解釋。

  • 工具鏈接:https://github.com/deepmind/dm_control

  • 演示視頻:https://v.qq.com/x/page/i0528t4od2l.html

控制物理世界是通用智能不可缺少的能力,也是先決條件。確實,通用智能唯一的例子就出現在掌控了世界數百萬年的靈長類動物身上。

物理控制任務有很多共同特性,應該將它們與行爲問題區別對待。不像棋盤遊戲、語言和其他符號域(symbolic domain),物理控制任務本質上是狀態、時間和動作持續的。它們的動態取決於二階運動方程,底層狀態由位置和速度變量組成,而狀態導數是加速度變量。感官信號(即觀察結果)通常攜帶很多有意義的物理單元,隨着不同的時間尺度發生改變。

最近十年,強化學習技術在解決視頻遊戲等困難問題中進展迅速(Mnih, 2015)。街機遊戲模式的學習環境(ALE, Bellemare et al. 2012)是這些進展的關鍵推動因素,提供一系列標準基準用於評估和對比學習算法。DeepMind Control Suite 提供了一套類似的標準基準用於持續控制問題。

OpenAI Gym(Brockman et al., 2016)目前包括的一套持續控制域事實上是持續強化學習中的基準(Duan et al., 2016; Henderson et al., 2017)。與之類似,DeepMind Control Suite 也是一套對持續強化學習算法進行基準測試的任務,同時後者存在一些顯著的區別。DeepMind 只專注於持續控制任務,如分離具備類似單元(位置、速度、力等)的觀察結果,而不是將其串聯成一個向量。我們統一的獎勵結構(見下方)提供可解釋的學習曲線和整合的套件級性能度量。此外,我們強調使用統一設計模式編寫的高質量、文檔化代碼,提供一個可讀、透明、易於擴展的代碼庫。最後,該控件具備 Gym 中所有的域,而且還多出很多。

DeepMind Control Suite 工具包包括:

  • MuJoCo 物理引擎支持的 Python 強化學習環境集,見 suite 子目錄。

  • 爲 MuJoCo 物理引擎提供 Python binding 的庫。

安裝和要求

按照以下步驟安裝 dm_control:

1. 從 MuJoCo 網站的下載頁面下載 MuJoCo Pro 1.50。先安裝 MuJoCo Pro,再安裝 dm_control,因爲 dm_control 的安裝腳本要基於 MuJoCo 的頭文件生成 Python ctypes binding。默認情況下,dm_control 假設 MuJoCo Zip 壓縮包可以提取出~/.mujoco/mjpro150。

2. 運行 pip install git+git://github.com/deepmind/dm_control.git (很快就會有 PyPI 包)或複製該庫,運行 pip install /path/to/dm_control/,來安裝 dm_control Python 包。安裝時,dm_control 在~/.mujoco/mjpro150/include 中從第一步開始查找 MuJoCo 頭文件,不過該路徑可以配置 headers-dir 命令行參數。

3. 安裝 MuJoCo 的許可密鑰,運行 dm_control 時會用到。詳見 MuJoCo 許可密鑰頁面(https://www.roboti.us/license.html)。默認情況下,dm_control 在~/.mujoco/mjkey.txt 中查找 MuJoCo 許可密鑰文件。

4. 如果許可密鑰(如 mjkey.txt)或 MuJoCo Pro 提供的共享庫(如 libmujoco150.so 或 libmujoco150.dylib)未按照默認路徑安裝,那麼分別使用 MJKEY_PATH 和 MJLIB_PATH 指定它們的位置。

針對 macOS Homebrew 用戶的額外說明

1. 只要你使用的是 Homebrew 安裝的 Python 解釋器,那麼上述 pip 指令應該可以正常工作。

2. 要想運行 OpenGL,請運行 brew install glfw,從 Homebrew 安裝 glfw 包。

3. 運行前,需要先用 GLFW 庫路徑更新 DYLD_LIBRARY_PATH 環境變量。方式:運行 export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH。

Control Suite 快速入門示例

  1. fromdm_control importsuite# Load one task:env = suite.load(domain_name="cartpole", task_name="swingup")# Iterate over a task set:for domain_name, task_name in suite.BENCHMARKING:

  2. env =suite.load(domain_name,task_name)#Stepthrough an episode andprintout reward,discount andobservation.action_spec =env.action_spec()

  3. time_step =env.reset()whilenottime_step.last():

  4. action =np.random.uniform(action_spec.minimum,

  5. action_spec.maximum,size=action_spec.shape)

  6. time_step =env.step(action)print(time_step.reward,time_step.discount,time_step.observation)

論文:DeepMind Control Suite

論文鏈接:https://arxiv.org/abs/1801.00690

摘要:DeepMind Control Suite 是一套具備標準化結構和可解釋獎勵的持續控制任務,旨在作爲強化學習智能體的性能評估基準。這些任務用 Python 編寫,由 MuJoCo 物理引擎支持,因此易於使用和修改。該控件包括多個學習算法的基準。工具地址:https://www.github.com/deepmind/dm_control,任務視頻地址:http://youtu.be/rAai4QzcYbs。


文章來源:機器之心