TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

奖励设计与动作空间:稀疏奖励与塑形奖励、奖励黑客攻击、关节极限惩罚、直接控制与混合控制

状态:草稿(2026-10-18),实测。 数字是通过笔记本(Apple M1 Max,macOS 26.5)上的 Python 3.9.6 和 numpy 2.0.2 直接计算的模拟值。 原始数据与代码:工作目录 measure/robot-arm-basics/rl/中的 ttenv.py, ppo.py, exp_rl.py,结果 out/rl/rew_*, out/rl/hyb_*, out/rl/ppo_base_*。 所有训练均使用 3 个随机种子,评估使用未参与训练的 1,000 个球。没有实际的机器人实验(未进行硬件实测)。参考资料查阅于 2026-10-18。 编写规则:以实测数据为基础,无法测量的标注为“未实测”,未确认的标注为“未确认”。

目录

1. 直觉:照章办事

强化学习智能体并不理解设计者的意图,它只知道如何最大化奖励的总和。如果告诉它“击中球即得奖励”,它就会寻找最简单的方法来击中球,而不在乎这个方法是否能把球打进球台。这种利用奖励与真实意图之间偏差的现象被称为奖励黑客攻击(reward hacking)。Amodei 等人(2016)将其列为 AI 安全的具体五个问题之一。

动作空间(action space)也是同样重要的设计。我们可以让策略每 10 ms 决定一次关节加速度,也可以让它只决定一次“何时、以多大力量”击球,其余交由第 1~10 篇中的经典方法处理。前者自由度高但需要学习的内容多,后者学习速度快但如果经典部分存在缺陷则会受其局限。

2. 五种奖励

全部采用直接控制(每 10 ms 关节加速度),PPO 默认设置(第 12 篇),共 19,200 个回合。

名称 奖励 意图
稀疏 击入对方球台得 1,否则得 0 完全符合期望
塑形(默认) 击中得 0.3,进球得 +1,越接近目标(y = 0.9 m)最高奖励 +0.5,未击中则按球拍与球的最近距离扣分(最多 −0.5) 在训练初期提供引导
塑形 + 极限惩罚 在上述基础上,关节触及极限的每一步扣 −0.05 安全
仅击中 击中球即得 1 黑客攻击实验
球速 击中后的球速 ÷ 10 黑客攻击实验(“用力打肯定好”)

训练时使用奖励,但 评估时始终采用同一标准,即“是否击入对方球台”。因为在改变了奖励的实验中,直接对比奖励数值是没有意义的。

3. 实测:奖励

보상을 바꾸면 배우는 것이 바뀐다(직접 제어, 공 1만 9천 개) 0 25 50 75 100 % 87 93 40 희소 83 93 70 형태(기본) 89 92 8 형태+ 한계 벌점 0 99 100 맞히기만 0 98 100 공 속도 성공(돌려보냄) 라켓에 맞음 관절 한계에 닿은 에피소드 평가 공 1,000개, 시드 3개 중앙값(막대)과 최소~최대(선).
图:各奖励下的成功率、击球率、触及关节极限的回合比例
奖励 成功率中位数(最小~最大) 击中球比例 触及关节极限的回合 击中球速中位数
稀疏 86.8% (75.4~90.7) 92~96% 5~48% 5.2 m/s
塑形(默认) 82.9% (76.8~90.9) 88~94% 4~79% 5.3~5.6 m/s
塑形 + 极限惩罚 89.2% (77.9~90.3) 84~92% 5~8% 5.3~5.5 m/s
仅击中 0.0% (0.0~8.9) 98~99% 100% 9~28 m/s
球速 0.0% (0.0~0.0) 98% 100% 28.6 m/s

3.1 奖励黑客攻击

“仅击中”和“球速”在奖励指标上取得了巨大成功:球拍击中了 98% 的球,“球速”策略将球以平均 28.6 m/s 的速度击出。然而,几乎没有球落入对方球台。这两种策略在所有回合中都将关节操纵到了极限。因为让球拍以最快速度运动更容易触及球并且球速更快。如果是在现实机器人中,这将是一个每次击球都会撞击关节限位器的策略。

教训很简单: 应当通过真正的目标来评估,而不是看奖励数值;如果奖励上升而目标没有变化,就应当怀疑发生了黑客攻击。

3.2 稀疏奖励与塑形奖励

塑形奖励通常被推荐为“训练初期的引导”,但在本问题中,稀疏奖励(86.8%)的表现甚至略高于塑形奖励(82.9%)(由于只有 3 个种子,差异在误差范围内)。推测原因有二:第一,随机策略也有 1.5% 的成功率(第 11 篇),因此在每轮 64 个回合中,总会有一两个回合收到成功信号。既然成功并非极其罕见,也就不太需要过多的引导。第二,“击中得 0.3”这样的中间奖励会教导智能体“击中但出界”好于“没击中”,从而引入了与目标略有偏差的方向。塑形奖励在成功极为罕见的问题中(例如从一开始就用 7 自由度机械臂进行扣杀)才能发挥价值,即便在那种情况下,也必须精心设计以避免与目标产生背离(未实测)。

3.3 关节极限惩罚

仅凭一项惩罚,触及极限的回合比例就从 4%~79% 下降到了 5%~8% 且成功率并未下降(89.2%)。第 12 篇的默认策略触及极限,并不是因为需要触及极限,而是因为 没有被告知不要触及极限。还有一种观点认为,安全条件最好作为约束而不是奖励来处理,这样更加稳妥。现实中的机器人除了惩罚外,还会在控制器端设置硬件限位。

4. 行动空间:直接控制与混合控制

直接控制与第 11 篇完全相同。每个回合大约有 100 次决策,时机、轨迹和球拍角度都需要策略自行摸索。

混合控制在第一步仅选择两个数字:接触角度的修正量 $\Delta\varphi$($\pm0.15$ rad)以及击球瞬间的球拍角速度 $\dot{\varphi}_c$($0\sim8$ rad/s)。其余部分采用经典方法。利用飞行模型(第 6 篇)预测球进入球拍圆弧的位置和时间,生成以该速度到达该位置的 5 次多项式轨迹(第 8 篇)并直接执行。作为强化学习问题,它简化为单步决策(上下文强盗问题)。每次迭代使用 64 个球进行 120 次迭代(共 7,680 个球)的训练。

我们尝试了两种预测器:一种是像第 6 篇“B 模型”那样不考虑旋转的预测器,另一种是考虑旋转的预测器。

행동 공간: 매 10 ms 직접 제어 대 타격 파라미터만 0 5k 10k 14k 19k 0 25 50 75 100 학습에 쓴 에피소드(공) 수 평가 성공률(%) 격자 상한 85% 최선 상수 46% 직접 제어 83% 하이브리드(회전 모르는 예측기) 46% 하이브리드(회전 아는 예측기) 66% 하이브리드는 공 7,680개에서 멈춤. 점선은 학습 없는 기준선.
图:直接控制与混合控制的学习曲线及基准线
行动空间 成功率中位数(最小~最大) 首次超过 40% 的球数(种子中位数) 触及关节极限的回合
直接控制(塑形奖励) 82.9% (76.8~90.9) 5,120 4~79%
混合控制,不考虑旋转的预测器 46.3% (36.1~48.0) 1,920 0~0.7%
混合控制,考虑旋转的预测器 65.6% (39.0~73.8) 1,280 0.3~0.9%

无学习的基准线为:混合动作空间的最优常数动作 46%,不考虑旋转模型的网格规划器 40%,通过真实结果选出的网格上限 85%(第 11 篇)。

4.1 阅读所得

4.2 实际系统的选择

系统 学习所选择的内容
Büchler 等人 2022 (v1) 8 个肌肉的压力变化(最低层级)
D'Ambrosio 等人 2023 默认 8 个关节速度,还对比了球拍位置 3 + 法线 2 的任务空间动作
D'Ambrosio 等人 2024 技能策略为关节速度(50 Hz),之上的高层控制器从 17 个技能中选择一个
Tebbe 等人 2021 击球瞬间的球拍状态(方向、速度)

越往下越依赖经典部分(轨迹、逆运动学、球预测)。我们建议首个开源硬件机器人从混合控制起步以获得样本效率与安全性,在暴露出经典部分的弱点(旋转预测)之后,再对其进行修正或通过学习加以扩展。

5. 局限性

6. 总结

蒂蒂小结: “只要击中球就表扬”,结果机器人把球全击中了却一个也没打进去!表扬必须只给真正想要的结果!

参考

所有资料查阅于 2026-10-18。

登录后即可点赞

评论

还没有评论。

登录后即可发表评论