0
点赞
收藏
分享

微信扫一扫

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记


目录

  • ​​一、 文章概览​​
  • ​​1.1 动作模仿​​
  • ​​1.2 洞见​​
  • ​​1.2.1 参考状态初始化(Reference State Initialization,RSI)​​
  • ​​1.2.2 提前终止(Early Termination,ET)​​
  • ​​1.2.3 更多结果​​
  • ​​1.3 论文原文摘要:​​
  • ​​二、 关键点总结​​
  • ​​2.1 概述​​
  • ​​2.2 算法​​
  • ​​2.2.1 强化学习 RL​​
  • ​​2.2.2 训练算法 (Proximal Policy Optimization, PPO)​​
  • ​​2.2.3 Tricks​​
  • ​​2.2.4 多技能融合(Multi-Skill Integration)​​
  • ​​参考:​​

一、 文章概览

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_神经网络


模拟人形生物,具有多种高度动态和杂技技巧。

运动控制问题已经成为强化学习的标准基准,深度强化学习方法被证明适用于包括操纵和移动的多种任务。但是,使用深度强化学习训练的智能体通常行为不太自然,会出现抖动、步伐不对称、四肢动作过多等现象。而最近 BAIR 实验室将模仿真实动作片段与强化学习结合,令智能体能从参考动作片段中学习流畅和高难度的动作。

我们从计算机绘图中得到了大量灵感,基于物理的对自然动作的模拟数十年来已经成为广泛研究的主题。对动作质量的关注通常受电影、视觉效果和游戏应用的推动。这些年来,关于基于物理的人物动画的大量工作开发出控制器,可生成适用于大量任务和人物的鲁棒性、自然动作。这些方法通常利用人类洞察纳入特定任务的控制结构,从而为智能体可执行的运动提供强大的归纳偏置(这些智能体包括有限状态机、简化模型和逆动力学)。但是由于这些设计决策,控制器通常特定于某种智能体或任务,为行走开发的控制器可能无法扩展至更加动态的技巧(缺乏人类洞察)。

在本研究中,我们将从两个领域中获取灵感,以利用深度学习模型的泛化性能,同时生成更自然的动作,可匹敌计算机绘图中全身运动模拟的当前最优水平。我们展示了一种概念层面上很简单的强化学习框架,使模拟智能体从参考运动片段中学习高动态、高难度动作,参考运动片段的格式是人类的动作捕捉数据。给出一个简单的技巧展示,如回旋踢或后空翻,我们的智能体能够学习一个鲁棒的策略来模仿该技巧。这些策略生成的动作与动作捕捉数据几乎难以区分。

1.1 动作模仿

在大部分强化学习基准中,模拟智能体使用简单模型来呈现,模型仅提供粗糙的现实世界动态近似。因此智能体倾向于利用模拟的特性开发出现实中不可行的不自然行为。通过结合更真实的生物工程学模型可以使动作更加自然。但是构建高保真模型难度非常大,而且得到的动作有可能还是不自然。

另一种方法是数据驱动,人类运动的参考片段提供自然运动的样本。然后训练智能体通过模仿参考运动来生成更自然的动作。模仿运动数据的模拟在计算机动画中有很长的历史,近期也出现了一些使用深度强化学习的案例,如《DeepLoco: Dynamic Locomotion Skills Using Hierarchical Deep Reinforcement Learning》。尽管结果看起来更加自然,但是离生动再现大量运动还有很远的距离。

本研究中,我们的策略将通过一个运动模拟任务来训练,智能体的目标是再现给出的参考运动。每个参考运动都以目标姿势序列的形式呈现

其中 是时间步 的目标姿势。奖励函数(reward)旨在最小化目标姿势 和模拟智能体(agent) 之间的最小二乘姿态误差

尽管运动模仿应用了更复杂的方法,但是我们发现仅仅最小化追踪误差(和一些额外洞察)就可以达到非常好的效果。这些策略是使用 PPO 优化目标来训练得到的。

有了这个框架,我们能够开发出适合大量高难度技巧(包括移动、杂技动作、武术和跳舞)的策略。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_算法_08

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_深度学习_09

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_深度学习_10

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_神经网络_11

仿真机器人学习模仿不同技巧。蓝色智能体是模拟智能体,绿色智能体在重演对应的 Mocap 动作捕捉片段。从上到下分别为侧空翻、侧手翻、蹬足上和单手跨栏。

下一步,我们把现有方法与之前模仿动作捕捉片段的结果(比如生成对抗模仿学习(GAIL))进行了对比。我们的方法要比 GAIL 简单很多,而且能够更好地复现参考动作。由此得到的策略避免了深度强化学习方法很多常见的 artifacts,使得智能体的运动可以像人一样流畅。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_人工智能_12

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_神经网络_13


我们的方法(上)与 Merel et al. [2017] 方法(下)的对比,后者使用 GAIL 模仿动作捕捉数据。相比之前使用深度强化学习的研究,我们的智能体动作显然更加自然。

1.2 洞见

1.2.1 参考状态初始化(Reference State Initialization,RSI)

假设智能体正在尝试模仿后空翻,那么它如何知道在半空中做一个完整旋转会得到高奖励呢?由于大多数强化学习算法是回溯性的,它们只能观察到访问过的状态奖励。在后空翻实例中,智能体必须先观察成功的后空翻轨迹,才能了解哪些状态能够得到高奖励。但由于后空翻对于起跳和着地的初始条件很敏感,智能体不大可能通过随机探索偶然性地执行成功的后空翻轨迹。为了给智能体一个提示,在每个 episode 开始时,我们把智能体初始化至从参考动作随机采样的状态。因此,智能体有时候会从地面开始,有时候会从后空翻的中间状态开始。这样即使智能体尚未熟悉如何达到这些状态,它们也能学习到哪些状态能获得高奖励。(不太恰当的比喻:【1】就像小孩子学习一样,成绩老是不及格,但是却根本不知道考满分是个什么东西,你让他怎么考满分?【2】班上都是不及格的,而且自己以前也都不及格,所以他只能按照以前考59分这个最高记录的方法继续学,尽量让自己靠近及格线)

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_强化学习_14


RSI 通过将智能体初始化至从参考动作随机采样的状态,为它提供丰富的初始状态分布。(包括直接从半空中开始)以下是使用 RSI 训练和未用 RSI 训练的后空翻策略对比,在后者的训练中智能体总是被初始化到固定的初始状态,即后空翻动作的起始点)。没有用 RSI 训练时,智能体没有学习到「空翻」,只学到了向「后」跳来作弊。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_人工智能_15


未用 RSI 或 ET 训练得到的策略对比。RSI 和 ET 对于学习更多动态的动作至关重要。左:RSI+ET;中:无 RSI;右:无 ET。

1.2.2 提前终止(Early Termination,ET)

提前终止对于强化学习从业者来说至关重要,它通常用来提高仿真效率。如果智能体在某个状态被困住了,不再可能成功学习到动作那么该 episode 将提前终止,以避免继续模拟。这里我们证明提前终止实际上对结果有显著影响。还以后空翻为例。在训练的早期阶段,其策略是很糟糕的,智能体大部分时间都在失败。智能体一旦摔倒,就很难再恢复到原来的状态,因此智能体大部分时间内都在地上挣扎。这和其它方法论如监督学习中遇到了类别不均衡问题相似。一旦智能体到达了这样的状态(例如摔倒),就终止这个 episode,以缓解该问题。ET 结合 RSI 有助于确保数据集的主要部分是由接近参考轨迹的样本构成的。没有 ET,智能体永远无法学会「空翻」,而只是摔倒然后在地上尝试表演这个动作。(如果前期训练老是摔倒而不提前终止的话,那么获得的数据都是智能体在地上挣扎,这个数据肯定会影响训练效果,即影响数据分布)

1.2.3 更多结果

通过提供不同的参考动作,类人体总共已学会超过 24 种技能。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_神经网络_16

训练类人体模仿丰富的技能。

除了模仿动作捕捉片段,我们还可以训练类人体执行其他任务,比如踢一个随机放置的目标,或者把球扔向目标。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_人工智能_17


训练向随机目标扔球的策略。我们也可以训练一个仿造的 Atlas 机器人模仿人类的动作捕捉片段,尽管 Atlas 的形态和质量分布非常不同,它依然可以重现预期的动作。该策略不仅可以模仿参考动作,还可以从相当显著的干扰中恢复过来。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_强化学习_18


训练 Atlas 来完成回旋踢,即使存在外部扰动,训练出的策略也极为稳健。但是如果我们没有动作捕捉片段,该怎么办?假设我们想要模拟霸王龙。因各种原因,捕捉霸王龙的动作不现实。所以,作为替代,我们可以用手绘的艺术动画来做关键帧,然后训练策略来模拟这些动作。

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_强化学习_19


模拟训练霸王龙,来模仿艺术创造的关键帧。而且不只是霸王龙,让我们训练一头狮子:

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_深度学习_20

模拟狮子,参考动作由 Ziva Dynamics 提供。

和一条龙

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_强化学习_21


具有418D状态空间和94D动作空间的模拟龙。

这里想说的是,一个简单的方法表现都很惊人。只是 最小化循迹误差(tracking error),我们就能训练掌握不同特征和技能的策略。我们希望该研究有助于启发为虚拟和现实机器人开发更多动态动作技能。探索从更多源(例如视频)中模拟动作也是令人激动的研究方向,例如动物和杂乱环境中比较难的动作捕捉。

1.3 论文原文摘要:

角色动画(character animation)的一个长期目标是把行为的数据驱动性与可在物理模拟中执行相似行为的系统结合起来,从而逼真地回应扰动和环境改变。我们的研究表明,强化学习方法可用于学习模仿大量样本动作片段的鲁棒控制策略,同时也可以学习复杂的恢复,以适应形态的改变,完成用户特定的目标。我们的方法处理关键帧动作、高度动态动作(比如动作捕捉的翻转和旋转)以及重定向动作。

通过结合动作-模仿(motion-imitation)目标与任务目标,我们在交互式设定中训练能够智能反应的智能体,例如向目标方向行走或朝用户指定的目标扔球等。这种方法具有使用动作片段的便利性与动作质量,以高效定义所需的风格和外观,还结合了 RL 方法和基于物理的动画所提供的灵活性和泛化性。我们进一步探索了大量将多个片段集成到学习过程的方法,以构建出能执行多个不同技能的智能体。我们还展示了使用多个对象(人、Atlas 机器人、双足恐龙和龙)和多种技能的学习结果,包括移动、武术和杂技等。

二、 关键点总结

2.1 概述

总的来说这篇文章的目的是训练出一个Agent在能够完成所需要的目标前提下,它的动作更贴近真实(也就是提供的参考动作)。

Input 分为三部分:

  1. 一个被称为 Character 的 Agent 模型;
  2. 想要Agent学习的参考动作(reference motion);
  3. 由 reward function 定义的任务(task)。

训练之后会得到一个可以控制 Agent 同时满足 :

  1. 与参考动作(reference motion)相似
  2. 可以完成目标任务(task objectives)

的控制器(controller)。DeepMimic的物理环境用的是(Bullet. 2015. Bullet Physics Library. (2015). http://bulletphysics.org.)

2.2 算法

2.2.1 强化学习 RL

  1. State:对于Character的各种描述,包括身体各部分的位置,转动角度角速度等等,坐标系的原点是Character的盆骨(质心位置),x轴方向是脸的朝向;同时还加了一个变量来描述一个 motion 的进度(例如后空翻动作开始时为0,翻完了结束了为1)。
  2. Action:每个关节所需要转到的方向(目标角度),采样频率为30Hz,之后将角度输入到PD controller(Jie Tan, Karen Liu, and Greg Turk. 2011. Stable Proportional-Derivative Controllers.IEEE Comput. Graph. Appl. 31, 4 (2011), 34–44.)中得到力矩等信息输入到物理环境中。(策略中的 action 指定每个关节处 PD 控制器的目标方向)
  3. Reward:分为两个部分
    1)鼓励Character像reference motion学习,模仿所提供的参考动作;
    2)驱动Character去完成所设定的任务。两部分的reward各有一个weight,相加之后为总的reward。

    其中模仿部分的reward又分为四部分,分别代表位姿pose,速度velocity,末端位置end-effector,重心位置centre of mass。任务reward需要人工设计。

2.2.2 训练算法 (Proximal Policy Optimization, PPO)

网络结构图:

读论文 DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills 笔记_神经网络_24


policy 的和 value 的结构除了最后一层都一样,就是 ppo,a3c 那些一样的套路。不同于其他 DRL 网络的地方在于网络的输入,除了state外还有两个部分:

  1. 第一部分是 Goal (g),描述task objective的(比如说要被踢的一个球体);
  2. 第二部分是 HeightMap (H),这是在特定任务中描述周围环境高度的,文中所使用的是一个3232的map,覆盖3.5m3.5m的区域。

2.2.3 Tricks

  1. 第一个RSI(Reference State Initialization),一般来说RL中初始位置不好确定,常用作法是在每个 episode 中固定初始 state,而 RSI 方法是用 reference motion 采样得到的 state 作为初始 state;
  2. 第二个是ET(Early Termination),具体方法就是当特定身体躯干(如头部)与地面接触时,ET触发,之后剩下的 episode 中的 reward 一律为0,这样做法有两个好处,上文 1.2.2 节已经给出。

2.2.4 多技能融合(Multi-Skill Integration)

前面所有介绍的训练方法都是建立在只提供一个 reference motion 的基础上的,显然我们想要的是 agent 能做很多不同的动作或者说是技能,于是作者介绍了三种融合的方法:

  1. Multi-clip Reward: 将训练时引入的参考动作 reward 稍稍变复杂一些,由一种参考变为多动作参考,具体在某一 state 选择哪种动作参考,根据的是那一时刻各个reference motion所带来的reward的大小,选取reward大的当做参考 (使角色可以在完成任务的时候,自由组合同一类别中的不同行为的一些动作,比如不同走路方式和转弯方式)
  2. Skill Selector:在训练时,让用户(user)指定某一时段或执行某一任务时参考哪一种动作,训练结束后,Character自然就会用多种动作了,这里让用户指定的方法就是将动作编成一个one-hot码,和前文中的goal一起输入网络(对同一类运动的具体效果进行选择,比如对于翻转,可以选择:向前翻转、向后翻转、左侧翻转、右侧翻转等);
  3. Composite Policy:在训练时每种动作分别训练,训练结束执行时则根据每种动作所对应的输出的value network返回值确定当前state下哪一种动作被使用。(可以从不同类别运动的动作中进行选择 ,做出最符合 时刻状态的动作

参考:

  1. ​​(原文PDF与代码)DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills​​
  2. ​​(原文博客)Towards a Virtual Stuntman 虚拟特技演员​​
  3. ​​(YouTube)SIGGRAPH 2018: DeepMimic paper (main video)​​
  4. ​​读DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills​​


举报

相关推荐

0 条评论