A Review of Reward Functions for Reinforcement Learning in the context of Autonomous Driving

本文综述了自动驾驶强化学习中的奖励函数设计,通过将其目标划分为安全、舒适、通行效率及交通规则遵守四类来揭示现有研究在目标聚合、情境感知及标准化方面的不足,并提出了构建上下文感知且能解决冲突的奖励验证框架等未来研究方向。

Ahmed Abouelazm, Jonas Michel, J. Marius Zoellner

发布于 2026-03-05
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文就像是在给自动驾驶汽车的“大脑”(强化学习算法)做体检,重点检查了它的“奖惩机制”(奖励函数)。

想象一下,你要教一个刚拿到驾照的机器人司机开车。你没法直接告诉它每一步该怎么打方向盘,你只能告诉它:“做得好给颗糖(奖励),做错了挨顿骂(惩罚)”。这个“给糖还是挨骂”的规则,就是论文里说的奖励函数

这篇论文的核心观点是:目前的规则制定得太随意、太混乱,导致机器人司机要么不敢动,要么乱冲,甚至为了“快”而撞车。

下面我用几个生活中的比喻来拆解这篇论文:

1. 核心问题:教机器人开车的“尺子”太乱

自动驾驶面临一个巨大的难题:它要同时做好几件事,而且这些事有时候是打架的。

  • 安全(Safety): 别撞车,离别人远点。
  • 进度(Progress): 快点到目的地,别磨蹭。
  • 舒适(Comfort): 别急刹车、别猛打方向,让乘客不晕车。
  • 守规矩(Traffic Rules): 别超速,别压线。

现状是: 现在的规则就像是一个没有主见的教练

  • 如果机器人撞了人,教练会骂它(给负分)。
  • 如果机器人到了终点,教练会夸它(给正分)。
  • 但是! 如果机器人为了赶时间(进度),选择撞开一个静止的障碍物,现在的规则可能会算出:“撞车扣 10 分,但多跑一段路加 15 分,所以撞吧!” 这就是论文指出的逻辑漏洞

2. 四大“考核科目”的尴尬现状

论文把奖励函数拆成了四个科目,发现每个科目都有问题:

  • 🛡️ 安全(Safety):只有“事后诸葛亮”

    • 现状: 大多数规则是“撞了才扣分”。就像只有当学生把花瓶打碎了,老师才罚站。
    • 问题: 在撞碎花瓶之前,学生可能已经离花瓶非常近了(很危险),但老师没反应。
    • 建议: 应该像防弹衣一样,离危险越近,扣分越狠(比如用“碰撞时间”TTC 来衡量),而不仅仅是撞了才罚。
  • 🚀 进度(Progress):容易“走火入魔”

    • 现状: 只要车在动,就给奖励。
    • 问题: 机器人可能会为了“多跑点路”而疯狂加速,甚至为了赶时间而忽略前面的红灯或行人。就像学生为了多背单词,把书撕了当纸用,虽然背得快了,但书没了。
    • 建议: 进度奖励必须和安全挂钩,不能为了快而牺牲安全。
  • 🛋️ 舒适(Comfort):被遗忘的角落

    • 现状: 很多规则里根本没提“舒服”这回事。
    • 问题: 机器人司机可能像开碰碰车一样,急刹、急转,乘客坐得晕头转向,甚至吐了。
    • 建议: 需要把“平滑度”(比如加速度的变化率)写进规则里,像按摩椅一样,动作要轻柔。
  • 🚦 守规矩(Traffic Rules):死板且缺乏弹性

    • 现状: 规则通常是“超速就扣分”。
    • 问题: 现实很复杂。比如前面有救护车,你稍微超速一点让路,现在的规则可能会惩罚你,因为它不懂“情境”。
    • 建议: 规则需要更灵活,能理解“特殊情况”。

3. 最大的毛病:怎么“算总账”?(聚合问题)

这是论文最痛心的地方。现在的做法通常是简单相加

总分 = 安全分 + 进度分 + 舒适分 + 规矩分

比喻: 这就像考试,数学考 0 分(撞车了),语文考 100 分(到了终点),最后算平均分 50 分,及格了!
这显然不行。安全应该是一票否决权(Lexicographic ordering),安全没做好,其他做得再好也没用。

目前的解决方案(比如给不同项目加权)就像调音师,需要人工去调哪个旋钮大、哪个小。但这太难了,而且换个路况(比如从高速变到市区),原来的旋钮设置就不管用了。

4. 未来的药方:给机器人换个“大脑”

论文提出了三个改进方向:

  1. 使用“规则书”(Rulebooks)代替“算分表”:

    • 比喻: 不要给机器人一个计算器让它自己算总分,而是给它一本法律条文
    • 逻辑: 就像法官判案,先看是否杀人(安全),再看是否抢劫(违规),最后看是否迟到(进度)。优先级是固定的,不需要人工去调权重。如果违反了高优先级的规则,直接判输,不用算后面的分。
  2. 引入“情境机器”(Reward Machines):

    • 比喻: 现在的机器人像个死脑筋,不管是在下雨天、高速公路上还是堵车时,都用同一套规则。
    • 改进: 给它装个情境开关
      • 在“高速模式”下,奖励“快”;
      • 在“学校区域模式”下,奖励“慢”和“稳”。
      • 让机器人知道什么时候该切换规则,而不是死守一套。
  3. 建立“体检中心”(验证框架):

    • 现状: 现在的规则设计完就直接上路试,撞了才知道不对。
    • 建议: 在真正上路前,先在一个**虚拟的“魔鬼训练营”**里测试。专门制造各种极端情况(比如突然冲出的小孩、暴雨),看看机器人的规则会不会导致它做出傻事。如果没有这个体检,就不许上路。

总结

这篇论文其实是在说:我们现在的自动驾驶奖励规则太“粗糙”了,像是一个只会加减法的笨小孩。

为了让自动驾驶真正安全、舒适且高效,我们需要:

  1. 分清主次: 安全永远是第一位的,不能和进度混在一起算账。
  2. 懂得变通: 根据路况(下雨、堵车、高速)自动调整规则。
  3. 严格体检: 在虚拟世界里把规则测得透透的,确保没有逻辑漏洞。

只有这样,我们的机器人司机才能真正从“新手”变成“老司机”。