枢纽
物理感知
输入模态proprioception

SLMP:把「动作潜空间」压到一个球面上,怎么采样都不摔

Jing Tan, Weisheng Xu, Xiangrui Jiang 等(香港科技大学广州 + 牛津)。arXiv:2603.01294(2026-03)。 项目页 · motion priorhumanoid controllatent space 线索

🧠 一句话心智模型:教一个物理仿真小人打架,传统方法是先做一个「动作先验」当作低层策略库——可 VAE 会丢细节、AMP 会模式塌缩。
SLMP 的做法是:把所有可能的动作都映射到一个单位球面上,用「球面距离 + 判别器语义」做双约束,只要在这个球上随便采一个点,都能得到合理动作。然后高层策略只需在球面上选点,不用直接管数十个关节。

🎯 为什么重要:动作先验的「两难」终结者

控制高自由度人形机器人(或仿真角色)的一个核心难题是:动作空间太高维,直接 RL 学不会。解决思路是给策略套一个「动作先验」——把合法动作压缩到一个低维 latent 空间,RL 只在 latent 空间里学。但两条主流路线都有硬伤:

VAE 类(PULSE 等) 高斯瓶颈压缩 · 信息丢失,细节糊 · 鼓励单峰分布 · 尾部密度低 · 随机采样 → 摔 10% 存活(论文实测) AMP 类(ASE/CALM) 对抗奖励塑形 · 判别器只分真假 · 梯度信号粗 · 易塌缩到少数模式 · 语义覆盖窄 重复挥拳、不多样 SLMP ✅ 球面 latent + 蒸馏 · 无重建瓶颈 → 不丢细节 · 几何 + 语义双约束 · 随机采样几乎不摔 · 多样 + 稳定 99.8% 存活
图 1:三类动作先验的根本区别。SLMP 不靠「重建」也不靠「对抗 logits」,而是把 latent 限定在球面上并用判别器引导局部一致性。
核心洞察:VAE 用 Gaussian bottleneck 鼓励「单峰」,但人形动作天然多模态(同一姿势下可以打出勾拳/直拳/侧踢);AMP 用判别器 logits 反传给策略,但 logits 不含关节级细节梯度。SLMP 想要「既不丢细节,又能稳定采样」——这是两难,它的解法是换个 latent 几何

💡 核心思想:单位球面 latent + 三损失塑造流形

SLMP 是两阶段方法。第一阶段:用传统方法训一个超强的 motion tracking 控制器 $\pi_{\text{track}}$(基于 PPO + goal-conditioned RL),它能在物理仿真里精准复现 mocap 参考——但它需要一个明确的「目标动作」作为输入,不能直接被高层调用。

第二阶段:把 $\pi_{\text{track}}$ 蒸馏到一个「latent-conditioned 先验策略」$\pi_\phi(s, z)$,其中 $z$ 是单位球面 $S^{d-1}$ 上的一个点。蒸馏用三个损失一起塑造球面结构:

z₁ 真实目标 z₂ 随机采样 d₁₂ 球面距 三个损失一起塑造球面: ① L_distill(模仿蒸馏) 真实 latent z₁ → 复刻专家动作 ② L_disc(判别器) 区分专家动作 vs 非专家 ③ L_DLSC(论文新贡献) 几何权重 w_d(球面距) × 语义权重 w_c(判别器分) → 强迫「邻近 latent → 相似动作」
图 2:SLMP 球面塑造。真实 latent z₁ 由编码器产生;随机 latent z₂ 在球上随机采。三个损失让整个球面被语义「填满」——任意一点都能解码出合理动作。
$$ \mathcal{L}_{\text{SLMP}} = \lambda_{\text{distill}} \underbrace{\|a^{t_1} - a^*_t\|^2}_{\text{蒸馏}} + \lambda_{\text{DLSC}} \underbrace{w_d \cdot w_c \cdot \|a^{t_2} - a^*_t\|^2}_{\mathcal{L}_{\text{DLSC}}} $$

其中几何权重 $w_d = e^{-\beta d_{12}}$(球面越近权重越高,鼓励局部平滑);语义权重 $w_c = 1 + \min(0, D(s_t, a^{t_2}))$(判别器分越低、越「不像专家」的点,受到越强的约束——把球面上的「空白区」填满)。

🛠️ 关键设计:先训几何,再加语义

设计做法为什么必要
① 蒸馏而非重建不用 encoder–decoder 重建动作,直接让 $\pi_\phi$ 模仿 $\pi_{\text{track}}$ 的关节输出绕开 VAE 的信息瓶颈——细节不丢,MPJPE 和专家几乎一致(31.7 vs 31.2)
② 单位球面约束所有 latent 强制 $\|z\|_2 = 1$,用 $\epsilon / \|\epsilon\|_2$ 采样消除 VAE 高斯 prior 在尾部「无信号」的病;球面是紧致无边界的,每一点都能被训练信号覆盖
③ 两阶段训练先用 $w_d$(几何)训到收敛,再加入 $w_c$(判别器语义)联合训纯判别器信号太噪会破坏几何结构;先有几何再叠语义更稳
④ 状态条件球面同一 $s_t$ 下,球面被聚类染色,揭示「这个状态有多少合法续作」站立时球面=多色多模式(可踢可打可躲);空中飞踢时球面=1-2 色(只能落地)——结构是动态自适应
🔮 直觉:为什么「球面」比「高斯」更对?
高斯 latent 的概率密度集中在原点附近,越往尾部密度越低、训练信号越稀。所以「球外圈」永远没被训过,随机采样落到那里就崩。
球面是紧致的——所有点到原点等距,没有「尾部」。只要你把整个球面用 DLSC 填满语义结构,任意采样都落在已训区域。换几何 = 换命运

📊 关键结果:99.8% 随机采样存活率

基于自采的 2 小时战斗 mocap 数据集(Xsens MVN Link,180Hz;502 段约 14 秒片段,30Hz 下采样),在 Isaac Gym 评测。

评测维度数字对照
潜空间跟踪 Success(信息保留)100.0%PULSE 99.2%;Expert 上界 100.0%
潜空间 MPJPE(关节误差,越低越好)31.7Expert 上界 31.2;PULSE 约 41.1(信息瓶颈导致误差更大)
随机采样 10s 存活率(1000 次试验)99.8%VAE 10.2%,VQ-VAE 12.4%,球面无 DLSC 0.1%,ASE/PULSE 长程崩
30s 长程存活率95.4%PULSE 90.1%(论文 Fig.5,差距随时间拉大)
双人对战:稀疏规则奖励多样、人类-like 击打/闪避/步法NCP 稠密奖励 → 退化(贴贴不打的「僵持」);Smplolympics → 重复出拳
跨本体同一管线可迁移到真实仿真人形机器人见 Appendix A(PM01 等真实机器人形态)
关键洞察:传统双人对战 RL 需要稠密 reward shaping(朝向、距离、速度、接触奖励…)。SLMP 让你只用「击中 + 击倒」两条稀疏规则就能训出多样战术——因为它已经把「什么是合法格斗动作」烧进了先验里。这就是「先验替代奖励工程」的力量。

🌐 在领域中的位置

DeepMimic(单 clip RL 跟踪) PHC / PHC+ / UHC(大规模通用跟踪控制器) ASE / CALM(对抗 latent 先验) · PULSE(VAE latent) SLMP(球面蒸馏先验)⭐ 高层 RL / 自博弈只在球面上决策

SLMP 属于「motion prior 谱系」的最新一环,介于 AMP(对抗)和 ASE(latent 对抗)与 CALM(条件 latent)之间,把球面几何 + 蒸馏带进了这个分支。它和 DeepMimic(源头)一起,构成了「物理仿真人形动作控制」从「跟一个 clip」到「在 latent 球上自由组合」的演进主轴。

❓ 常见误区

球面 latent 听起来很怪,为什么不用高斯、不用 VQ-VAE?

作者都做了对照(论文 Table 1)。VAE/VQ-VAE 跟踪 success 也能到 99%+,但随机采样 10s 存活只有 10-12%——它们都靠「重建」学,没训练过的 latent 区域解码就崩。球面 + DLSC 把存活率拉到 99.8%。

DLSC 损失里的 $w_c$ 不就是个判别器项吗,和 AMP 有啥区别?

AMP 把判别器 logits 当 reward 反传给策略,梯度粗。SLMP 的 $w_c$ 是权重,不是 reward——它控制「这个随机点要被多强地拉向专家动作」,配合 MSE 损失给出关节级精细梯度。判别器在 SLMP 里只负责「指认哪些区域是空白」,不负责教动作。

2 小时 mocap 数据是不是太少?

这是论文的诚实之处——专攻「战斗」这一个高动态技能域,所以数据自采。作者明确说未来工作要扩到 AMASS 级(几十小时)的多领域数据集,验证 SLMP 的 scale 能力。

「双人对战」和机器人控制有啥关系?

它是一个高层决策 testbed。证明 SLMP 作为低层先验时,高层只需在 latent 球上学「什么时候出什么招」,不用管数十个关节怎么动。这个范式直接迁移到真实人形机器人:高层=任务策略,低层=SLMP 动作先验。