Q1:AMP 能直接用在真机器人上吗?
不能直接用。AMP 在物理仿真(Bullet,1.2 kHz)里训,on_robot=false。📎真机还需 sim2real、domain randomization 等额外步骤。
论文:Peng, Ma, Abbeel, Levine, Kanazawa. AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control. SIGGRAPH 2021 / ACM TOG 40(4). arXiv:2104.02180. 🌐
让虚拟人的动作看起来像真人。秘诀是请一个"风格裁判"打分。不再逐帧抄参考视频。📎好比品酒师不背化学式,尝过成百上千杯真波尔多,一口尝出“这杯像不像波尔多”——标准来自一整片样本云,不是某一杯“标准答案”。不过这位品酒师的舌头每轮都在长:每出一批新酒他就重新学一次。他评的不是"绝对像波尔多",而是"能不能把你和真波尔多区分开"。
要解决的问题:让仿真人的动作看起来像真人。📎
老办法:DeepMimic 这类工作让角色"逐帧跟读"参考动捕。📎动捕(mocap)是给真人穿感应衣录下的动作。角色每一步都要踩在参考的某一帧上。节奏不能自由发挥。跌倒就很难恢复。一段参考只能训出一个动作。
AMP 的转身:不再逐帧抄,只要求"整体分布像人"。"分布"指角色所有姿态、动作连起来的整体长相。📎那个"风格裁判"是个会打分的神经网络,叫判别器。它看一段动作就给个分,越像真人分越高。这个分当奖励,驱动角色一步步改动作,越改越像人。动捕第一次成了可跨任务复用的资源。
你会看到:同一份动捕,能训出边走边打拳的角色。还能按速度自动在走、慢跑、跑之间切换。📎后续 ASE、PHC 等整条脉络都站在它肩上。📎
一句话类比:AMP 之于动作模仿,就像印象派之于肖像画——不求像素级像,只求神似。
核心机制:训一个判别器(一个打分的神经网络)。📎它要学会"区分真人动捕和角色自己生成的动作"。判别器越觉得"这段像真人",给的风格奖励就越高。强化学习再拿这个奖励训角色。📎于是整段动捕被凝练成一个奖励信号。
关键设计·只看姿态对:和 GAIL(经典对抗模仿方法)不同,AMP 的判别器只看相邻两个姿态,不看动作。📎原因很实在:动捕数据只有姿态序列,没有电机指令。"当前姿态、下一姿态"这一对,就是判别器的全部输入。
风格奖励:判别器给出一个实数分 D。奖励写成 $r^S = \max(0,\; 1 - 0.25(D-1)^2)$。📎逐项读:D 是判别器打的分;平方项衡量离峰值(D=1)的差距;0.25 是缩放系数。内层是关于 D=1 对称的开口向下抛物线,D=1 处天然取峰值 1,向两侧衰减到 0 以下;外层 $\max(0,\cdot)$ 只把负值部分截到 0。所以奖励落在 $[0,1]$——上界 1 是公式自带的,下界 0 才是 max 截出来的。最终奖励是任务奖励和风格奖励各占一半。📎
常见误区(先抛一个,完整版见末尾):"AMP 不就是在学奖励函数吗?"——是,但学的是对抗式、非固定的奖励。[未确认]奖励是判别器隐式定义的,每轮随判别器一起更新(这与 RLHF 那种学一个独立的、阶段性冻结的 reward model 不同)。更准确的说法是:用对抗训练把"像人"这个模糊目标,自动翻译成强化学习能用的奖励。
判别器怎么训:AMP 用 Least-Squares GAN(LSGAN)损失,不是常见的 sigmoid 交叉熵。📎原因是 sigmoid 在判别器变强后梯度消失。LSGAN 让判别器输出实数分(真人样本目标 +1,角色样本目标 -1),等价于最小化两类分布间的 Pearson $\chi^2$ 散度。
梯度惩罚:只在真人样本上加 R1 风格的梯度惩罚(系数 $w_{gp}=10$),不是 WGAN-GP 的双边惩罚。📎论文消融明确:去掉它训练就不稳定。注意惩罚是对观测特征 $\Phi(s)$ 求梯度,不是对完整状态。
观测特征 $\Phi(s)$ 的构成:判别器并不直接吃原始 state,而是先抽四类特征——root 的线速度+角速度、各关节局部旋转(球关节用 6D 表示避免万向锁)、关节局部速度、末端效应器 3D 位置。📎刻意不含任务相关特征,所以一份先验可跨任务复用。窗口仅 1 步(一对 $(s_t, s_{t+1})$),没有时序堆叠。
和 GAIL 的关系:GAIL 用 $(s,a)$(状态-动作对)喂判别器,需要专家动作。📎动捕只有姿态、没有扭矩,所以 GAIL 直接用不了。AMP 改成只用观测转移对(思路来自 Torabi et al. 2018 的状态转移对判别器),是最早一批在物理角色上跑通的对抗式模仿方案——且更进一步:从原始动捕(无 action 标注)、无需 phase variable 与 motion planner、scale 到大规模非结构化数据集。Merel et al. 2017 等前作已用对抗思路做物理角色,但需 phase variable 或只能单 motion。两者共享"判别器即奖励"的核心,差别在输入。
更新节奏:每个 iteration 先采一批轨迹,再对判别器做约 16 次小批量更新,最后才做一次 PPO 更新。📎判别器 stepsize $10^{-5}$,policy stepsize $2$–$4\times10^{-6}$——两者同量级,判别器反而略大 2.5–5 倍(见 Table 4)。📎真正稳住对抗的不是"步长小",而是三件事:(a) LSGAN 替代 sigmoid 交叉熵,避免判别器变强后梯度饱和;(b) 只在真人样本上的 R1 梯度惩罚 $w_{gp}=10$;(c) 判别器挂一个 $10^5$ 大小的 replay buffer,防过拟合最新一批 rollout。"更新勤"是真的(每 iteration 约 16 次小批量 vs PPO 1 次),"步长小"是假的。
网络结构:策略、价值、判别器三者同构——全连接,2 个隐层 1024→512,ReLU,线性输出;策略输出对角高斯,协差不学习。📎
实验要点:角色覆盖 34 DoF 人形、59 DoF 霸王龙、64 DoF 狗。📎最惊艳的两个涌现:用纯 locomotion 数据集训"按方向走",policy 自动在 1 m/s 走、2.5 m/s 慢跑、4.5 m/s 跑之间切换并能 bank 转向;用"走+打拳"混合数据集训击打,policy 会先走近目标再出拳。训练 30–140 小时,每个 policy 100–300M 样本(论文只说 16 CPU cores,未提 GPU 使用)。📎
仍然没摆脱的 trick:AMP 仍需 reference state initialization(RSI,从动捕片段随机采初始状态)和 early termination(除脚外任何部位触地即终止)。📎它去掉了 DeepMimic 的 phase variable,但没完全告别这些稳定化手段。
局限:
图谱定位:AMP 是 motion prior 线索的标志性工作。📎它把模仿从"状态对齐"(reference tracking)升级到"分布对齐"(distribution matching),让动捕成为可跨任务复用的资源。后续演进清晰:
每个后继都把"判别器式 style prior"换一种形态:reward → latent → controller → foundation。
副产品:AMP 的判别器替代了复杂手工奖励,被 AMP-Adroit 显式做成卖点。📎把 AMP 放进"reward 自动化"的大图,有两条平行的线,机制不同、不是前后继:
AMP 是 (a) 在物理角色上的代表,与 (b) 互补——把它们排成"legged_gym → AMP → Eureka"的演进链会误导:三者的机制(手工 / 对抗式从演示学 / LLM 生成代码)彼此独立。[未确认]
Open problems:
"AMP 就是 reward learning" —— 没错,AMP 本身就是一种 reward learning(对抗式、从演示学)。[未确认]真正的区分点不在真假,而在机制:AMP 的奖励由判别器隐式定义、随 π 共同演化;RLHF 那种 reward model 是独立的、阶段性冻结的。
AMP 是对抗式 reward learning,把"像人"翻译成奖励。
"AMP 不需要参考动作了" —— 错。它仍需要动捕数据喂给判别器,仍用 RSI 初始化。📎
它不需要逐帧对齐参考,但离不开参考数据集本身。
"判别器用 WGAN-GP 训" —— 常见误传。论文用的是 LSGAN 损失 + 只在真实样本上的 R1 风格梯度惩罚。📎
$w_{gp}=10$ 只惩罚真人样本、对观测特征求梯度,不是双边 WGAN-GP。
"AMP 解决了 mode collapse" —— 错。对抗训练的 mode collapse 它也有,靠混合数据和梯度惩罚缓解,没根治。📎
它把问题从"帧帧对齐的脆弱"换成了"对抗训练的脆弱",是另一种 trade-off。
DeepMimic 靠 phase variable 把 policy 和参考动作的某一帧对齐;AMP 没用 phase variable。那 AMP 靠什么机制让 policy 知道"现在该模仿数据里的哪一段"?(提示:想想判别器把整个数据集变成了什么。)
💡 参考答案
AMP 的判别器输入是什么?为什么不用 GAIL 那种 $(s,a)$ 输入?
💡 参考答案
风格奖励 $r^S$ 里,为什么要在最外面套一层 $\max(0,\cdot)$?
💡 参考答案
用"品酒师"或你自己举的类比,向一个没学过强化学习的人解释:AMP 是怎么让角色"像人"的?判分要点(rubric,自评须三选二才算合格):类比必须同时体现 (a) 判别器见过很多样本、不是单一原型;(b) policy 不逐帧对齐参考,只追求整体分布像;(c) 判别器的判别标准每轮都在动(非平稳)。少两条以上属不合格,请补或换。
💡 参考答案
假如动捕数据里只有走路、没有跑步,你觉得 AMP 能训出会跑的角色吗?用类比的思路解释为什么。
💡 参考答案
不能直接用。AMP 在物理仿真(Bullet,1.2 kHz)里训,on_robot=false。📎真机还需 sim2real、domain randomization 等额外步骤。
单段参考只能训对应风格。AMP 的强项在于:一个混合数据集能训出会组合多种技能的角色。📎
都别贸然调大。论文里判别器 stepsize $10^{-5}$、policy stepsize $2$–$4\times10^{-6}$,两者同量级(判别器反而略大 2.5–5 倍),见 Table 4。📎要压住判别器不致太强,靠的不是更小的 stepsize,而是 replay buffer + 只在真人样本上的 R1 梯度惩罚。判别器太强会让 reward 对 policy 的微小改进不敏感,梯度信号消失。
先查三处:(1) 判别器输入是不是用的观测特征对(不是 raw state 或 action);(2) 梯度惩罚 $w_{gp}=10$ 加了没、加在真人样本上没;(3) style reward 有没有 clamp 到 $[0,1]$。📎
不是。RLHF 用人类偏好训奖励模型;AMP 用判别器对动捕做对抗匹配。两者都"学一个奖励",但信号来源和机制不同。[未确认]