Journal
Neural Categorical Priors for Physics-Based Character Control
Tencent
一句话总结
本文用 VQ-VAE 的离散信息瓶颈为物理仿真角色学习一个可复用的离散运动先验(Neural Categorical Priors, NCP),并提出”先验偏移”技术平衡动作分布,使角色在剑盾格斗和双人拳击等复杂下游任务中兼具高真实感与高多样性。
研究背景
- 领域现状:可复用运动先验是物理角色控制的主流范式。已有工作多用 \(\beta\text{-VAE}\)(高斯隐空间)或 GAN/GAIL(对抗模仿)从无结构动作片段中学习先验,再复用到下游任务。
- 核心痛点:真实感与多样性难以兼得。\(\beta\text{-VAE}\) 面临重建质量与先验一致性的两难——\(\beta\) 太大导致后验坍塌、重建变差,\(\beta\) 太小则隐分布偏离高斯、难以采样;GAN 类方法训练不稳定且存在模式坍塌,难以覆盖整个数据分布。此外连续隐空间维度高,给上层策略的探索带来负担。
- 本文 idea:改用离散信息瓶颈(VQ-VAE 码本)作为隐空间,它天然是一个协方差趋近于 0 的高斯混合模型,表达力强且采样空间紧凑(几十到几百个码)。再针对小规模动作数据的类别不平衡问题,用好奇心驱动 RL 对先验分布做”偏移”,让它近乎均匀地覆盖所有动作。
方法
整体是一个三阶段的分层控制框架:先用 RL 模仿学习训练带离散瓶颈的底层控制策略(编码器 + 码本 + 解码器),再蒸馏并偏移出一个神经类别先验,最后在先验约束下训练上层策略求解下游任务。
flowchart LR
A["无结构动作片段"] --> B["阶段1: 模仿策略<br/>编码器→VQ码本→解码器"]
B --> C["阶段2: 先验蒸馏 + 先验偏移<br/>类别先验网络"]
C --> D["阶段3: 上层策略<br/>KL约束下选码驱动解码器"]
D --> E["下游任务: 剑盾击打 / 双人拳击"]
关键设计:
- 条件离散信息瓶颈(阶段一):编码器 \(p_e(z^e_t \mid s_t, f_t)\) 输入当前状态与未来轨迹,输出隐变量后通过最近邻查表量化到码本 \(e \in \mathbb{R}^{K \times D}\) 中的一个码;解码器 \(\pi_d(a_t \mid s_t, z^q_t)\) 输出 PD 控制器的目标关节位置。整体用 PPO 以跟踪模仿奖励训练,损失为 RL 目标加承诺损失。作者从理论上说明该量化过程等价于协方差趋近 0 的高斯混合模型,且相比 \(\beta\text{-VAE}\) 无需在重建与 KL 之间反复权衡,训练更稳定。
- 优先采样:罕见而敏捷的动作(如拳击连招)在数据集中出现少、且更难模仿。以跟踪奖励 \(R_m\) 定义采样概率 \(p_i = f(R_{m_i}) / \sum_m f(R_m)\),取 \(f(x)=(1-x)^{\alpha_1}\),让策略更关注难以模仿的片段。
- 先验蒸馏 + 先验偏移(阶段二):先把编码器输出蒸馏进一个只依赖状态 \(s_t\) 的类别先验网络 \(\pi^p_\varphi(\cdot \mid s_t)\),目标是最小化 \(\mathrm{KL}(p_e \mid\mid \pi^p_\varphi)\)。但蒸馏后的先验会继承数据不平衡。于是用基于计数的好奇心奖励 \(r(s)=\sqrt{N_k / \hat{N}(s)}\) 微调先验,其中伪计数 \(\hat{N}(s)\) 用动作匹配估计,从而把分布”压平”,让各动作被近乎均匀地生成。
- KL 正则的上层策略(阶段三):固定解码器与偏移后的先验,训练上层策略 \(\pi^h_\vartheta(\cdot \mid s_t, g_t)\) 从码本中选离散码。目标在最大化任务奖励的同时,加 KL 项让策略贴近先验、加熵奖励鼓励探索。离散动作空间(几十到几百个码)显著缩小了探索空间。双人拳击任务另用优先虚拟自博弈(PFSP)训练。
实验结果
在剑盾数据集上,作者用”重建相似度得分 > 0.5 的动作帧占比”衡量运动先验的真实感与覆盖度:从各方法隐空间随机采样约百万帧,与真实动作帧做匹配打分。NCP 大幅领先 GAN 类的 ASE 与 CALM。
| 方法 | 高质量帧占比(得分>0.5)↑ | 隐空间类型 |
|---|---|---|
| 本文 NCP | 94.6% | 离散码本 |
| ASE | 77.1% | 连续(GAN) |
| CALM | 69.6% | 连续(GAN) |
其余结论用文字补充:与 \(\beta\text{-VAE}\) 变体对比中,\(\beta=0\) 跟踪最好但隐分布过散不可复用,加大 \(\beta\) 又导致后验坍塌;NCP 的离散码则同时保持了较好的跟踪性能与紧凑可复用的隐空间。上层策略的消融显示,用离散隐空间能显著加快下游 RL 收敛;先验偏移后动作帧访问频率被调至近乎均匀。双人拳击任务中,通过 PFSP 训练的选手 Elo 分随训练稳步上升,并涌现出防守、闪避等接近真实拳击的策略。
亮点与局限
- 亮点:
- 将 VQ-VAE 的离散信息瓶颈引入物理角色控制,绕开了 \(\beta\text{-VAE}\) 的重建-KL 权衡与 GAN 的模式坍塌,真实感与多样性同时提升。
- 离散先验可被”偏移”以对抗小数据集的类别不平衡,这是连续高斯先验难以做到的;离散动作空间也大幅降低上层探索难度。
- 在双人拳击这类高自由度、接触密集的零和博弈中展示了可复用先验 + PFSP 的可行性。
- 局限:
- 依赖动作捕捉片段,数据规模仅数十条(约 26~30 分钟),先验偏移正是为弥补数据不足而设,泛化到全新技能仍受限。
- 训练成本高:模仿阶段约 2 天、先验 12 小时、拳击任务需 4 天收敛。
- 码本大小(256/512)、匹配阈值等超参需按角色经验设定;伪计数用动作匹配近似而非精确密度模型,可能影响偏移质量。
延伸思考
- 离散码本天然对应”技能词表”,是否可与语言/文本条件结合,做文本驱动的物理角色控制?后续 CALM 类工作已在探索条件化方向。
- 先验偏移本质是用好奇心奖励做分布均衡,这一思路或可迁移到其他存在长尾分布的模仿学习场景(如自动驾驶、机器人操作)。
- 上层策略在离散码上探索,若码本随任务在线扩展或分层组织,可能进一步支持更长时程、更复杂的组合技能。