2. 中国科学院大学 计算机科学与技术学院, 北京 100049
2. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing 100049, China
强化学习作为机器学习领域的研究热点,在博弈游戏[1-2]、机器人控制、图像处理、机器翻译、交通控制[3]和自动驾驶等任务中表现优异。随着对强化学习研究的不断深入,各个研究机构和公司相继研发了不同的强化学习实验环境和平台。
OpenAI Gym[4]集文字任务、Atari、Box2D、经典控制、MuJoCo[5]和机械手臂等物理引擎于一体,提供统一的算法接口用于强化学习算法训练。DeepMind Control Suite[6]对MuJoCo进行封装,辅以基础强化学习算法,用于机器人控制。DeepMind Lab和TORCS(The Open Racing Car Simulator)[7]分别构建迷宫和赛车的模拟器,训练强化学习智能体的导航、3D视觉和策略等方面能力。OpenAI Gym、DeepMind Control Suite、RLlab[8]、DeepMind Lab[9]、TORCS、Pybullet[10]和PySC2[11]等用于强化学习的实验环境均包含物理引擎和基础渲染显示模块,其中,物理引擎通过感知用户操作和物体当前状态计算物体新的状态,渲染显示模块根据物体的信息进行渲染并在显示界面感知用户的操作。然而此类强化学习环境中实验场景的物理引擎模块和渲染模块耦合性较高,且模拟渲染的方式各成一体[1, 5-6, 8-9, 12-13],这限制了大规模集群资源的利用率,增加了强化学习训练环境部署和算法验证的难度。
2018年加州大学伯克利分校DASARI等人开发的RoboNet[14]平台,收集了线下实体机器人1 500万帧手臂与物体交互的视频作为强化学习训练数据集,2019年李飞飞团队开发的RoboTurk[15]平台则提供了137.5 h的机器人交互数据。然而此类平台仅提供特定的数据集[5, 8, 12, 15-17],缺少强化学习训练环境和硬件资源的支撑。此外,阿里巴巴PAI平台[18]、腾讯智能钛平台[19]和百度AI Studio开发平台[20]集成了Notebook、Shell工具和Tensorflow、PyTorch深度学习框架,侧重支持传统机器学习和深度学习算法,同样无法友好地支持需要环境模拟的强化学习算法。
本文通过设计物理引擎与渲染模块之间的数据结构、WebRender算法和接口标准构建Web云端交互式模型,用于对物理引擎和渲染模块进行解耦。基于该模型实现并验证针对MuJoCo物理引擎的Web模拟器,同时集成可视化交互开发工具和面向项目的知识管理模块,开发一个支持云端可视化交互的强化学习平台。
1 云端交互式模型本文构建的云端交互式模型抽象了物理引擎与渲染模块之间的数据结构,通过引入WebRender算法和相应接口,将实验环境的物理引擎和渲染模块分离,从而帮助不同物理引擎接入,促进强化学习中环境模拟标准的统一。如图 1所示,该模型涉及到客户端和服务器端之间的通信。在限定时间内,浏览器端的交互操作由操作块即操作字典(operation_dict)传入服务器端进行解析处理,服务器端通过物理引擎计算产生元素块即元素字典(element_dict)并将其传回客户端,通过Web端渲染模块在浏览器端渲染。
![]() |
Download:
|
图 1 云端交互式模型 Fig. 1 Cloud interactive model |
图 2所示的元素字典记录几何体的名称、类型、位置、颜色信息以及相机的类型和视角等关键信息,用于Web端渲染模块的可视化。图 3所示的操作字典记录鼠标点击和位移等交互信息,用于不同物理引擎的物理变量计算。
![]() |
Download:
|
图 2 元素字典 Fig. 2 Element dictionary |
![]() |
Download:
|
图 3 操作字典 Fig. 3 Operation dictionary |
WebRender算法通过图 4所示的3个接口接入物理引擎,使其独立于渲染模块,具体描述如下:move_perturb接口传入操作字典,使用自定义物理引擎计算动力学信息;move_camera接口传入操作字典,使用自定义物理引擎计算相机位置信息;generate_element接口使用自定义物理引擎输出元素字典。
![]() |
Download:
|
图 4 云端交互式模型接口设计 Fig. 4 Interfaces design of cloud interactive model |
WebRender算法通过translate_operation解析操作字典,在给定的时间步内,循环调用move_perturb或move_camera进行计算,并调用generate_element产生当前时间步的元素字典,最终输出最后时刻的元素字典。
WebRender算法伪代码如下:
算法1 WebRender
输入 operation_dict,timestep
输出 element_dict
1.counter=0;
2.inter_info=[];
3.ele_info=[];
4.element_dict=[];
5.inter_info=translate_operation(operation_dict);
6.for i=0;i<timestep;i++ do
7.if flag_pert==1 & & flag_cam==0 then
8.move_perturb(inter_info[3],inter_info[4],inter_info[5],inter_info[6],inter_info[2]);
9.else if flag_cam==1 & & flag_pert==0 then
10.move_camera(inter_info[4],inter_info[5],inter_info[6],inter_info[7],inter_info[8]);
11.else
12.return False
13.end if
14.ele_info=generate_element(string(counter));
15.element_dict.append(ele_info)
16.counter=counter+1;
17.end for
18.return element_dict
2 强化学习平台设计基于云端可视化交互的强化学习平台架构如图 5所示,其中包括基础设施层、应用服务层以及接口访问层。
![]() |
Download:
|
图 5 基于云端可视化交互的强化学习平台架构 Fig. 5 Architecture of reinforcement learning platform based on cloud visual interaction |
1)基础设施层基于异构GPU计算资源和存储系统资源[21],采用虚拟化技术为模拟器的稳定运行和强化学习算法的使用提供软硬件保障。
2)应用服务层包括虚拟开发环境接口、可视化交互模块和基于项目的知识管理模块。虚拟开发环境接口负责前端页面对可视化工具的控制。云端交互式模拟器基于可视化交互模块实现。Web端渲染模块采用WebGL[22]技术统一实现,物理引擎模块支持用户自定义,仅需要少量工作即可接入模拟器,提高了实验环境模拟的便捷性和统一性。基于项目的知识管理模块将强化学习所涉及的模拟器、可视化工具、数据、算法以及研究环境以项目的形式封装在虚拟化容器中,并划分为私有项目和公共项目。其中,私有项目包括发布为公共项目的功能、支持分享特定数据集、自定义算法和实验环境,公共项目可以快速复制为私有项目,用户复制后即可查看共享的知识。
3)接口访问层是用户的接入层,其中较为典型的应用是用户注册、用户统一登录接口以及用户认证模块。
3 系统实现本文在OpenStack[23]云平台虚拟化技术的基础上,通过多台服务器搭建包含云端交互式模拟器的强化学习平台,并以MuJoCo物理引擎为例,验证云端交互式模型接入自定义物理引擎的便捷性。
登录平台后展现的用户私有项目如图 6所示,可见其中提供了OpenAI Gym、MuJoCo-py、PyTorch等多个基础模板。
![]() |
Download:
|
图 6 用户私有项目 Fig. 6 User's private project |
针对MuJoCo物理引擎的实验场景,本文平台仅通过动力学等模块的少量函数实现WebRender算法的接口,即可使用云端交互式模拟器渲染,而无需再安装额外的依赖包。云端交互式模拟器与MuJoCo的渲染效果对比如图 7所示,其在强化学习平台上验证的效果如图 8所示。
![]() |
Download:
|
图 7 云端交互式模拟器与MuJoCo的渲染效果对比 Fig. 7 Rendering effect comparison of cloud interactive simulator and MuJoCo |
![]() |
Download:
|
图 8 云端交互式模拟器渲染界面 Fig. 8 Rendering interface of cloud interactive simulator |
本文设计的平台除了集成Notebook、Shell类基本工具,还提供了在线代码编辑器、TensorBoard、视频播放器和数据集中心等可视化开发工具,如图 9所示。其中,在线代码编辑器相较Notebook更易支持在线大规模开发,TensorBoard能够实现函数图像、神经网络结构等数据的可视化,视频播放器便于验证需要录制视频的算法,数据集中心提供了数据集的上传、下载、管理等功能,便于用户保存、分享数据集。
![]() |
Download:
|
图 9 可视化开发工具 Fig. 9 Visualization development tools |
本文在强化学习实验场景下构建云端交互式模型,并通过融合可视化工具和基于项目的知识管理模块功能,设计一站式的强化学习平台。结合MuJoCo物理引擎在平台中实现云端交互式模拟器,以验证云端交互式模型的有效性。实验结果表明,该模型提升了物理引擎接入模拟器的便捷性,对统一实验场景的模拟标准具有一定的借鉴意义,在其基础上搭建的平台可支持100余个具有云端交互式模拟器的项目并发稳定运行。下一步将对不同物理引擎接口标准进行优化,使平台适用于更多实验场景,同时设计分布式强化学习算法并优化集群异构资源调度过程,实现对大规模强化学习算法训练的支持和加速。
[1] |
SILVER D, HUANG A, MADDISON C J, et al. Mastering the game of Go with deep neural networks and tree search[J]. Nature, 2016, 529(7587): 484-489. DOI:10.1038/nature16961 |
[2] |
VINYALS O, BABUSCHKIN I, CZARNECKI W M, et al. Grandmaster level in StarCraft Ⅱ using multi-agent reinforcement learning[J]. Nature, 2019, 575(7782): 350-354. DOI:10.1038/s41586-019-1724-z |
[3] |
WEN Kaige, YANG Zhaohui. Intersection signal control based on reinforcement learning with CMAC[J]. Computer Engineering, 2011, 37(17): 152-154. (in Chinese) 温凯歌, 杨照辉. 基于CMAC强化学习的交叉口信号控制[J]. 计算机工程, 2011, 37(17): 152-154. |
[4] |
BROCKMAN G, CHEUNG V, PETTERSSON L, et al. OpenAI Gym[EB/OL]. (2016-06-05)[2020-02-20]. https://arxiv.org/pdf/1606.01540.pdf.
|
[5] |
TODOROV E, EREZ T, TASSA Y. MuJoCo: a physics engine for model-based control[C]//Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems. Washington D.C., USA: IEEE Press, 2012: 5026-5033.
|
[6] |
TASSA Y, DORON Y, MULDAL A, et al. DeepMind control suite[EB/OL]. (2018-01-02)[2020-02-20]. https://arxiv.org/pdf/1801.00690.pdf.
|
[7] |
WYMANN B, ESPIÉ E, GUIONNEAU C, et al. TORCS, the open racing car simulator[EB/OL]. (2015-03-12)[2020-02-20]. http://www.cse.chalmers.se/~chrdimi/papers/torcs.pdf.
|
[8] |
DUAN Y, CHEN X, HOUTHOOFT R, et al. Benchmarking deep reinforcement learning for continuous control[C]//Proceedings of International Conference on Machine Learning. New York, USA: [s. n. ], 2016: 1329-1338.
|
[9] |
BEATTIE C, LEIBO J Z, TEPLYASHIN D, et al. DeepMind lab[EB/OL]. (2016-12-12)[2020-02-20]. https://arxiv.org/pdf/1612.03801.pdf.
|
[10] |
COUMANS E, BAI Y. PyBullet, a python module for physics simulation for games, robotics and machine learning[EB/OL]. (2016-01-13)[2020-02-20]. https://github.com/bulletphysics/bullet3.
|
[11] |
VINYALS O, EWALDS T, BARTUNOV S, et al. StarCraft Ⅱ: a new challenge for reinforcement learning[EB/OL]. (2017-08-16)[2020-02-20]. https://arxiv.org/pdf/1708.04782.pdf.
|
[12] |
VINITSKY E, KREIDIEH A, FLEM L, et al. Benchmarks for reinforcement learning in mixed-autonomy traffic[C]//Proceedings of Conference on Robot Learning. Zurich, Switzerland: [s. n. ], 2018: 399-409.
|
[13] |
EREZ T, TASSA Y, TODOROV E. Simulation tools for model-based robotics: comparison of Bullet, Havok, MuJoCo, ODE and PhysX[C]//Proceedings of IEEE International Conference on Robotics and Automation. Washington D.C., USA: IEEE Press, 2015: 4397-4404.
|
[14] |
DASARI S, EBERT F, TIAN S, et al. RoboNet: large-scale multi-robot learning[EB/OL]. (2019-10-24)[2020-02-20]. https://arxiv.org/pdf/1910.11215.pdf.
|
[15] |
MANDLEKAR A, ZHU Y, GARG A, et al. RoboTurk: a crowdsourcing platform for robotic skill learning through imitation[EB/OL]. (2018-11-07)[2020-02-20]. https://arxiv.org/pdf/1811.02790.pdf.
|
[16] |
MNIH V, KAVUKCUOGLU K, SILVER D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015, 518(7540): 529-533. DOI:10.1038/nature14236 |
[17] |
POZZI M, PRATTICHIZZO D, MALVEZZI M. On-line educational resources on robotics: a review[C]//Proceedings of International Conference on Inclusive Robotics for a Better Society. Pisa, Italy: [s. n. ], 2018: 141-147.
|
[18] |
Aliyun. Platform of artificial intelligence[EB/OL]. [2020-02-20]. https://help.aliyun.com/document_detail/114522.html?spm=5176.12674308.1334604.2113pai798a73dboAt17A.
|
[19] |
TencentCloud. TI-ONE[EB/OL]. [2020-02-20]. https://cloud.tencent.com/document/product/851/39399.
|
[20] |
Baidu. AI studio[EB/OL]. [2020-02-20]. https://ai.baidu.com/ai-doc/AISTUDIO/Tk39ty6ho.
|
[21] |
LU Zhonghua, HU Tengteng, WANG Yangang, et al. The design and implement of HPC based on Slurm for deep learning[J]. E-science Technology & Application, 2018, 9(2): 40-45. (in Chinese) 陆忠华, 胡腾腾, 王彦棡, 等. 基于Slurm的深度学习高性能计算平台设计及其调度实现技术[J]. 科研信息化技术与应用, 2018, 9(2): 40-45. |
[22] |
CONGOTE J, SEGURA A, KABONGO L, et al. Interactive visualization of volumetric data with WebGL in real-time[C]//Proceedings of the 16th International Conference on 3D Web Technology. Anaheim, USA: [s. n. ], 2011: 137-146.
|
[23] |
SEFRAOUI O, AISSAOUI M, ELEULDJ M. OpenStack: toward an open-source solution for cloud computing[J]. International Journal of Computer Applications, 2012, 55(3): 38-42. |