«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (5): 316-320  DOI: 10.19678/j.issn.1000-3428.0057693
0

引用本文  

姚铁锤, 王珏, 王彦棡, 等. 基于云端可视化交互的强化学习平台[J]. 计算机工程, 2021, 47(5), 316-320. DOI: 10.19678/j.issn.1000-3428.0057693.
YAO Tiechui, WANG Jue, WANG Yangang, et al. Reinforcement Learning Platform Based on Cloud Visual Interaction[J]. Computer Engineering, 2021, 47(5), 316-320. DOI: 10.19678/j.issn.1000-3428.0057693.

基金项目

国家重点研发计划“大规模并行计算的工具库和领域相关基础软件包”(2017YFB0202202);“中国科技云”建设工程(二期)项目“超算资源池建设”(XXH13503);国家电网有限公司总部科技项目“电力人工智能实验及公共服务平台技术”(SGGR0000JSJS1800569)

通信作者

王珏(通信作者), 副研究员

作者简介

姚铁锤(1993-), 男, 博士研究生, 主研方向为强化学习、高性能计算;
王彦棡, 研究员、博士生导师;
迟学斌, 研究员、博士生导师;
王晓光, 工程师

文章历史

收稿日期:2020-03-12
修回日期:2020-05-13
基于云端可视化交互的强化学习平台
姚铁锤1,2 , 王珏1,2 , 王彦棡1,2 , 迟学斌1,2 , 王晓光1     
1. 中国科学院计算机网络信息中心, 北京 100190;
2. 中国科学院大学 计算机科学与技术学院, 北京 100049
摘要:强化学习是一个与环境交互的学习过程,在实验场景中,训练环境部署的可扩展性和算法验证的便捷性常受限于物理引擎和渲染模块的高耦合性。为对物理引擎和渲染模块进行解耦,构建一种面向物理引擎和渲染模块的云端交互式模型,其中包括操作字典、元素字典和对应的算法接口,并基于该模型实现模拟器。通过集成模拟器、可视化工具和知识管理等组件,搭建支持云端可视化交互的强化学习平台,并以MuJoCo物理引擎为例,验证Web模拟器接入自定义物理引擎的便捷性。实验和分析结果验证了该模型的有效性,其可方便接入平台,实现云端渲染并提高所属集群的利用率。
关键词强化学习平台    物理引擎    渲染模块    云端可视化交互    接口标准    
Reinforcement Learning Platform Based on Cloud Visual Interaction
YAO Tiechui1,2 , WANG Jue1,2 , WANG Yangang1,2 , CHI Xuebin1,2 , WANG Xiaoguang1     
1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China;
2. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing 100049, China
Abstract: Reinforcement learning is a learning process that interacts with the environment.In the experiment environment, the scalability of the training environment deployment and the convenience of algorithm verification are often limited by the high coupling between the physics engine and the rendering module.To solve the problem, this paper proposes a Cloud Interactive Model(CIM) for physics engine and rendering module, which consists of an operation dictionary, element dictionary and relevant algorithm interfaces, and on this basis implements a simulator.Furthermore, this paper integrates the simulator, visualization tools, knowledge management and other components to build a Reinforcement Learning Platform(RLP) supporting cloud visual interaction.By taking the MuJoCo physics engine as an example, the Web simulator is verified for its convenience of access to a custom physics engine.Experimental and analytical results show that this model can be conveniently connected to the platform to realize cloud rendering and improve the utilization rate of its cluster.
Key words: Reinforcement Learning Platform(RLP)    physics engine    rendering module    cloud visual interaction    interface standard    
0 概述

强化学习作为机器学习领域的研究热点,在博弈游戏[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
4 结束语

本文在强化学习实验场景下构建云端交互式模型,并通过融合可视化工具和基于项目的知识管理模块功能,设计一站式的强化学习平台。结合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.