1. 课程导入
自动驾驶系统要在真实道路上持续做出加速、制动、转向等决策,而真实世界又充满长尾风险:突然横穿的行人、被遮挡的车辆、湿滑路面、传感器误检。传统规则控制可解释、可验证,却难以应对复杂交互;端到端强化学习(RL)善于在交互中学习最优策略,却可能为了追求回报而突破安全边界。本课程的核心命题,就是让强化学习在“会学习”的同时“守规矩”——用约束控制为学习过程套上安全护栏。
一、核心概念:从 MDP 到 CMDP
强化学习的基本建模工具是马尔可夫决策过程(MDP),用五元组 (S, A, P, R, γ) 描述状态、动作、转移、奖励与折扣因子。智能体通过最大化累计回报学习策略 π(a|s)。但驾驶任务中,很多要求不是“奖励越高越好”,而是“绝对不能违反”,例如不碰撞、不越线、横向加速度不超过舒适阈值。这类要求更适合写成约束,于是引入约束马尔可夫决策过程(CMDP):在 MDP 基础上增加代价函数 C 与约束上限 d,目标变为在满足 J_C(π) ≤ d 的前提下最大化 J_R(π)。
与之配套的关键概念包括:安全集与不变集(策略作用下状态始终留在安全区域内)、控制屏障函数(CBF,把安全约束转化为对控制量的实时约束)、拉格朗日乘子法(把约束优化转为带惩罚的无约束问题)、以及安全层/安全过滤器(在 RL 输出动作后做最小修正)。理解这些概念之间的关系,是后续所有算法学习的基础。
二、方法流程:安全 RL 的典型训练链路
一个可落地的安全强化学习流程通常包含六个环节,缺一不可:
- 场景与状态设计:确定自车状态、障碍物表示、道路几何与感知不确定性建模方式。
- 奖励与代价设计:奖励刻画通行效率与舒适性,代价刻画碰撞、越界、超速等硬约束。
- 约束形式化:把“不碰撞”写成 J_C ≤ d,或写成 CBF 约束 ḣ(s) + αh(s) ≥ 0。
- 策略学习:使用 PPO-Lagrangian、CPO、SAC 等算法在约束下优化策略。
- 安全层介入:对 RL 输出动作做投影或二次规划修正,保证每一步动作可行。
- 验证与迭代:在边界场景、对抗扰动下评估约束违反率,再回到训练调参。
其中第 3 步和第 5 步是本课程区别于普通强化学习课程的关键。约束不是训练结束后再检查的“事后指标”,而应贯穿训练与部署全过程。
三、案例场景:十字路口左转的约束冲突
考虑无保护左转场景:自车需要在对向直行车流中寻找间隙通过。若只优化通行时间,RL 可能学会“抢行”,在仿真中回报很高,但一旦对向车辆加速,就会发生碰撞。引入约束后,问题变为:在保证与对向车辆最小安全距离不小于 3 米、横向加速度不超过 2 m/s² 的前提下,最小化通过时间。
# 约束型奖励配置示例(伪代码)
reward = w1 * progress + w2 * comfort - w3 * jerk
cost = w4 * collision_risk + w5 * lane_invasion
constraint = {"collision": 0.0, "lane_invasion": 0.0}
# 训练目标:max E[reward] s.t. E[cost] <= d
这个例子说明:安全 RL 不是简单地“加惩罚项”,而是要在优化目标中显式区分“可权衡的奖励”和“不可突破的约束”。
四、常见误区与复盘
| 误区 | 表现 | 纠正思路 |
|---|---|---|
| 把安全当成大惩罚 | 碰撞惩罚调得很大,但策略仍偶尔越界 | 改用 CMDP 约束或 CBF 安全层,保证硬约束 |
| 只在仿真中验证 | 仿真零碰撞,实车出现危险接管 | 加入域随机化与对抗场景,做影子模式验证 |
| 忽视感知不确定性 | 策略对噪声敏感,误检导致急刹 | 在状态中加入不确定性估计,训练鲁棒策略 |
| 约束权重一次定死 | 训练早期过保守,后期又过激进 | 采用拉格朗日乘子自适应调整约束权重 |
总结来看,本课程的知识框架可以概括为“一条主线、两个支柱、三层落地”:以 CMDP 建模为主线,以安全强化学习算法和约束控制方法为两个支柱,在仿真、验证、部署三个层面完成工程闭环。掌握这一框架,后续每一章都将在这个坐标系中找到自己的位置。