3. 强化学习基础

在自动驾驶策略优化中,强化学习(Reinforcement Learning, RL)提供了一套把“感知—决策—控制”闭环形式化的数学语言。它的核心假设是:当前状态已经包含了做出最优决策所需的全部历史信息。这个假设就是马尔可夫性。围绕它,我们建立马尔可夫决策过程(MDP),并用状态、动作、奖励、策略、价值函数与贝尔曼方程六个概念,把“如何让自动驾驶车辆在长期行驶中做出更优决策”转化为可计算的问题。

MDP 五元组:M = (S, A, P, R, γ)。S 是状态空间,A 是动作空间,P(s'|s,a) 是状态转移概率,R(s,a,s') 是即时奖励,γ∈[0,1) 是折扣因子。策略 π(a|s) 决定在每个状态下选择动作的概率分布。

一、核心原理:从“当前状态”到“长期回报”

在自动驾驶中,状态 s 可以包含自车位置、速度、航向角、周围车辆相对位置与速度、车道线信息、交通灯状态等。动作 a 可以是油门/刹车开度、方向盘转角,也可以是更高层的“跟车、变道、超车、让行”等行为决策。奖励 R 则是对动作后果的即时评价,例如:安全到达目标点给正奖励,碰撞给大负奖励,偏离车道给持续小负奖励,舒适性差给惩罚。

策略 π 是智能体的“行为准则”:给定状态 s,输出动作概率分布。强化学习的目标不是最大化单步奖励,而是最大化折扣累计回报:

G_t = R_{t+1} + γR_{t+2} + γ²R_{t+3} + ...
    = Σ_{k=0}^{∞} γ^k R_{t+k+1}

折扣因子 γ 决定了智能体对未来的重视程度。γ 越接近 1,越看重长期收益;γ 越小,越短视。在自动驾驶中,γ 通常取 0.95~0.99,因为安全与通行效率都是长期指标。

二、价值函数与贝尔曼方程:把长期目标拆成递归关系

为了评价“某个状态好不好”和“某个动作好不好”,我们引入两个价值函数。状态价值函数 Vπ(s) 表示从状态 s 出发,按照策略 π 行动所能获得的期望回报;动作价值函数 Qπ(s,a) 表示在状态 s 先执行动作 a,再按照 π 行动所能获得的期望回报。

V_π(s) = E_π[G_t | S_t = s]
Q_π(s,a) = E_π[G_t | S_t = s, A_t = a]

贝尔曼方程揭示了价值函数之间的递归关系。它把“当前回报”和“下一状态价值”联系起来,使我们可以用动态规划或时序差分方法迭代求解:

V_π(s) = Σ_a π(a|s) Σ_{s'} P(s'|s,a)[R(s,a,s') + γV_π(s')]
Q_π(s,a) = Σ_{s'} P(s'|s,a)[R(s,a,s') + γ Σ_{a'} π(a'|s')Q_π(s',a')]

最优贝尔曼方程则给出最优策略下的价值关系:V*(s) = maxa Q*(s,a),Q*(s,a) = Σs' P(s'|s,a)[R + γ maxa' Q*(s',a')]。一旦求出 Q*,最优策略就是在每个状态选择 Q* 最大的动作。

MDP 交互闭环与贝尔曼备份 状态 Sₜ 位置/速度/周边车辆 动作 Aₜ 跟车/变道/加速/制动 奖励 Rₜ₊₁ 安全/效率/舒适/合规 策略 π(a|s) 环境反馈 状态转移 P(s'|s,a):进入下一状态 Sₜ₊₁ 价值函数 Vπ(s):状态 s 的长期期望回报 Qπ(s,a):先做 a 再按 π 行动的回报 Gₜ = Rₜ₊₁ + γRₜ₊₂ + γ²Rₜ₊₃ + … γ 越大,越重视长期安全与效率 贝尔曼备份 Vπ(s) = Σₐ π(a|s) Σₛ' P(s'|s,a) × [R + γVπ(s')] Q*(s,a) = Σₛ' P(s'|s,a) × [R + γ maxₐ' Q*(s',a')] 用下一状态价值反推当前价值 递归

三、方法流程:从 MDP 建模到策略求解

把强化学习用于自动驾驶,通常遵循以下流程:

  1. 定义状态空间:选择能反映驾驶任务关键信息的变量,如自车速度、相对距离、TTC(碰撞时间)、车道偏移量等。
  2. 定义动作空间:确定是连续控制量还是离散行为,如 {加速, 匀速, 减速, 左变道, 右变道}。
  3. 设计奖励函数:把安全、效率、舒适、合规等目标转化为可加总的标量信号。
  4. 建立转移模型或采样交互:已知模型时用动态规划,未知模型时用 Q-learning、SARSA、DQN、PPO 等无模型方法。
  5. 迭代求解价值函数与策略:利用贝尔曼方程进行策略评估与策略改进,直到策略收敛。
概念 符号 自动驾驶中的含义 典型取值/形式
状态 s ∈ S 自车与环境的当前快照 [v, Δd, TTC, lane_offset, …]
动作 a ∈ A 驾驶决策或控制量 离散行为或连续转角/加速度
奖励 R(s,a,s') 对动作后果的即时评价 碰撞 -100,到达 +50,舒适 -0.1
策略 π(a|s) 状态到动作的映射 随机策略或确定性策略
价值 V(s), Q(s,a) 长期回报的期望估计 由神经网络或表格表示
折扣因子 γ 未来回报的衰减权重 0.95~0.99

四、案例场景:高速跟车中的 MDP 建模

假设自车在高速公路上跟车行驶。状态可简化为 s = (vego, Δd, Δv),即自车速度、与前车距离、相对速度。动作空间为 A = {加速, 保持, 减速}。奖励函数可以设计为:

R = w1 * 通行效率 - w2 * 碰撞风险 - w3 * 加速度抖动 - w4 * 超速惩罚
其中:
  通行效率 = v_ego / v_limit
  碰撞风险 = max(0, 1 - Δd / d_safe)
  加速度抖动 = |a_t - a_{t-1}|
  超速惩罚 = max(0, v_ego - v_limit)

在这个模型中,策略 π 决定“当前距离和速度下,应该加速、保持还是减速”。价值函数 V(s) 评估“当前跟车状态有多好”,Q(s,a) 评估“先加速再继续跟车”是否比“先减速再继续跟车”更好。贝尔曼方程则告诉我们:当前状态的价值,等于即时奖励加上下一状态价值的折扣。通过不断迭代,智能体会学会在接近前车时提前减速,在安全距离足够时适度加速,从而兼顾安全与效率。

在自动驾驶中,奖励函数往往比算法本身更关键。一个设计不当的奖励函数,可能让智能体学会“原地不动”或“绕圈”等投机行为。因此,奖励设计需要与安全约束、交通规则和舒适性指标联合考虑。

五、常见误区与复盘

  • 误区一:状态不满足马尔可夫性。如果状态中缺少关键历史信息(如前车加速度),智能体可能无法做出最优决策。解决方法是增加历史窗口或使用循环网络。
  • 误区二:奖励稀疏或尺度失衡。碰撞惩罚过大而效率奖励过小,会导致车辆过于保守;反之则可能冒险。需要做奖励归一化与权重调参。
  • 误区三:把 γ 设得过小。这会让智能体只关注眼前奖励,忽略长期安全,导致急刹、频繁变道等短视行为。
  • 误区四:混淆 V 与 Q。V(s) 评价状态,Q(s,a) 评价动作。策略改进通常依赖 Q 值,而不是仅依赖 V 值。
贝尔曼方程是强化学习的“递归引擎”,但它依赖期望值。在实际采样中,我们只能用蒙特卡洛回报或时序差分目标来近似。理解“期望”与“采样”的差异,是避免训练不稳定和方差过大的关键。

总结来看,MDP 把自动驾驶决策问题拆解为状态、动作、奖励、策略、价值与贝尔曼方程六个相互关联的要素。状态描述“现在在哪”,动作决定“下一步做什么”,奖励告诉“做得好不好”,策略规定“怎么做”,价值函数回答“长期来看有多好”,贝尔曼方程则提供“如何递归计算”的数学工具。掌握这套语言,是后续学习 Q-learning、策略梯度、PPO 以及自动驾驶奖励设计的基础。