还记得这个会跑酷的机器人吗?
5个多月前,DeepMind连发三篇强化学习论文,让机器人在仿真环境中自己就能学会灵活多变的各种动作,包括步行、跑动、跳跃、翻墙,等等。
class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=p1321hzr209&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=p1321hzr209&width=654&height=367.875&auto=0"/>
今天,DeepMind公布了这三篇论文中所用的强化学习控制套件dm_control,它是一套基于MuJoCo物理引擎的Python强化学习的开发环境,可以在一套标准化的架构上执行各种不同的强化学习任务,并使用可解释性奖励来评估强化学习算法的学习效果。
控制套件的GitHub代码库地址是:https://github.com/deepmind/dm_control
DeepMind还为该控制套件提供了一份完整的使用说明:
https://github.com/deepmind/dm_control/blob/master/tech_report.pdf
DeepMind说明文档的介绍
对于实体世界的控制,是通用智能的一个必备组分,甚至还可以说是先决条件。事实上,唯一已知的通用智能案例,就出现在业已操控世界数百万年之久的灵长类身上。
实体控制任务有着许多共通的特性,所以可以将其视为一大类独特的行为问题。不同于棋类游戏、语言或其他符号学领域,在状态、时间和行为的层面,实体任务从根本上就是连续的。其动力学遵循二阶运动方程,这就意味着其基本状态是由类似于位置和速度的变量所构成,而状态的导数则类似于加速度。感知信号(亦即观察)通常具备有意义的物理单位,并在相应的时间范围内随之变化。
2010年以来,强化学习(Reinforcement Learning)在电子游戏(Mnih, 2015)等难题上的应用取得了很大的进展。街机游戏学习环境(ALE,Bellemare et al. 2012)是这些进展的一个重要的推动因素,它为评估和比较这些学习算法提供了一套标准的衡量办法。对于连续控制的问题,DeepMind控制套件也在提供一套类似的标准。
在连续控制领域,拥有各种模拟环境的OpenAI Gym(Brockman等人,2016)已经成为此类连续强化学习算法(Duan等人,2016; Henderson等人,2017)事实上的标准。同样作为一系列连续强化学习的标准,DeepMind控制套件还有一些显著的差异。DeepMind专注于连续控制问题,例如,将观察与相似的单位分开(位置、速度、力等),而非把将它们连成一个向量。
我们统一封装的奖励结构可以提供可解释的学习曲线,并且汇总了全套算法的性能测量。此外,我们强调使用设计模式统一的高质量完整代码,同时提供可读性、透明性与可扩展性都很强的代码库。最后,DeepMind控制套件不仅拥有OpenAI Gym已有的各项环境,并且还增加了更多功能。
关于该套件的具体使用,DeepMind还专门上传了一段视频
class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="2" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=k1331vg9arx&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=k1331vg9arx&width=654&height=367.875&auto=0"/>
dm_control安装步骤及软件环境要求:
1. 从MuJoCo网站的下载页面下载MuJoCo Pro 1.50版本。注意:你必须在安装dm_control前安装好MuJoCo Pro,因为dm_control的安装脚本要根据MuJoCo的头文件生成Python Ctypes的绑定文件。默认情况下,dm_control会假定MuJoCo Zip文件将被提取到~/.mujoco/mjpro150文件夹。
2. 安装dm_control的Python包:可以运行pip命令“pip install git + git://github.com/deepmind/dm_control.git”(随后将推出PyPI);或直接克隆本代码库并执行“pip install /path/to/dm_control/”命令。在安装时, dm_control在~/.mujoco/mjpro150/include路径下查找步骤1中的MuJoCo头文件,你也可以用headers-dir命令行参数自定义该路径。
3. 在运行dm_control时,需要为MuJoCo安装许可证密钥。更为详细的信息,可参阅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”。
dm_control快速开始代码:
更多使用细节,请查阅DeepMind所提供的说明文档:
https://github.com/deepmind/dm_control/blob/master/tech_report.pdf
你可以安装DeepMind这个dm_control试一试,看一看它比OpenAI的Gym到底强在哪里?
热文精选
不用数学也能讲清贝叶斯理论的马尔可夫链蒙特卡洛方法?这篇文章做到了
盘点深度学习一年来在文本、语音和视觉等方向的进展,看强化学习如何无往而不利
干货 | AI 工程师必读,从实践的角度解析一名合格的AI工程师是怎样炼成的
AI校招程序员最高薪酬曝光!腾讯80万年薪领跑,还送北京户口