机器人是怎么做这样的动作的呢
此时,在一台机器的CPU环境中进行模拟需要几小时到几天的时间。
但现在,仅一个TPU/GPU就可以以与数千个CPU或GPU计算集群相同的速度将所需时间缩短为几分钟。
强化学习的速度提高了1000倍!
谷歌的科学家们开发的物理模拟引擎Brax
[2002]避免逻辑分支的三种策略当前的物理模拟引擎大多是如何设计的
将重力、电机驱动、关节约束、物体碰撞等任务集成到一个模拟器中,多个仿真并行进行,逼近现实运动系统。
这种并行部署的结果是,学员需要超过1万纳秒的等待时间才能从模拟器中获得经验。
那么,怎样才能缩短这个延迟时间呢。
通过避免模拟中的分支,选择保证数千个并行环境中计算的完全统一性,降低整个培训体系结构的复杂度。
在复杂度能够在单个TPU或GPU上运行之前,减少了机械间通信的计算开销,从而有效地减少了延迟。
主要分为以下三种方法。
例如,在计算球与墙的接触力时,会出现以下分支:。
当球碰到墙壁时,它执行一个独立的代码,就像球从墙上反弹回来一样。
否则,执行另一个代码。
在这里,可以通过符号距离函数避免生成这样的if/else离散分支逻辑。
使用JAX即时唇部编译中的评估分支,在模拟时间之前评估基于环境静态特性的分支,例如两个对象是否可能发生碰撞。
通过这三种策略,我们获得了一个物理引擎来模拟由刚体、关节和致动器组成的环境。
它也是一种学习算法,可以在这种环境中实现各种操作(进化策略、直接轨迹优化等)
那么,Brax的性能如何呢
测试中使用的基准为OpenAI Gym的Ant、HalfCheetah、Humanoid和Reacher四个。
增加了3个新环境:灵巧物理操作,通用运动,工业机械臂仿真:
研究者们首先测试了Brax在并行模拟更多的环境时,能发生多少物理步骤(环境状态的更新)
测试结果TPUv3 8#215;8曲线显示,Brax可无缝在多个设备之间扩展,每秒可完成数亿个物理步骤。
另外,不仅仅是TPU,从V100和P100的图表来看,Brax在高端GPU上也发挥着出色的性能。
下一步是在一个工作站上执行强化学习实验所需的时间。
在此,研究人员对基于Ant基准环境训练的Brax发动机和MuJoCo物理发动机进行了比较。
MuJoCo(蓝色线条)花了将近3个小时,而使用Brax的加速器硬件最快只需10秒。
使用Brax不仅可以提高单核训练的效率,还可以扩展到大规模的并行模拟。
论文地址:https://arxiv.org/abs/2106.13281
Brax下载:https://github.com/google/
参考链接:https://ai.googleblog.com/2021/07/speeding-up-reinforcement-learning-with.html
文章评论