Reward Shaping、Safe 与 Robust RL
在不扭曲目标的前提下改善学习信号,并约束风险和扰动。
学习目标
- 区分训练辅助奖励、可行性约束和环境扰动下的鲁棒目标。
- 独立复核“势函数塑形的折扣望远镜效应”的输入、计算和解释。
- 策略不变结论依赖折扣、势函数及终止边界条件。
为什么重要
区分训练辅助奖励、可行性约束和环境扰动下的鲁棒目标。
学习前需要掌握
背景与问题
让机器人更接近目标就加分,可能加速学习,也可能鼓励来回移动刷奖励。把碰撞写成大负分又不一定禁止碰撞;针对随机扰动训练也未必涵盖真实极端情况。三种设计必须分别定义与验证。
概念定义
奖励塑形改变反馈以辅助学习;安全强化学习把成本或禁止条件纳入约束;鲁棒强化学习针对一组模型或扰动优化。它们可以组合,但更高塑形回报、满足平均成本和抵御最坏情形是不同结论。
直观理解
给练车者过程鼓励,不等于给车装上防撞系统;在雨天练习,也不等于能应对任意天气。训练信号、执行约束和环境变化是三层不同的问题。
核心原理
势函数塑形使用 γΦ(s′)−Φ(s)。折扣和边界条件正确时,整条轨迹的差值会望远镜式消去,留下与起点有关的常数,从而保持原策略排序;终点势或未处理的时限可能破坏这一结论。
成本约束可以限制期望累计违规,但期望约束仍允许某些轨迹违规。必须禁止的行动通常还需可行集合、屏障或执行层检查,不能只靠一个“足够大”的负奖励。
鲁棒性结论相对于选定扰动集合成立。集合太窄漏掉部署变化,太宽可能过度保守;应报告扰动类型、范围、最坏情形指标与常规回报,而非笼统称策略安全鲁棒。
数学表达
势函数奖励塑形
无限折扣有界势或正确处理的 episodic 边界下,额外回报不改变固定起点的策略排序。
变量含义
Φ状态势函数r′塑形后的奖励γ与原任务一致的折扣
计算步骤
- 1塑形项依次为 0.9×(−1)−(−2)=1.1 与 0−(−1)=1。
- 2新奖励为 1.1、2,折扣回报为 2.9。
- 3原回报为 0.9,差值为 2,正好等于 −Φ(s0)。
代码对应位置
示例 1势函数塑形的折扣望远镜效应:原回报 0.900,塑形后 2.900;固定起点下该差值与路径动作无关。
变量解释
| 变量 | 含义 |
|---|---|
Φ | 状态势函数 |
r′ | 塑形后的奖励 |
γ | 与原任务一致的折扣 |
完整数值示例
势函数塑形的折扣望远镜效应
已知条件
- 两步奖励为 0、1,γ=0.9。
- 状态势为 −2、−1、0,终点势为零。
计算步骤
- 塑形项依次为 0.9×(−1)−(−2)=1.1 与 0−(−1)=1。
- 新奖励为 1.1、2,折扣回报为 2.9。
- 原回报为 0.9,差值为 2,正好等于 −Φ(s0)。
计算结果
原回报 0.900,塑形后 2.900;固定起点下该差值与路径动作无关。
处理前后对比
- 策略不变结论依赖折扣、势函数及终止边界条件。
- 塑形不自动提供硬安全或任意扰动鲁棒性。
计算与实现步骤
- 定义真实目标
- 设计 shaping/constraint
- 压力测试
- 监测违规
代码实现
示例 1
势函数塑形的折扣望远镜效应
example_01.py用途:原回报 0.900,塑形后 2.900;固定起点下该差值与路径动作无关。
rewards, potential, gamma = [0.0, 1.0], [-2.0, -1.0, 0.0], 0.9
shaped = [r + gamma * potential[t+1] - potential[t] for t, r in enumerate(rewards)]
original_return = sum(gamma ** t * r for t, r in enumerate(rewards))
shaped_return = sum(gamma ** t * r for t, r in enumerate(shaped))
print(f"original={original_return:.3f}, shaped={shaped_return:.3f}, difference={shaped_return-original_return:.3f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
原回报 0.900,塑形后 2.900;固定起点下该差值与路径动作无关。
Step 1 · 1–5 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
rewards, potential, gamma = [0.0, 1.0], [-2.0, -1.0, 0.0], 0.9
shaped = [r + gamma * potential[t+1] - potential[t] for t, r in enumerate(rewards)]
original_return = sum(gamma ** t * r for t, r in enumerate(rewards))
shaped_return = sum(gamma ** t * r for t, r in enumerate(shaped))
print(f"original={original_return:.3f}, shaped={shaped_return:.3f}, difference={shaped_return-original_return:.3f}")预期输出或运行结果
original=0.900, shaped=2.900, difference=2.000
常见错误 · 4 条
- 任意距离奖励都声称保持原最优策略。
- 把低平均违规率当作每条轨迹零违规保证。
- 训练只见少量扰动却声称抵御任意环境变化。
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 任意距离奖励都声称保持原最优策略。
- 把低平均违规率当作每条轨迹零违规保证。
- 训练只见少量扰动却声称抵御任意环境变化。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Ng 等:Policy Invariance under Reward Transformations。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 任意距离奖励都声称保持原最优策略。
- 把低平均违规率当作每条轨迹零违规保证。
- 训练只见少量扰动却声称抵御任意环境变化。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
碰撞罚得很重就能保证安全了吗?
不能。期望收益仍可能接受小概率高代价事件,学习和分布偏移也会出错;必须满足的条件应进入独立约束与执行机制。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。