2. 强化学习基础

在驾驶仿真环境中训练决策智能体,第一步不是写网络,而是把“驾驶任务”翻译成强化学习能够求解的数学对象。这个对象就是马尔可夫决策过程(MDP)。只有把状态、动作、奖励、转移和折扣定义清楚,后面的值函数、策略梯度和 Actor-Critic 才有落脚点。

一、MDP:把驾驶任务写成五元组

一个 MDP 通常表示为 (S, A, P, R, γ)。在驾驶仿真里,这五个元素都有非常具体的物理含义:

  • S(状态):自车位置、速度、航向角,周围车辆与行人的相对位置、速度,车道线、交通灯、可行驶区域等。
  • A(动作):油门/刹车开度、方向盘转角,或离散的“加速、减速、左转、右转、保持”。
  • P(转移概率):在仿真器中执行动作后,下一时刻状态如何变化,通常由车辆动力学与交通参与者行为模型共同决定。
  • R(奖励):前进速度、到达目标、保持车道、安全距离等正向项,碰撞、越线、急刹等负向项。
  • γ(折扣因子):0 到 1 之间,衡量智能体更看重眼前奖励还是长期回报。

MDP 的核心假设是“马尔可夫性”:下一状态只依赖当前状态和动作,与更早的历史无关。在驾驶中这并不天然成立,因为其他车辆可能有意图和记忆。工程上常用堆叠多帧观测、加入历史特征或使用循环网络来近似恢复马尔可夫性。

智能体 Agent 策略 π(a|s) 值函数 / 网络参数 驾驶仿真环境 车辆动力学 + 交通流 传感器与场景渲染 MDP 五元组 S 状态 · A 动作 · P 转移 R 奖励 · γ 折扣因子 (s, a, r, s′) 经验样本 动作 a:油门 / 刹车 / 转向 状态 s′ 与奖励 r 交互产生 (s, a, r, s′),用于估计值函数或更新策略

二、值函数:评价“状态”和“动作”的好坏

策略 π 决定在每个状态 s 下选择动作 a 的概率。为了评价策略,引入两个核心函数:

  • 状态值函数 Vπ(s):从状态 s 出发,按策略 π 行动所能获得的期望折扣回报。
  • 动作值函数 Qπ(s,a):在状态 s 先执行动作 a,之后再按 π 行动所能获得的期望折扣回报。

二者满足贝尔曼期望方程,例如 V(s) = Σ π(a|s) [ R(s,a) + γ Σ P(s′|s,a) V(s′) ]。最优值函数则对应贝尔曼最优方程,用 max 代替对策略的求和。驾驶任务中,V 可以用来评估“当前车流位置是否危险”,Q 则直接回答“此刻向左变道是否比保持车道更好”。

在仿真中,值函数往往不是精确表格,而是由神经网络拟合。网络输入是状态特征,输出是 V 或每个离散动作的 Q 值。

三、策略梯度:直接优化动作概率

当动作空间连续(如方向盘转角)或状态空间巨大时,基于值函数取 argmax 的方法会变得困难。策略梯度方法直接参数化策略 πθ(a|s),并沿着“让高回报动作概率变大”的方向更新参数。其核心梯度形式为:

∇J(θ) ≈ E[ ∇log πθ(a|s) · A(s,a) ]
其中 A(s,a) = Q(s,a) − V(s) 称为优势函数

优势函数的作用是降低方差:如果某个动作比平均水平好,就提高它的概率;比平均水平差,就降低它的概率。常见改进包括使用折扣回报、GAE(广义优势估计)以及重要性采样。

四、Actor-Critic:值函数与策略的协同

Actor-Critic 把两者结合:Actor 是策略网络,负责输出动作;Critic 是值网络,负责估计 V 或 Q,用来评价 Actor 的动作。Critic 提供低方差的优势估计,Actor 根据该估计更新策略。典型损失包括:

  • Actor 损失:−log πθ(a|s) · A(s,a),鼓励高优势动作。
  • Critic 损失:(Vθ(s) − target)²,让值估计更准确。
  • 熵正则:−β · H(πθ),防止策略过早收敛到局部最优。

在驾驶仿真中,Actor-Critic 常用于连续控制:Actor 输出油门、刹车和转向的均值与方差,Critic 评估当前交通态势的长期价值。训练时通常并行多个仿真环境,收集轨迹后统一更新。

五、常见算法分类与对比

类别 代表算法 核心思想 驾驶仿真适用场景
基于值 DQN、Double DQN、Dueling DQN 学习 Q 值,用 argmax 选动作 离散动作:车道保持、变道决策
基于策略 REINFORCE、PPO 直接优化策略梯度 连续控制、需要稳定更新的场景
Actor-Critic A2C、A3C、SAC、TD3 策略网络 + 值网络协同 高维连续动作、样本效率要求高
离线/模仿 BC、CQL、IQL 从已有数据中学习,减少在线交互 利用真实驾驶日志预训练

六、案例:十字路口左转决策

假设自车在无保护左转路口,状态包括自车速度、对向直行车距离与速度、行人位置、信号灯相位。动作空间为“等待、缓慢左转、加速左转”。奖励设计为:到达目标 +10,碰撞 −100,每步时间惩罚 −0.1,与对向车距离过近 −5。

若使用 DQN,网络输出三个动作的 Q 值,选择最大者;若使用 PPO,Actor 输出三个动作概率,Critic 估计当前状态价值。训练初期智能体容易“抢行”导致碰撞,因为碰撞惩罚虽然大,但稀疏。工程上常用奖励塑形、课程学习和安全约束来加速收敛。

常见误区:只关注算法名称,忽略 MDP 建模质量。奖励函数设计不当、状态缺失关键信息、仿真与真实分布差异过大,都会让再先进的算法也无法学到安全策略。

七、复盘要点

  1. 先明确 MDP 五元组,再选择算法;不要反过来。
  2. 值函数适合评价状态和动作,策略梯度适合直接优化连续动作。
  3. Actor-Critic 的关键是优势估计与方差控制。
  4. 驾驶仿真中,安全约束、奖励塑形和场景多样性往往比算法微调更重要。