1. 课程导入
欢迎进入《PPO SAC自动驾驶连续控制工程》课程。本课程不讨论交通规则推理,也不停留在“识别车道线”这类感知任务,而是聚焦一个更底层、更工程化的问题:当自动驾驶车辆已经获得环境状态后,如何连续、平滑、稳定地输出油门、刹车与转向控制量。这就是连续控制问题,也是强化学习在自动驾驶中最具挑战、最接近量产落地的环节之一。
与离散动作不同,连续控制的动作空间是实数区间。例如转向角可能是 [-0.5, 0.5] 弧度,油门与刹车是 [0, 1] 的归一化值。策略网络每一步都要输出一个具体数值,而不是从有限集合中挑选一个动作。这带来三个直接后果:动作维度连续、动作之间具有物理耦合、控制效果对微小变化非常敏感。因此,本课程选择 PPO 与 SAC 两条主流路线,帮助大家建立从理论到工程落地的完整能力。
一、任务定义:连续控制到底在控制什么
在自动驾驶中,连续控制通常被建模为马尔可夫决策过程。状态 s 包含车辆自身状态(速度、加速度、航向角、横摆角速度)与相对环境状态(车道中心偏移、前车距离、相对速度、曲率)。动作 a 是控制量,常见形式为:
action = [steer, throttle, brake]
steer ∈ [-0.5, 0.5] # 前轮转角,单位 rad
throttle ∈ [0.0, 1.0] # 驱动扭矩归一化
brake ∈ [0.0, 1.0] # 制动压力归一化
奖励函数决定策略“学什么”。一个典型的连续控制奖励由跟踪误差、舒适性、能耗与安全惩罚组成:
reward = -w1 * lateral_error
-w2 * heading_error
-w3 * jerk
-w4 * |throttle - brake|
-w5 * collision_penalty
可以看到,连续控制不是单一目标优化,而是多目标折中。策略既要贴住车道中心,又要避免方向盘抖动和急刹急加速。理解这一点,是后续学习 PPO 与 SAC 的前提。
二、PPO 与 SAC 的定位:两条互补的技术路线
PPO(Proximal Policy Optimization)属于同策略(on-policy)算法,通过裁剪重要性采样比率限制策略更新幅度,训练稳定、调参相对友好,适合作为连续控制的入门与基线方案。SAC(Soft Actor-Critic)属于异策略(off-policy)算法,引入最大熵目标,鼓励策略在保证回报的同时保持探索性,样本效率更高,适合复杂、高维、奖励稀疏的连续控制场景。
两者并非替代关系,而是互补关系。工程实践中,常见做法是先用 PPO 快速验证奖励函数与仿真环境是否正确,再用 SAC 提升样本效率与最终性能。下面的信号链图展示了从环境状态到连续动作、再到奖励反馈的完整闭环,也标出了 PPO 与 SAC 在其中的不同侧重点。
三、整体课程框架与实战路线
本课程共 30 章,按照“环境—算法—训练—评估—部署”的主线推进。前 6 章建立连续控制基础与仿真环境;中段分别深入 PPO 与 SAC 的数学原理、网络结构与工程实现;后段进入奖励设计、课程学习、域随机化、安全约束与实车部署。每一章都配有可运行代码与参数配置,避免只讲概念不落地。
| 阶段 | 章节范围 | 核心目标 | 关键产出 |
|---|---|---|---|
| 基础与环境 | 第 1–6 章 | 理解连续控制建模与仿真接口 | 可运行的车辆环境与状态空间 |
| PPO 路线 | 第 7–14 章 | 掌握裁剪目标与并行采样 | PPO 连续控制基线策略 |
| SAC 路线 | 第 15–22 章 | 掌握最大熵与双 Q 网络 | SAC 高样本效率策略 |
| 工程与部署 | 第 23–30 章 | 奖励设计、安全约束与实车迁移 | 可评估、可部署的控制系统 |
四、常见误区与学习建议
误区一:把连续控制当成离散分类。直接对动作做 softmax 会丢失精度,导致转向抖动、油门阶跃。连续控制必须使用高斯策略或确定性策略加噪声。
误区二:只关注算法,不关注奖励。在自动驾驶中,奖励函数设计往往比算法选择更影响最终表现。奖励写错,PPO 和 SAC 都会学出危险策略。
误区三:忽略动作归一化与物理约束。网络输出必须经过 tanh 或裁剪映射到真实物理区间,否则仿真中会出现不可执行的极端动作。
建议学习顺序:先跑通环境与随机策略,确认状态与奖励量纲正确;再实现 PPO 基线,观察训练曲线是否收敛;最后切换到 SAC,对比样本效率与最终回报。每章代码都应在同一套环境接口下运行,保证对比公平。
完成本章后,你应该能够用自己的话解释:连续控制与离散控制的本质差异是什么,PPO 与 SAC 各自适合什么场景,以及本课程将如何带你从零构建一套可运行的自动驾驶连续控制系统。接下来,我们将从车辆动力学与仿真环境接口开始,把这条学习路线真正跑起来。