奖励塑造
定义
奖励塑造是在强化学习 (RL) 代理的奖励信号上增加额外中间奖励的做法,这些奖励引导学习朝向所需的行为。在机器人学中,大多数任务的自然奖励是稀疏的:机器人仅在任务完全完成时(例如,物体到达其目标位置)接收 +1,否则接收 0。使用稀疏奖励,代理必须通过随机探索偶然发现成功,然后才能学到任何东西,这对于可能需要数百个顺序动作的复杂操纵任务来说是不切实际的。
奖励塑造通过提供更密集的信号来解决这个问题 — 朝向目标取得进展的小奖励。例如,拾取和放置任务的塑造奖励可能包括与夹爪和目标物体之间的负距离成比例的项,即使在学习抓取之前也鼓励代理接近物体。精心设计的塑造奖励可以将训练时间从数十亿个环境步骤减少到数百万个,使 RL 对真实世界机器人学可行。
它如何工作
塑造奖励 R'(s, a, s') 用额外的塑造函数 F 增加原始环境奖励 R(s, a, s'):
R'(s, a, s') = R(s, a, s') + F(s, a, s')
塑造函数 F 编码了关于什么构成"进展"的领域知识。在到达任务中,F 可能是到目标的距离减少。在装配任务中,F 可能奖励零件对齐、接触建立或插入深度。关键挑战是设计 F,使得最大化 R' 也最大化 R — 即,塑造奖励不会引入与真实目标冲突的激励。
在训练期间,RL 算法(PPO、SAC 或 TD3 是机器人操纵的常见选择)使用 R' 作为其优化目标。塑造项在稀疏奖励为零的状态中提供梯度信号,使策略在实现完整任务成功之前很久就能改进。
奖励塑造的类型
- 基于势的奖励塑造 (PBRS) — 定义 F(s, s') = γΦ(s') - Φ(s),其中 Φ 是状态上的势函数,γ 是折扣因子。Ng 等人 (1999) 证明了 PBRS 保留了原始 MDP 的最优策略 — 代理不能被塑造误导。势函数通常编码到目标的距离或任务进度。
- 基于距离的塑造 — 奖励相关物体之间距离的减少(夹爪到物体、物体到目标)。简单且广泛使用,但不保证保留最优策略,除非转换为基于势的塑造。
- 演示引导的塑造 — 使用专家演示来定义奖励:与演示状态相似的状态获得更高的奖励。这桥接了 RL 和模仿学习,使用演示来塑造探索而不是直接克隆行为。
- 基于课程的塑造 — 在训练期间逐步调整难度或塑造幅度。在训练早期,强塑造引导探索;稍后,塑造被减少,以便代理优化真实目标。
- 语言模型生成的奖励 — 一种新兴方法,其中 LLM 从自然语言任务描述生成奖励函数代码。LLM 将"拿起红杯"翻译成计算夹爪杯距离、抓取闭合和提升高度奖励的 Python 函数。Eureka (2023) 和 Text2Reward 演示了这种方法。
危险:奖励黑客和古德哈特定律
奖励黑客发生在代理找到一种方式来最大化塑造奖励而不完成预期任务时。这是古德哈特定律应用于机器人学:"当一个措施成为目标时,它就不再是一个好措施。"机器人学中的例子:
缓解措施包括使用基于势的塑造(可证明安全)、在部署前在模拟中仔细测试塑造奖励、将稀疏成功信号与温和塑造相结合,以及根据观察到的代理行为迭代细化奖励。
- 一个测量夹爪到物体距离的基于距离的奖励。代理学会将夹爪悬停在物体旁边而不抓取它,因为抓取会冒着暂时增加距离的风险。
- 一个用于销钉插入的接触奖励。代理学会将销钉按在孔的一侧(保持接触)而不是插入它,因为插入需要暂时断开接触。
- 一个旨在鼓励快速任务完成的速度奖励。代理学会快速振荡而不取得进展,积累速度奖励。
与替代方案的比较
奖励塑造与模仿学习:模仿学习通过从演示中学习完全绕过奖励设计。行为克隆和 ACT 等方法根本不需要奖励函数。这是一个主要的实际优势:设计好的奖励通常比收集 50 个演示更难。对于没有深度 RL 专业知识的团队,模仿学习通常是实现工作操纵策略的更快路径。
奖励塑造与后见之明经验重放 (HER):HER 追溯性地将失败的轨迹重新标记为替代目标的成功,有效地从稀疏反馈创建密集奖励,无需手动奖励工程。它适用于目标条件任务,但需要能够事后重新定义目标。
奖励塑造与内在动机:好奇心驱动和探索奖励方法为访问新颖状态添加奖励,在不需要任务特定知识的情况下解决探索问题。它们补充而不是替代任务奖励塑造。
实际要求
模拟:奖励塑造几乎总是首先在模拟中开发和测试。Isaac Sim、MuJoCo 或 PyBullet 等物理模拟器提供了测试塑造奖励是否产生预期行为所需的快速迭代周期。单个奖励设计迭代(训练策略、观察行为、调整奖励)在模拟中需要数小时,而在真实硬件上需要数天。
状态访问:塑造奖励通常需要访问特权状态信息(物体位置、接触力、关节角度),这些信息可能无法从机器人的传感器单独获得。在模拟中,此信息是免费提供的。对于真实世界 RL,塑造奖励可能需要额外的传感或状态估计。
计算:带有奖励塑造的 RL 仍然需要大量计算:通常使用 PPO 或 SAC 在模拟中进行操纵任务需要 1-10 GPU 小时。在真实硬件上训练由于实时约束而慢 100-1000 倍。
专业知识:有效的奖励塑造需要理解任务物理和 RL 动力学。设计不当的奖励如果引入陷阱代理的局部最优值,可能比稀疏奖励更糟。
常见任务的奖励塑造配方
这些经过测试的奖励结构可以很好地作为 RCSV RL 环境中常见操纵任务的起点:
- 拾取和放置 — 第 1 阶段:-dist(夹爪, 物体)。第 2 阶段(物体被抓取):-dist(物体, 目标) + 抓取奖励。第 3 阶段(物体在目标处):+大稀疏奖励。在阶段之间使用基于势的公式。总计:3 个塑造项 + 1 个稀疏成功。
- 销钉插入 — -dist(销钉尖端, 孔中心) - 角度错位 + 接触奖励(对齐时) + 插入深度奖励。角度对齐项防止了常见的失败模式,即以陡峭角度接近孔。添加小的过度力惩罚以防止卡住。
- 抽屉打开 — -dist(夹爪, 把手) + 抓取奖励 + 抽屉位移。简单可靠,因为抽屉运动在抓取后是一维的。
- 双臂交接 — Arm1:-dist(夹爪1, 物体)。Arm2:-dist(夹爪2, 交接点)。两个夹爪同时靠近交接点时的协调奖励。交接成功:+大稀疏奖励。







