1. 课程导入
自动驾驶系统的能力上限,往往不取决于感知能看多远,而取决于决策规划在复杂交互中能否持续做出“正确取舍”。奖励设计与策略优化,正是把工程目标翻译成可学习信号、再把学习信号转化为稳定驾驶行为的核心环节。本课程围绕“奖励如何定义、策略如何优化、系统如何落地”三条主线展开,帮助学习者建立从数学形式到工程部署的完整认知。
一、核心概念:奖励、策略与价值的三元关系
在自动驾驶决策问题中,通常用马尔可夫决策过程描述:状态 s 表示自车与环境(他车、行人、车道、信号灯)的联合态势,动作 a 表示加速度、转向或轨迹选择,奖励 r(s,a) 是工程目标的即时量化,策略 π(a|s) 是状态到动作的映射,价值函数 V(s) 或 Q(s,a) 则衡量长期回报。奖励决定“什么值得追求”,策略决定“当前怎么做”,价值决定“长期是否划算”。三者关系一旦失衡,就会出现典型问题:奖励设计过窄导致策略钻空子,价值估计偏差导致策略保守或激进,策略更新过快导致训练崩溃。
需要特别区分三类信号:奖励是学习目标,代价是硬约束(如碰撞、越线),指标是评估口径(如通行时间、 jerk、接管率)。工程中常见误区是把代价直接写成大负奖励,结果策略学会“用轻微违规换取高奖励”。更稳妥的做法是采用约束强化学习或分层设计,把安全底线独立于奖励之外。
二、整体框架:从目标到部署的五层结构
下图给出本课程贯穿始终的工程全景。它并非简单流程,而是强调“目标—信号—策略—验证—部署”之间的闭环与反馈关系。
三、方法流程:一次完整的策略优化迭代
工程实践中的策略优化不是“跑一个算法”,而是一个可复现的迭代流程。典型步骤如下:
- 场景建模:从真实日志中提取切入、跟车、无保护左转、施工绕行等交互片段,重建为可参数化场景。
- 奖励设计:定义基础项(碰撞、车道保持、限速)、过程项(jerk、横向加速度、跟车时距)和交互项(礼让、博弈收益)。
- 策略训练:选择模仿学习冷启动,再用离线RL或在线仿真RL微调,配合价值网络与目标网络稳定训练。
- 闭环评估:在场景库中批量回放,统计接管率、碰撞率、通行效率、舒适度分布,并做危险场景加权。
- 回归与部署:通过影子模式对比新旧策略,确认无安全回退后灰度上车,保留回滚版本。
# 典型训练配置片段(示意)
reward:
collision: -200.0 # 硬约束,独立于奖励更佳
lane_keep: 1.0
speed_limit: 0.8
jerk_penalty: -0.05
headway_reward: 0.3
courtesy_bonus: 0.2
training:
algo: offline_rl + online_finetune
batch_size: 256
gamma: 0.99
constraint: collision_rate < 1e-5
四、案例与场景:无保护左转的奖励权衡
无保护左转是奖励设计最典型的“多目标冲突”场景。若只奖励通行效率,策略会抢行、逼停直行车;若只奖励安全,策略会长期等待、造成拥堵。合理的奖励应包含:对直行车的让行判断、对自身等待时间的惩罚、对完成转向的稀疏奖励,以及对“犹豫—加速—再犹豫”振荡行为的惩罚。工程上常采用势函数塑形,把“接近目标车道”作为渐进奖励,避免稀疏奖励导致学习困难。
五、常见误区与复盘清单
| 误区 | 表现 | 改进方向 |
|---|---|---|
| 奖励即目标 | 把安全、效率、舒适简单加权求和 | 区分奖励与硬约束,采用约束RL或分层设计 |
| 只看平均指标 | 平均接管率低,但长尾危险场景变差 | 按危险度加权,单独统计极端场景 |
| 仿真过拟合 | 仿真分数高,实车表现不稳定 | 域随机化、真实日志回放、影子模式验证 |
| 策略更新过猛 | 训练曲线震荡,行为突变 | 限制KL散度、使用信任域方法、学习率衰减 |
| 忽略可解释性 | 无法定位策略为何做出危险动作 | 记录奖励分解、注意力与轨迹热力图 |