Light REACT

面向规模化部署的全身韧性智能

Light REACT 是我们在控制层面迈向规模化部署的第一步。它聚焦一个重要却尚未得到充分研究的问题:如何让人形机器人在受扰、受损或行动受限时,仍然能够恢复行动、继续执行任务。我们将这一研究方向称为韧性人形机器人控制(REsilient humAnoid ConTrol,REACT)。

借助 Transformer 架构,Light REACT 实现了全身上下文学习(Whole-Body In-Context Learning):根据近期与物理环境的交互轨迹,判断外力、硬件受损和环境约束对身体的影响,再调用相应的全身技能作出调整。这为机器人自主恢复和继续执行任务提供了控制基础,有助于在部署规模扩大后,减少人工干预和长时间的任务中断。

01 · 规模化部署

韧性:规模化部署的最后一公里

规模化部署的目标,是让大量机器人在真实世界中积累经验,再用这些经验改进模型,形成持续迭代的数据飞轮。但随着部署规模扩大,机器人难免会受到干扰、跌倒,甚至出现硬件故障。一旦这些情况超出控制系统的应对能力,任务就会中断。部署越依赖人工救援,就越难稳定运行,也越难形成持续的数据反馈。

因此,全身控制模块需要具备韧性:既能应对外界干扰,也能在跌倒后起身,并适应硬件故障。硬件受损不仅让控制更困难,还会改变机器人实际能够完成的动作。我们希望保住的是机器人的移动能力,而不是某一种固定步态。即使身体能力发生变化,机器人也应尽可能继续行动,支撑规模化部署的稳定运行。

目前,全身控制器1,2通常会在训练中加入模拟推力,以提升平衡能力、减少跌倒。但对人形机器人而言,韧性还意味着:跌倒后能够重新起身3,4,在硬件受损5,6时保持移动能力,以及在身体已无法支持常规直立行走时,找到其他移动方式。

已有研究分别探索了这些能力,但仍有两个难点:一是覆盖更广泛的硬件受损情形,二是把应对这些情形的能力整合进同一个通用策略。为此,我们首先提出韧性金字塔,按层级梳理机器人可能遇到的问题,以及各层级所需的行为能力。在此基础上,我们扩展受损情形的数量和种类,并设计完整的训练流程,将各层级的应对能力统一到一个全身控制器中。这就是 Light REACT:为规模化部署建立具备韧性的控制基础。

01A · 韧性金字塔

重新理解人形机器人的韧性

我们的出发点是:充分利用机器人全身仍然可用的能力,在硬件受损时尽可能准确地跟踪速度指令。行走、跛行、单腿跳跃和爬行,都是利用身体尚存的运动、驱动和支撑能力,完成同一个控制目标的不同方式。韧性金字塔将这些能力分为四层:受推时保持平衡,跌倒后重新起身,硬件受损后调整起身与移动方式,以及无法直立运动时转为爬行。完整的韧性控制器应当贯通这四个层级。

无法行走,也能继续移动

双腿无法再支撑双足步态时,让双臂参与支撑,转为爬行。

适应受损的身体,换一种方式移动

判断身体能力的变化,跌倒后重新起身,并利用仍然可用的关节继续移动。

跌倒后起身,恢复行走

受到强烈推力而跌倒后,能够自行起身并继续行走。

受到推力,仍能保持平衡

在适度推力下保持平衡,继续行走。

02 · 训练方法

训练教师、蒸馏学生、对齐偏好

Light REACT 的训练分为三个阶段:强化学习(RL)、蒸馏,再进行一轮强化学习。每个阶段承担不同的任务。

第一阶段:训练专用教师 。我们采用分而治之的方法,针对不同受损类型分别学习合适的控制策略。每一类受损条件下,都单独训练“起身与直立运动”和“爬行”两类教师策略,共同覆盖韧性金字塔的全部层级。

第二阶段:多教师蒸馏 。我们将多个教师的能力整合到一个可部署的学生策略中,目标是尽可能完整地保留教师的技能。对比 MLP、RNN 和 Transformer 后,我们发现 Transformer 对教师能力的覆盖最广。它的显式上下文窗口能够保留近期交互历史,为全身上下文学习提供支持。

第三阶段:偏好对齐 。我们希望机器人在身体条件允许时,优先起身并保持直立运动,同时保留爬行作为后备能力。仅靠蒸馏无法建立这一偏好,因为在同一种受损条件下,行走和爬行都可能完成速度跟踪。为此,我们通过奖励设计,将直立偏好引入强化学习。在本组实验中,只有 Transformer 实现了这一目标;MLP 和 RNN 则逐渐退化为以爬行为主的策略。

多个专用教师,
覆盖多种能力

针对性的奖励与课程设计

正在加载教师动作…

6
个教师策略= 3 类受损条件 × 2 类技能
阶段一 · 教师强化学习

一个通用模型,
尚无明确偏好

教师动作监督
一个模型通用 Transformer 策略
学生自主运行技能分布
阶段二 · 多教师蒸馏

同一个模型,
建立直立偏好

鼓励直立的偏好奖励
同一个模型偏好对齐后的通用策略
学生自主运行技能分布
阶段三 · 偏好强化学习
03 · 阶段一 · 专用教师训练

六个教师:3 类受损条件 × 2 类技能

我们考虑三类受损条件:驱动失效(Actuation Loss),将受影响电机的主动输出力矩设为零;关节锁定(Joint Locking),将受影响关节固定在某个角度;屈膝约束(Knee-Fold Constraint),使膝关节保持弯曲,无法完全伸直。

这三类条件共包含 196 种受损情形。驱动失效和关节锁定各包含 86 种:覆盖腿部全部关节的 12 种单关节情形、全部 66 种双关节组合,以及同一条腿上沿关节链连续影响 3–6 个关节的 8 种情形。屈膝约束包含 24 种,分别在左右膝关节上施加 12 个屈曲角度区间,范围覆盖 90°–150°。

针对这些受损条件,我们训练两类技能:起身与直立运动(Recovery–Locomotion),涵盖跌倒后的起身恢复和直立移动;爬行(Crawling),通过全身多个部位与地面接触来完成移动。

03B

教师策略如何训练

六个教师分别独立训练,均使用 PPO7AMP8。PPO 负责强化学习优化,AMP 则利用参考动作提供运动先验。

起身与直立运动教师分两步训练。首先,从零开始用强化学习学习起身:为 AMP 提供起身参考动作,以约束动作的自然性,并通过课程学习安排外部向上辅助力。随后,在已学会起身的模型上继续训练,加入速度跟踪奖励来学习移动,同时使用起身和移动两类参考动作。这一步不再施加外部辅助力。

爬行教师从零开始训练,AMP 使用爬行参考动作,并使用相同的速度跟踪奖励。此外,我们专门设置俯卧朝向奖励,鼓励机器人从跌倒姿态翻转到适合爬行的姿态。

每类技能各训练三个教师,分别在训练中注入驱动失效、关节锁定或屈膝约束。这样,六种“受损类型 × 技能”的组合,各自对应一个专用教师策略。

训练时,每个教师还会接收一个21 维二值受损标记:每一维对应一个关节,1 表示受损,0 表示未受损。这属于训练阶段的特权信息,直接告诉教师哪些关节受到影响,让它专注于学习已知受损条件下的最佳应对行为,而不必同时判断哪里出了问题。蒸馏后的学生策略不接收这一标记。

受损类型驱动失效

21 维受损标记

1 · 驱动失效   0 · 未受损

86 种情形:12 种单电机失效、66 种双电机失效、8 种关节链失效。

04 · 阶段二 · 多教师蒸馏

将多个专用策略整合为一个通用策略

六个专用教师借助训练时可用的故障标签,学会了相互补充的技能。但在实际部署时,机器人无法直接获得这些标签。因此,我们采用基于 DAgger9 的多教师蒸馏,将它们的能力整合进一个策略。学生只接收速度指令(vx、vy 和偏航角速度)以及本体感知信息,也就是机器人对自身状态的感知。蒸馏过程中,由学生与环境交互,再由对应的教师为学生实际到达的状态提供动作监督。学生不会被直接告知故障类型,而需要从过去与环境的交互中,判断自己的身体出了什么问题。

04A · 学生策略架构

只看当前观测,还是利用交互历史?

我们对比三种学生架构:只使用单帧观测、没有记忆的多层感知机(MLP),循环神经网络(RNN),以及拥有 64 帧上下文窗口的 Transformer。三者接收相同类型的输入:速度指令和本体感知信息。通过这一对比,我们考察时序记忆如何帮助学生判断自身的身体状态与可用能力。

01 · 单帧观测

MLP

只使用当前观测。

无记忆
02 · 循环隐藏状态

RNN

GRU(512 个隐藏单元)+ MLP 动作输出头。

学习到的记忆
03 · 显式上下文

Transformer

保留 64 帧的因果上下文窗口。

序列记忆

相同的观测,不同的记忆方式

同一串观测,按相同的时序输入三个策略。

十帧观测,三种处理方式 每帧观测同时输入 MLP、RNN 和 Transformer。MLP 只使用当前观测。RNN 策略先将观测归一化,再用单层 GRU 更新 512 维隐藏状态,随后将 GRU 输出送入隐藏层宽度分别为 512、256 和 128 的 MLP,生成动作。只有 GRU 的隐藏状态会传递到下一步,MLP 和动作输出不会作为记忆保留。因果 Transformer 只能关注当前和此前收到的 token,不能读取未来帧。三种策略每收到一帧观测,都会输出一个动作。
04B · 教师技能覆盖

学生保留了多少教师能力?

蒸馏的核心目标是技能覆盖:同一个学生应当在各类受损条件下,同时保留起身与直立运动、爬行两类技能。我们从两个角度评估:学生输出的动作与教师有多接近?学生自主运行时,各类行为又各占多少?前者用教师轨迹输入下的动作均方误差衡量,后者则通过学生自主运行的轨迹评估。

Transformer 的动作均方误差最低

我们先让各个教师运行,采集观测—动作轨迹,再按时间顺序,将其中的速度指令和本体感知观测输入学生,计算学生预测动作与已记录的教师动作之间的均方误差(MSE)。这一评估使用的是教师运行时的观测,而不是学生自主运行产生的观测。

拥有 64 帧上下文窗口的 Transformer 对教师轨迹的拟合明显更好,表明它可能更充分地保留了教师的行为能力。

MLP RNN · GRU 512 Transformer · 64 帧上下文
展开六个教师的详细结果 收起六个教师的详细结果
驱动失效

起身与直立运动教师

驱动失效 · 起身与直立运动教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 6.251916 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 1.515322 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 1.420389 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 1.251151 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 1.317365 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 1.339196 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 1.233332 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 1.257764 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 1.246482 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 1.319502 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 1.331300 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 1.338234 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 1.289015 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 1.279657 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 1.385337 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 1.363007 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 1.212215 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 1.318515 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 1.410409 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 1.263513 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 1.321070 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.550894 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 1.794627 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 1.273323 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 1.078419 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.979417 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.946337 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.903510 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.843949 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.895879 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.862125 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.834982 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.846429 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.813552 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.749821 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.811459 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.745603 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.765776 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.776132 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.765550 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.737695 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.776511 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 6.025502 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.390645 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.321330 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.324796 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.307778 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.287949 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.293046 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.294527 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.276460 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.288731 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.290002 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.289112 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.277033 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.278571 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.271198 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.275027 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.280771 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.273130 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.266860 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.268408 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.276714
驱动失效

爬行教师

驱动失效 · 爬行教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 3.642987 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.806101 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.685994 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.648027 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.734544 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.730543 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.615526 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.792404 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.587043 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.583902 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.550559 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.668224 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.618478 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.814946 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.753148 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.840673 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.823317 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.998673 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.883556 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.934451 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.848847 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.932160 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.845363 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.636102 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.701693 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.710458 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.711106 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.672331 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.600294 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.633625 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.630101 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.635762 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.555243 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.720597 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.585893 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.609062 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.700857 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.581887 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.662344 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.546766 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.684805 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.549155 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 7.697915 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.188659 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.159395 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.170932 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.158391 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.157308 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.155963 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.146177 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.172913 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.162600 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.155362 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.184196 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.155859 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.175752 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.178543 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.149912 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.180302 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.171253 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.196835 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.177196 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.163406
关节锁定

起身与直立运动教师

关节锁定 · 起身与直立运动教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 4.924906 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.940690 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.783629 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.684654 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.778400 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.827361 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.719279 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.739484 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.765794 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.805137 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.804560 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.749827 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.772196 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.782075 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.845470 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.890563 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.736190 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.787598 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.779621 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.747387 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.825798 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.416523 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.971981 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.659942 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.626854 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.587051 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.584336 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.498437 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.544787 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.475223 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.546272 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.535114 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.489626 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.545164 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.435614 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.482620 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.477214 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.444985 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.459124 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.446596 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.433086 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.445657 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.459383 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.237287 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.202419 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.202466 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.198044 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.184061 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.182314 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.180311 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.175570 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.183885 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.179379 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.174034 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.175469 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.176384 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.167544 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.174329 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.168621 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.166450 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.167093 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.172294 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.166502
关节锁定

爬行教师

关节锁定 · 爬行教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 4.114511 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.665278 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.553041 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.565747 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.560735 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.529400 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.591217 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.573996 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.575048 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.535547 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.565064 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.567337 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.511967 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.582947 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.651079 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.662391 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.630123 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.707195 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.653135 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.652262 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.608642 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.333927 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.948684 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.659172 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.591981 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.546554 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.589958 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.539636 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.536509 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.508051 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.550025 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.543106 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.458956 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.611128 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.514984 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.576290 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.529954 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.526885 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.507905 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.467486 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.526474 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.449340 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 6.700801 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.195222 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.156679 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.175678 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.160512 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.152912 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.160654 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.169030 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.163851 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.159216 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.158614 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.158046 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.155705 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.163861 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.157903 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.158089 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.163666 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.164482 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.168817 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.159577 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.154600
屈膝约束

起身与直立运动教师

屈膝约束 · 起身与直立运动教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 6.663657 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 1.083375 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 1.053528 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 1.005097 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 1.099558 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.974014 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.909377 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.944938 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 1.014213 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 1.042208 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 1.071432 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 1.102842 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 1.048758 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 1.072428 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 1.066061 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 1.176874 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 1.194930 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 1.358177 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 1.334164 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 1.314622 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 1.205720 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 8.143319 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 1.423795 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.867944 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.860219 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.814759 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.827778 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.651986 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.747128 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.728714 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.628040 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.686247 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.652882 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.721020 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.589920 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.672799 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.621405 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.688059 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.669721 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.648473 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.653054 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.672859 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 8.769456 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.289977 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.258496 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.264584 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.250805 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.231923 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.240980 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.246261 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.218082 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.233863 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.225357 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.240794 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.236199 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.231707 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.229708 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.218228 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.232295 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.219162 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.212173 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.215667 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.214877
屈膝约束

爬行教师

屈膝约束 · 爬行教师: 教师轨迹输入下的动作 MSE 重置问题修复前的数据,统计第 1–20 秒。对比三种学生模型在第 0 至 5000 次迭代之间的 21 个检查点。使用实线和空心标记,纵轴统一采用 0.1 至 10 的对数刻度;数值越低越好。 0.1 0.2 0.5 1 2 5 10 0 1k 2k 3k 4k 5k 训练迭代次数动作 MSE · 对数刻度 MLP · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 4.934784 MLP · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.692527 MLP · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.567004 MLP · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.503427 MLP · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.538685 MLP · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.510737 MLP · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.641172 MLP · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.575002 MLP · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.712157 MLP · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.548443 MLP · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.599787 MLP · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.568643 MLP · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.585934 MLP · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.586127 MLP · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.812708 MLP · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 1.092050 MLP · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.708377 MLP · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.726672 MLP · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.821008 MLP · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.725708 MLP · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.894022 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.329335 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 1.525910 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.736853 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.841665 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.862282 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.665470 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.741653 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.766175 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.603609 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.615266 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.561102 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.601051 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.518533 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.494732 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.475545 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.490717 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.446088 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.528199 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.516863 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.547209 RNN · GRU 512 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.449146 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 0 · MSE 5.943331 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 250 · MSE 0.150943 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 500 · MSE 0.136268 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 750 · MSE 0.131232 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1000 · MSE 0.144224 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1250 · MSE 0.123507 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1500 · MSE 0.148116 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 1750 · MSE 0.147915 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2000 · MSE 0.145317 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2250 · MSE 0.129634 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2500 · MSE 0.131439 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 2750 · MSE 0.139373 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3000 · MSE 0.150550 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3250 · MSE 0.153030 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3500 · MSE 0.141767 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 3750 · MSE 0.128864 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4000 · MSE 0.136807 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4250 · MSE 0.141475 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4500 · MSE 0.120535 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 4750 · MSE 0.138328 Transformer · C64 · 重置问题修复前 · 1–20 s · 迭代 5000 · MSE 0.122323

除了模仿误差,学生实际会怎么做?

模仿误差低,并不意味着学生已经完整掌握了教师的技能。我们进一步评估学生自主运行的轨迹,将每一帧归为“直立”“爬行”或“其他”,再统计各类受损条件下三种行为的帧数占比。

每一帧如何分类
直立

身体处于直立姿态。

  • 根节点(骨盆)高度 ≥ 0.40 m
  • 躯干与竖直方向的夹角 ≤ 70°

两项条件须同时满足;不要求速度跟踪误差达到特定阈值。

爬行

以低姿态爬行,并跟踪速度指令。

  • 根节点(骨盆)高度 < 0.35 m
  • 朝向:躯干 +X 轴与竖直向下方向的夹角 ≤ 30°
  • 爬行坐标系下的前向速度跟踪误差绝对值:|ex| ≤ 0.25 m/s

三项条件须同时满足。

其他

既不完全满足“直立”条件,也不完全满足“爬行”条件。

包括姿态切换过程,以及朝向或速度跟踪未达到爬行标准的低姿态行为。

下方动画展示了同一种故障下,MLP、RNN 和 Transformer 的逐帧行为分类。三个机器人均从跌倒姿态开始,右腿六个电机全部失去动力,并接收 vx = 0.5 m/s 的前向速度指令。彩色时间轴标出了这段 20 秒运行轨迹中每一帧的行为类别。

没有记忆的 MLP 在各类受损条件下都以“其他”行为为主。这与一种可能的机制相符:单帧观测提供的上下文不足,以 MSE 为目标的蒸馏容易在两类技能的动作之间取平均,产生两者之间的过渡行为。RNN 在三类受损条件下都减少了“其他”行为的占比,说明循环记忆有助于缓解这种歧义。Transformer 利用显式的 64 帧上下文窗口,较为均衡地保留了直立运动和爬行,并且在每类受损条件下,“其他”行为的占比都是三种架构中最低的。

这些结果表明,在本次对比的三种架构中,Transformer 的显式上下文最有助于保留教师的技能,并减少两类技能之间的混淆。

运行轨迹中的帧数占比(%)
驱动
失效
关节
锁定
屈膝
约束
MLP
驱动
失效
关节
锁定
屈膝
约束
RNN
驱动
失效
关节
锁定
屈膝
约束
Transformer · 64 帧上下文
直立 爬行 其他
05 · 阶段三 · 偏好对齐

让行为符合人的偏好

蒸馏把同一受损条件下的多种移动方式整合进了一个策略,但还没有回答一个问题:机器人应该优先选择哪一种?学生可能起身行走,可能爬行,也可能表现为“其他”类别中的行为。

我们的偏好很明确:身体条件允许时,优先起身并保持直立运动;确实无法直立时,再转为爬行。直立运动主要依靠脚部接触地面,可以减少四肢和关节外壳的磨损,也更适合人类活动空间。与此同时,当损伤已经使行走不可行时,爬行仍是必不可少的后备能力。

我们通过强化学习微调蒸馏后的学生策略,引导它形成这一偏好。奖励鼓励起身、稳定的直立姿态,以及直立状态下的速度指令跟踪。爬行时准确跟踪速度指令也能获得奖励,但奖励水平显著低于直立跟踪。这一阶段调整的是策略如何运用已经学到的技能。下面的对比显示,同样的偏好目标,在不同架构上可能产生不同结果。

05A

相同的偏好目标,不同的学习结果

微调后,Transformer 更倾向于直立运动,MLP 和 RNN 则更倾向于爬行。下方柱状图在蒸馏后与强化学习对齐后的行为帧数占比之间切换,展示两个阶段的差异。

运行轨迹中的帧数占比(%)
驱动
失效
关节
锁定
屈膝
约束
MLP
驱动
失效
关节
锁定
屈膝
约束
RNN
驱动
失效
关节
锁定
屈膝
约束
Transformer · 64 帧上下文
直立 爬行 其他

强化学习从蒸馏后保留下来的技能出发。对 MLP 和 RNN 来说,起身、直立运动和爬行可能还不是清晰、可靠的独立行为。持续直立移动需要一连串能力:先起身,再稳定身体,随后在受损条件下跟踪指令。如果这套过程不够可靠,爬行就可能成为更容易获得奖励的选择。随着训练不断强化爬行,策略练习和改进起身能力的机会也可能随之减少。

同一个任务,对不同模型的难度也可能不同。即使奖励更偏向直立跟踪,一个难以保持直立并跟随指令的策略,仍可能通过爬行获得更稳定的回报。Transformer 的显式时序上下文可能帮助它利用身体近期的反馈,在受损条件下维持直立控制,从而为微调强化预期偏好提供更好的起点。

05B

偏好对齐后的全身上下文学习

下面的真机视频对比了 Transformer 在偏好对齐前后,如何应对暂时性的受损情况。每次运行中,损伤都会在中途解除,用来观察两种策略在身体重新具备直立运动能力后,是否会调整行为。

第一个场景中,双膝电机因过热失去动力,并在运行中途恢复。动力恢复后,经过强化学习对齐的 Transformer 重新转为直立运动。这一现象表明,它可能利用上下文窗口中保留的全身交互历史,判断故障已经解除。相比之下,蒸馏策略在这次演示中没有完成这一切换。第二个场景中,机器人的双腿被绑住,运行中途再剪断绑带,观察策略如何应对约束的解除。

受损情况

未对齐偏好· 蒸馏后的策略

已对齐偏好· 强化学习对齐后

受损情况

未对齐偏好· 蒸馏后的策略

已对齐偏好· 强化学习对齐后

收到速度指令后,机器人首先尝试站起。外部压力阻止它起身时,策略利用上下文窗口中的交互历史判断站立受到限制,随后转为爬行,继续跟踪速度指令。到达开阔区域后,它又从新的交互中判断环境约束已经解除,自主站起,并以直立姿态继续跟踪指令。

硬件完好,但受到环境约束强化学习对齐后