APP下载

OpenAI发布最新多目标强化学习的机器人模拟环境

消息来源:baojiabao.com 作者: 发布时间:2024-05-06

报价宝综合消息OpenAI发布最新多目标强化学习的机器人模拟环境

前言

最近,OpenAI发布了一份有关“多目标强化学习”研究报告。基于现有的机器人硬件,引入了一套具有挑战性的连续控制任务(与OpenAI Gym集成)。这些任务包括用Fetch机械臂来推动、滑动、拾取和放置,以及用Shadow Dexterous Hand来操纵手中的物体。所有的任务都有稀疏的二元奖励,并遵循多目标强化学习(Reinforcement Learning, RL)框架,在该框架中,智能体被告知要使用附加的输入做什么。同时,在研究要求部分提出了一套改进RL算法的具体研究思路,其中大部分与多目标RL和事后经验回放(Hindsight Experience Replay)有关。

环境

所有的环境都是作为OpenAI Gym(Brockman等人,于2016年提出)的一部分发布的,并使用MuJoCo(Todorov等人,于2012年提出)物理引擎进行快速和精确的模拟。

图1:提出的四个提取环境:FetchReach、FetchPush、FetchSlide和FetchPickAndPlace。

Fetch环境

Fetch环境是基于7-DoF Fetch机械臂的,该机械臂有一个双指的并行抓取器。它们与Andrychowicz等人(于2017年)使用的任务非常相似,但我们增加了一个附加的任务,而且拾取和放置任务略有不同。

在所有的Fetch任务中,目标是三维的并描述物体的期望位置(或到达的末端器)。奖励是稀疏的、二元的:如果物体位于目标位置(在5 cm的容忍范围内),则智能体获得0的奖励,否则获得-1的奖励。动作是四维的:三维空间在笛卡尔坐标(Cartesian coordinates)中指定了想要的夹持抓取器移动,最后一个维度控制了抓取器的开启和关闭。在将控制权交还给智能体之前,我们在随后的20个模拟器步骤(每个Δt= 0.002)中应用相同的操作,即智能体的作用频率为f = 25Hz。观察结果包括抓取器的笛卡尔坐标,其线速度(linear velocity),以及机器人抓取器的位置和线速度。如果一个物体存在,我们也会包含物体的笛卡尔位置和使用欧拉角(Euler angle)的旋转,其线速度和角速度(angular velocity),以及它相对于抓取器的位置和线速度。

到达 (FetchReach):任务是将抓取器移动到目标位置。这项任务是非常容易学习的,因此是一个确保新想法有效的合适基准。

推动 (FetchPush):一个盒子放在机器人前面的桌子上,任务是将它移动到桌子上的目标位置。机器人的手指被锁住以防止抓握。所学到的行为通常是推动和滚动的混合。

滑动 (FetchSlide):一个冰球被放置在一个长的、滑的桌子上,目标位置在机器人能到达的范围之外,所以它必须用这样的力量撞击冰球,使其滑动,然后由于摩擦而停留在目标位置。

拾取和放置(FetchPickAndPlace):任务是抓住一个盒子,并将它移动到目标位置,该位置可能位于桌面上或桌面上方的空气中。

图2:所提出的Shadow Dexterous Hand的四个环境:HandReach、HandManipulateBlock、HandManipulateEgg和HandManipulatePen。

Hand环境

这些环境是基于Shadow Dexterous Hand的,它是一个具有24个自由度的拟人机器人手。在这24个关节中,20个可以被独立控制,而其余的是耦合关节(coupled joint)。

在所有的手动任务中,奖励都是稀疏的、二元的:如果目标已经实现(在某个任务特定的容忍范围内),则智能体获得值为0奖励,否则为-1。动作是20维的:我们对于手的所有非耦合关节使用绝对的位置控制。在将控制返回给智能体之前,我们在20个随后的模拟器步骤(每个Δt= 0.002)中应用相同的动作,即智能体的动作频率为f = 25Hz。观察结果包括机器人关节的24个位置和速度。对于正在操作的物体,我们还包括其由四元数(因此为7维)表示的笛卡尔位置和旋转,以及它的线速度和角速度。在到达任务中,我们包括所有5个指尖的笛卡尔位置。

到达(HandReach):一个简单的任务,其目标是15维的、并且包含手的每个指尖的目标笛卡尔位置。与FetchReach任务类似,此任务相对容易进行学习。可以这样说,如果指尖与其想要达到位置之间的平均距离小于1厘米,则认为该目标已实现。

块操纵(HandManipulateBlock):在块操纵任务中,一个方块被放置在手掌上。任务是操纵该方块以达到目标姿势。该目标是7维的、包括目标位置(以笛卡尔坐标表示)和目标旋转(以四元数表示)。我们包含多个难度系数不断增加的变体:

?HandManipulateBlockRotateZ:围绕块的z轴进行随机目标旋转。没有目标位置。

?HandManipulateBlockRotateParallel:围绕块的z轴进行随机目标旋转,以及针对x和y轴进行轴对齐目标旋转。没有目标位置。

?HandManipulateBlockRotateXYZ:针对块的所有轴进行随机目标旋转。没有目标位置。

?HandManipulateBlockFull:针对块的所有轴进行随机目标旋转。随机目标位置。

可以这样说,如果块的位置与其所需到达位置之间的距离小于1厘米(仅适用于完整的变体)并且旋转的差值小于0.1弧度,则认为目标已实现。

鸡蛋操纵(HandManipulateEgg):这里的目标与块操纵任务相似,但是使用的是一个鸡蛋形物体而不是块。我们发现物体的几何形状会使问题的严重程度上有明显的区别,而鸡蛋可能是最简单的物体。目标又是7维的、包括目标位置(以笛卡尔坐标表示)和目标旋转(以四元数表示)。我们在其中涉及了多个难度系数不断增加的变体:

?HandManipulateEggRotate:围绕鸡蛋所有轴进行随机目标旋转。没有目标位置。

?HandManipulateEggFull:围绕鸡蛋的所有轴进行随机目标旋转。随机目标位置。

可以这样说,如果鸡蛋的位置与其所需到达位置之间的距离小于1厘米(仅适用于完整的变体)并且旋转差小于0.1弧度,则认为该目标已实现。

笔操纵(HandManipulatePen):这是另一种操纵任务,这次使用笔而不是块或鸡蛋。抓住一支笔很困难,因为它很容易从手上掉下来,且很容易碰撞并卡在其他手指之间。目标是7维的、包括目标位置(以笛卡尔坐标表示)和目标旋转(以四元数表示)。

多目标环境界面:所有环境都使用描述任务期望得到结果的目标。例如,在FetchReach任务中,所需的目标位置由一个三维目标描述的。虽然我们的环境与OpenAI Gym API完全兼容,但我们稍微对其进行扩展以支持这种新型环境。所有的环境都扩展了这种新引入的gym GoalEnv。

目标感知的观察空间:首先,它对观察空间施加约束。更具体地说,它要求观察空间是gym.spaces.Dict空间的类型,至少有以下三个关键字:

?观察(observation):对环境的实际观察,例如机器人的状态和物体的位置。

?要达到的目标(desired_goal):智能体必须达到的目标。在FetchReach的情况下,这将是一个三维目标位置。

?已达到目标(achieved_goal):智能体目前所取得的目标。在FetchReach的情况下,这是机器人末端执行器的位置。理想情况下,这将尽可能快地与所需达到目标相同。

公开的奖励函数:第二,我们以一种允许使用不同的目标重新计算奖励的方式公开奖励函数。这是替代目标的HER风格算法的必要条件。

与标准RL算法的兼容性:由于OpenAI Gym在大多数RL算法框架和工具(如OpenAI Baselines)中普遍得到支持,我们提供了一个简单的包装器,可将新的基于字典的目标观察空间转换为更常见的数组表示。

研究要求

决定哪个问题值得研究可能是研究中最难的部分。下面我们提出了一系列的研究问题,我们认为这些问题会导致广泛适用的RL改进。对于每个问题,我们提出至少一个可能的解决方案,但解决其中的许多问题需要发明新的想法。

自动事后目标生成(Automatic hindsight goals generation):Andrychowicz等人(于2017年)提出的,用于HER的目标是使用手工启发式生成的,例如,在一个场景中的随机未来时间步骤中回放已实现的目标。相反,我们可以了解哪些目标对于最有回放价值。它们可以从训练期间已实现或者已看到的目标中,或者通过一个单独的神经网络生成,并将其作为输入转换的目标中进行选择。最大的问题是如何判断哪些目标最有回放价值。一种选择是训练生成器以最大化贝尔曼误差(Bellman error)。这与优先经验回放(Prioritized Experience Replay)有很多相似之处,我们期望本文中的一些技术可能对此有用。

无偏差HER:HER以无原则的方式改变了回放(状态、动作、下一个状态、目标)元组的联合分布。理论上,这可能使得在非常随机的环境中不可能进行训练,尽管我们在实践中没有注意到这一点。考虑这样一个环境,在这个环境中有一个特殊的动作,这个特殊的动作把智能体带到一个随机的状态,然后场景就结束了。如果我们回放未来智能体所实现的目标,这种动作在事后看来似乎是完美的。如何避免这个问题?一种可能的方法是使用重要性采用来取消采样偏差,但这可能会导致梯度偏差过大。

更丰富的价值函数:UVFA(Schaul等人于2015年提出)将价值函数扩展至多个目标,而TDM(Pong等人于2018年提出)将价值函数扩展至不同的时间范围。尽管学习的函数更加复杂,但这两项创新可以使训练过程变得更容易。我们怎样完善价值函数才能提高采样效率?二分奖励(binary rewards)的贴现因子(discount factor)和成功阈值(success threshold)又是怎样的?

更快的信息传播:大多数先进的off-policyRL算法使用目标网络来稳定训练过程(例如:DQN(MNIH等人于2015年提出)或DDPG(Lillicrap等人于2015年提出))。然而,这是以限制算法的最大速度作为代价的,每个目标网络更新发送的信息都会在时间上返回上一步(如果使用一步自助法(one-step bootstrapping)的话)。我们注意到,在训练的早期阶段,DDPG+HER的学习速度往往与目标网络更新的频率成正比,但目标网络更新的频率/幅度过大会导致训练不稳定,并使得最终性能表现较差。我们应如何调整目标网络的更新频率(或更新网络时使用的移动平均系数)以最大限度地提升训练速度?是否有更好的方法来更新目标网络,而不是简单地替换或移动平均时间?是否有其他方法来稳定不受学习速度限制的训练(例如:与PPO中使用的目标相类似的clipped objective(Schulman等人于2017年提出))。

HER+多步回归(multi-step returns):HER生成的是off-policy数据,因此,除非我们采用重要性采样等修正因子,否则无法使用多步返回。尽管有多种解决方案可以处理数据的off-policy(例如:Munos等人于2016年提出),但目前尚不清楚训练数据远未处于on-policy状态时,这些方案是否会有优异的性能表现。另一种方法是使用多步最优紧缩不等式(multi-step optimality tightening inequalities)(He等人于2016年提出)。使用多步返回可能是有益的,因为自助法(bootstraping)频率的降低可能会导致较少的偏差梯度。此外,它加速了返回相关信息的反向传递,因此我们的实验往往是DDPG+HER训练的限制因素。

On-policy HER:如何将HER与诸如PPO(Schulman等人于2017年提出)等最先进的on-policyRL算法相结合?Rauber等人于2017年提出了普通策略梯度(vanilla Policy Gradients)的一些初步结果,但这种方法需要在更具挑战性的环境(如本文所提出的环境)中进行测试。一种可能的选择是使用与IPG中使用的技术向类似的技术(Gu等人于2017年提出)。

将HER与RL的最新改进结合在一起:看到近期RL在与HER结合的情况下的改进情况会很有趣。潜在的改进清单很长,例如:优先经验回放(Schaul等人于2015年提出),分散式RL(Bellemare等人于2017年提出),熵正则RL(Schulman等人于2007年提出)或反向课程生成(Florensa等人于2017年提出)。

动作频繁的RL:RL对采取动作的频率非常敏感,这就是为什么在Atari(Mnih等人于2015年提出)上通常使用跳帧技术的原因。在连续控制领域,随着采取动作的频率趋近于无穷大,性能逐步趋近于0,这是由两方面因素造成的:不一致的探索以及引导更多的时间来及时反向传播关于返回的信息。如何设计一个即使在采取动作的频率趋近于无穷时,也能保证其性能的样本高效的RL算法。探索过程中的参数噪声(Plappert等人于2017年提出)可解决探索问题,多步返回可实现更快的信息传播。其他方法可以是自适应和可学习的跳帧。

来源:“雷克世界”

编译:嗯~是阿童木呀、KABUDA、EVA





2018-05-17 11:32:00

相关文章