【强化学习】强化学习环境ISAAC GYM初步入门

全文2216字,预计阅读时间4分钟

原创 | 汪治堃

编辑 | 吕嘉玲

背景介绍

Isaac Gym是一款由NVIDIA在2021年开发的,用于强化学习研究的物理环境,当前仍然处于Preview Release的阶段 [1]。Isaac Gym最有特点的一点就是,允许开发者使用GPU来运行环境模拟,并将观测量与奖励都存储为GPU的张量,直接放入网络中进行运算。因此,带来的好处有两点。第一,Isaac Gym避免了传统的交互环境中存在的CPU仿真环境模拟到GPU网络训练的转换,从而最终加速整个训练过程。第二,由于使用GPU对物理环境进行仿真,Isaac Gym环境还可以同时并行运算数以千计的仿真环境,快速为当前的policy提供大量训练样本,从而从另一个方面,改善online-policy的算法在学习过程中出现的,样本收集慢,采样效率低下的问题。

https://developer.nvidia.com/isaac-gym

618ca7b99bf7dac17f6efc7b1452bf49.png

常见的强化学习仿真环境

除了本文提到的Isaac Gym以外,现在常用的强化学习开发环境通常有如下几个:

1.OpenAI Gym

这是一套用于强化学习的标准API,以及一个多样化的参考环境集合。它包括了Atari游戏、常见控制任务环境、文本游戏等训练环境。其中的连续动作环境是采用Mujoco物理引擎作为底层开发的环境的。作为上手的环境来说,由于官方教材较多,代码书写也比较规范,文件调用相对直接,是非常容易使用和改造的。

d3327f9999f2feebc974b2c62c7385a5.gif

https://www.gymlibrary.ml/#

2.Pybullet Gym

Bullet在机器人强化学习领域也是一个比较常见的物理引擎,Pybullet就是基于该引擎开发的Python环境的模拟环境API,具有较好的物理碰撞计算能力。

1173c8a8d0efba13a6162e7edceb0c5b.png

https://pybullet.org/wordpress/

3.Gazebo

相对于前面提到的环境来说,Gazebo更像是控制领域通常会使用的面向工业机器人应用的仿真环境,它具有更好的仿真拟真度,但是由于没有提供直接可以用于强化学习领域控制的API,需要使用ROS (Robot Operation System)通讯实现交互,因此开发难度较大,相对更适合需要实际部署的场景下使用。

87c9537ceef467a4be73b3bb60377151.png

https://gazebosim.org/home

4.虚幻/Unity

虚幻和Unity作为原本是为了游戏领域开发的引擎软件,由于它们可以提供更佳的画面效果与物理学计算,同时还能提供更好上手的界面与文档教程,近些年常常被用于深度学习的训练中。此外,由于这些软件原本用于游戏设计,它们从根本上也很符合强化学习原本的设计目的,即控制智能体在虚拟环境中实现拟人的操作。常见的基于这两款软件开发的机器学习的环境有:

a.AirSim[2]

这是一款由微软开发基于虚幻引擎的无人机、汽车等的模拟器(基于Unity开发的版本仍然处于Preview Release阶段)。它能够与常用的飞行控制器如PX4和ArduPilot进行软件在环模拟,以及与PX4进行硬件在环模拟,以实现物理上和视觉上的逼真。同时,由于虚幻引擎的开放性,它可以被放入任何虚幻环境中进行使用。

57a6469d93414f59c33a74966ecd8333.png

https://microsoft.github.io/AirSim/

b.Unity Machine Learning Agents

这是由Unity公司从2005年开始开发的一个交互环境。它能使用Unity和ML代理工具包,创建物理、视觉和认知丰富的人工智能环境,并使用它们进行测试以及研究新的算法和方法。相比于AirSim等第三方开发的库来说,Unity Machine Learning Agents的开发环境更加系统,官方教材也相对较为友好。

21bfc3a2df1c5b1c7f896bda9cb86a7f.jpeg

https://unity.com/products/machine-learning-agents

当然,也有很多论文对上述以及更多物理仿真环境进行了进一步比较如A Review of Physics Simulators for Robotic Applications、A Survey on Simulation Environments for Reinforcement Learning,读者感兴趣的话可以前往相关文献进行阅读。

ISAAC GYM环境介绍

ISAAC GYM环境的框架主要由三部分组成,第一部分是环境构建(默认是使用PhysX作为仿真的物理引擎),第二部分是训练算法(默认训练文件train.py中使用的是基于Pytorch编写的PPO算法),第三部分是环境与算法交互的API设置文件(被放在文件夹python/tasks/base中 )。

在安装完成后,我们可以在目录python/rlgpu下执行训练案例,代码如下所示:

python train.py --task Cartpole

如果一切顺利的话,我们就会看到平衡杆如下图所示,已经开始训练起来啦。

084a52a48ed32ba4c9fde1ccd3c38e80.png

当然,我们如果想尝试其他案例,我们可以采用如下形式的训练代码:

python train.py --task TaskName --Other Command Line

1)TaskName是案例的调用名称,包含如下几个案例:

417fe3d55c34c7c76bd26729126a4e95.png

2)Command Line是一些配置性指令文件:

e6878c6cc9d5b37e9c7370ef7c47d330.png

受限于篇幅,其他部分的介绍就下一次再说吧。

结论与展望

作为一款新的物理仿真环境,ISAAC GYM环境更适合需要大量数据采集情况下的算法训练,可以极大的提升训练效率。但是相对来说,由于API源文件之间的嵌套问题比较严重,对原有的工程进行改造的难度也相对较大。希望Nvidia的工程师在未来能够进一步对该项目进行优化,最终如果能整合进Omniverse全家桶与ISAAC SIM统一起来就更好了。

参考资料

[1] Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa and Gavriel State. "Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning.", arXiv preprint arXiv:2108.10470, 2021

[2] Shah, Shital, et al. "Airsim: High-fidelity visual and physical simulation for autonomous vehicles." Field and service robotics. Springer, Cham, 2018.

-END-

本文由西湖大学智能无人系统实验室博士后汪治堃原创

 
 

26b359242fc75d42b7d183b622343c44.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值