2. 强化学习基础

在自动驾驶连续控制任务中,PPO 与 SAC 之所以能够学习到平滑的转向、油门和制动策略,前提是先把驾驶问题抽象成强化学习可以处理的标准形式。这个标准形式就是马尔可夫决策过程(MDP)。本节围绕 MDP 的五个核心要素展开:状态、动作、奖励、折扣因子、值函数与策略梯度,并说明它们在自动驾驶场景中的具体含义。

一、马尔可夫决策过程:把驾驶问题数学化

MDP 用一个五元组描述序贯决策问题:(S, A, P, R, γ)。其中 S 是状态空间,A 是动作空间,P 是状态转移概率,R 是奖励函数,γ 是折扣因子。智能体在时刻 t 观察到状态 st,选择动作 at,环境返回奖励 rt 并转移到下一状态 st+1。这个过程不断循环,形成一条轨迹。

“马尔可夫”意味着:下一状态只取决于当前状态和当前动作,与更早的历史无关。在自动驾驶中,这要求状态设计必须包含足够的信息,例如自车速度、加速度、航向角、与前车距离、相对速度、车道线曲率等。如果状态遗漏了关键历史信息,策略就可能做出错误判断。

核心链路:状态 st → 策略 π 选择动作 at → 环境转移 P(st+1|st,at) → 获得奖励 rt → 更新策略,循环往复。

二、状态空间与动作空间:连续控制的输入输出

状态空间是智能体对环境的观测描述。在自动驾驶中,状态通常分为三类:自车状态(速度、加速度、横摆角速度)、环境状态(车道曲率、道路边界、交通灯)、交互状态(前车距离、相对速度、旁车位置)。状态设计要满足马尔可夫性,同时避免维度爆炸。

动作空间分为离散和连续两类。自动驾驶的底层控制通常是连续的:转向角、油门开度、制动压力都是连续值。PPO 和 SAC 正是为连续动作空间设计的算法。动作空间需要设定合理的上下限,例如转向角限制在 [-0.5, 0.5] rad,油门限制在 [0, 1],否则策略可能输出危险动作。

# 典型自动驾驶连续动作空间定义
action_space = {
    "steering": [-0.5, 0.5],   # 前轮转角,单位 rad
    "throttle": [0.0, 1.0],    # 油门开度
    "brake":    [0.0, 1.0]     # 制动压力归一化值
}
# 动作维度 = 3,属于连续控制问题

三、奖励函数与折扣因子:定义“什么是好驾驶”

奖励函数是强化学习中最关键、也最难设计的部分。它直接决定策略学到的行为。自动驾驶奖励通常由多项组成:跟踪误差惩罚(偏离车道中心)、速度奖励(接近期望速度)、舒适性惩罚(加速度、 jerk 过大)、安全惩罚(碰撞、越界)。这些项需要加权求和,权重决定了策略的偏好。

折扣因子 γ ∈ [0,1) 衡量未来奖励的重要性。γ 越接近 1,智能体越重视长期回报;γ 越小,越短视。自动驾驶中通常取 0.95~0.99,因为安全决策往往需要预见未来数秒的后果。γ 过小会导致策略只顾眼前,忽略潜在碰撞风险。

要素自动驾驶中的含义典型取值/示例
状态 s自车+环境+交互观测速度、距离、曲率、相对速度
动作 a连续底层控制量转向角、油门、制动
奖励 r驾驶质量与安全评分跟踪误差、碰撞惩罚、舒适度
折扣 γ未来奖励权重0.95~0.99
策略 π状态到动作的映射神经网络输出均值与方差

四、值函数与策略梯度:从评估到改进

值函数用于评估策略的好坏。状态值函数 Vπ(s) 表示从状态 s 出发,按策略 π 行动能获得的期望折扣回报;动作值函数 Qπ(s,a) 表示在状态 s 执行动作 a 后的期望回报。优势函数 Aπ(s,a)=Qπ(s,a)−Vπ(s) 衡量某个动作比平均水平好多少,是 PPO 的核心。

策略梯度方法直接对策略参数 θ 求梯度,目标是最大化期望回报 J(θ)。其基本形式为:梯度等于优势函数乘以策略对数概率的梯度。PPO 在此基础上引入重要性采样和裁剪,限制新旧策略差异,保证训练稳定。SAC 则属于最大熵方法,在回报中加入熵项鼓励探索。

# 策略梯度核心思想(伪代码)
for each episode:
    collect trajectory {s, a, r, s'} using π_θ
    compute advantage A(s, a)
    loss = -E[ log π_θ(a|s) * A(s, a) ]
    θ ← θ - lr * ∇loss
# PPO 额外加入 ratio 裁剪,SAC 额外加入熵正则

五、案例:车道保持中的 MDP 建模

以车道保持为例:状态取横向偏差 e、航向偏差 θ、速度 v;动作取前轮转角 δ;奖励设为 r = −(w1e² + w2θ² + w3δ²)。折扣因子取 0.98。智能体通过 PPO 学习策略,使车辆在保持车道中心的同时转向平顺。若奖励中缺少 δ² 项,策略可能学会频繁抖动方向盘;若 γ 过小,车辆可能为了短期跟踪而忽略前方弯道。

建议:状态设计先保证马尔可夫性,再考虑压缩维度;奖励函数先写清安全、舒适、效率三类目标,再调权重;折扣因子与任务时间尺度匹配。

六、常见误区与复盘

  • 状态不满足马尔可夫性:只给当前距离不给相对速度,策略无法判断碰撞趋势。
  • 奖励权重失衡:安全惩罚过小,策略会冒险贴近前车;舒适惩罚过大,策略变得过于保守。
  • 折扣因子设置随意:γ=0.9 在高速场景可能过短视,γ=0.999 又可能使值函数方差过大。
  • 混淆值函数与策略:值函数只评估,不直接输出动作;策略才是最终控制器。
  • 忽略动作边界:连续动作未裁剪,可能导致转向角超出车辆物理极限。

理解这些基础概念后,PPO 和 SAC 的算法细节才有落脚点。后续章节将在此基础上展开网络结构、训练流程与工程调参。

MDP 五要素与策略学习闭环 状态 s 速度·距离·曲率 动作 a 转向·油门·制动 奖励 r 安全·舒适·效率 策略 π 环境 P 折扣因子 γ 0.95 ~ 0.99 折扣回报 值函数 V(s), Q(s,a) 评估策略好坏 优势 A = Q − V 策略梯度 ∇J(θ) PPO 裁剪 / SAC 熵 更新策略参数 θ 累积回报 优势估计 策略改进 状态 → 策略 → 动作 → 奖励 → 折扣回报 → 值函数评估 → 策略梯度更新 → 新策略