选自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 快速入门示例
from dm_control import suite# 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:
env = suite.load(domain_name, task_name)# Step through an episode and print out reward, discount and observation.action_spec = env.action_spec()
time_step = env.reset()while not time_step.last():
action = np.random.uniform(action_spec.minimum,
action_spec.maximum, size=action_spec.shape)
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。
本文为机器之心编译,转载请联系本公众号获得授权。
✄------------------------------------------------
加入机器之心(全职记者/实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告&商务合作:bd@jiqizhixin.com