机器人控制里,奖励信号几乎总是稀疏的:任务完成给 +1,其他时候全是 0。这种信号让信用分配变得极其困难——策略要试很多次才能偶然撞到一次成功,然后还得搞清楚到底是哪个动作导致了成功。
这篇来自 Sergey Levine 组的论文提出了一个极其简洁的思路:直接从过去的成功和失败轨迹中学习过程奖励,而且理论上保证不改变最优策略。
核心思想:用判别器区分成功与失败
方法名叫 Svm(Success Visitation Matching),核心只有一步:把历史轨迹分成两组——成功轨迹(获得正奖励)和失败轨迹(奖励为 0)。训练一个判别器来区分这两组轨迹在每个时间步上的 state-action。然后,用判别器的输出比率作为过程奖励:
直觉:如果某个 (s, a) 在成功轨迹中比失败轨迹中更常出现,判别器给它高分;反之给低分。这样策略不仅因为到达成功状态而获得奖励,而且在"走向成功的路上"的每一步都能获得信号。
为什么最优策略不变?
论文给出了严格的理论证明:在确定性环境下,最大化 Svm 奖励的任何策略,同时也最大化原始的稀疏结果奖励。证明思路很直观——如果从某个 (s, a) 之前能够成功,那么再次到达这个状态仍然可以成功,所以在这个状态上给更高奖励不会引入错误信号。
更有意思的是,Svm 奖励可以被解读为一种 KL 正则化的 RL:
即最大化与失败轨迹的 KL 散度(远离失败),最小化与成功轨迹的 KL 散度(靠近成功)。这不是什么新 trick,而是把对抗式逆 RL(AIRL/GAIL)的思想巧妙地用在了稀疏奖励的设定上。
实验:显著加速 RL 微调
实验覆盖了三个主流机器人学习 benchmark。
LIBERO-90(16个长视界操作任务):用 DSRL + Svm 微调,相比只 DSRL,成功率提升明显。在 Scene 2 上,Svm 实现了约 5 倍加速。
真实世界 WidowX 机械臂(3个任务:拾取放置、开抽屉、用布盖刀):Svm 在真实环境中也稳定跑出更高的最终成功率和更快的收敛。
消融实验
固定判别器 vs 在线更新:固定判别器效果差很多。随着策略提升,成功轨迹的分布会漂移,判别器必须跟着更新才能持续提供有效的奖励信号。
函数形式:直接用 log(f/(1-f)) 比其他变换(概率本身、阈值化等)效果最好。
与 GAIL 的关系:GAIL 用固定专家演示,Svm 用在线收集的成功轨迹作为"动态专家",能适应策略的变化。这个理论连接本身就很有价值。
工程意义
这个方法最大的优点是零额外设计:不需要任务特定的 reward shaping,不需要额外的探索策略,判别器就是一个简单的 MLP。把它插在任何 RL 算法(DSRL、Residual RL、RLPD)上就能用。
稀疏奖励是机器人 RL 从 sim-to-real 转移的最大瓶颈之一,Svm 提供了一个理论上站得住、工程上好实现的解决方案。对于做机器人学习的人来说,这是值得直接抄进自己 pipeline 的方法。