4、强化学习核心算法:Q-learning、SARSA、DQN、Double DQN、Dueling DQN、策略梯度、Actor-Critic、PPO、SAC的原理与适用场景

在端到端规划控制任务中,强化学习算法的选择直接决定了系统能否在复杂动态环境中稳定学习、安全决策并高效收敛。本章从值函数逼近与策略优化两条技术主线出发,系统梳理九种核心算法的数学原理、更新机制与适用边界,并结合自动驾驶、机器人控制等场景给出选型建议。下图展示了这些算法在“值函数-策略”坐标系中的演化关系与适用场景分布。

强化学习核心算法谱系与适用场景 策略优化(直接学习策略) 值函数逼近(间接学习策略) 表格型方法 深度值函数 策略梯度 Actor-Critic 家族 Q-learning SARSA DQN Double DQN Dueling DQN 策略梯度 Actor-Critic PPO SAC 适用场景 离散小状态空间 高维连续状态 连续动作空间 复杂控制任务

4.1 表格型方法:Q-learning 与 SARSA

核心原理

Q-learning 与 SARSA 均基于时序差分(TD)思想,通过维护状态-动作值函数 Q(s,a) 来指导决策。Q-learning 属于离策略(Off-policy)算法,其更新公式为:

Q(s,a) ← Q(s,a) + α[r + γ·max_a' Q(s',a') - Q(s,a)]

该公式使用贪心策略选择下一状态的最大 Q 值进行更新,与实际执行策略无关。SARSA 则属于在策略(On-policy)算法,更新公式为:

Q(s,a) ← Q(s,a) + α[r + γ·Q(s',a') - Q(s,a)]

其中 a' 是实际执行的动作,因此 SARSA 学习到的策略与行为策略紧密耦合。

判断方法与操作流程

  • 状态空间规模:当状态-动作对数量小于 10⁶ 且可离散化时,优先考虑表格型方法。
  • 风险敏感度:若环境存在高代价错误(如自动驾驶碰撞),SARSA 因考虑实际执行动作而更保守;若追求最优策略,Q-learning 更合适。
  • 实现步骤:初始化 Q 表 → 选择动作(ε-贪心)→ 执行并观测奖励与下一状态 → 按公式更新 → 迭代直至收敛。

案例拆解:迷宫导航中的安全权衡

在一个 20×20 的网格迷宫中,智能体需要从起点到达终点,其中包含 5 个“陷阱”格子(奖励 -10)和 1 个“捷径”(奖励 +5 但需经过陷阱边缘)。使用 Q-learning 时,智能体倾向于学习穿越陷阱边缘的捷径以获得更高累积奖励,但训练初期频繁掉入陷阱;改用 SARSA 后,由于行为策略本身包含 ε-贪心探索,更新时会将陷阱边缘的低价值纳入估计,最终学习出更安全的绕行路径。实验数据显示,SARSA 在训练前 2000 回合的平均回报比 Q-learning 高 35%,但收敛后的最优回报低 8%。

常见误区与总结

误区:认为 Q-learning 一定优于 SARSA。实际上,在安全关键场景中,SARSA 的保守性往往更实用;而在仿真环境或离线训练中,Q-learning 的离策略特性允许使用经验回放,数据效率更高。
经验:工程实践中常先用 Q-learning 做离线预训练,再切换 SARSA 进行在线微调,兼顾最优性与安全性。

4.2 深度值函数方法:DQN 及其改进

核心原理

DQN 使用深度神经网络 Q(s,a;θ) 逼近值函数,并引入经验回放与目标网络两大机制解决样本相关性与训练不稳定问题。其损失函数为:

L(θ) = E[(r + γ·max_a' Q(s',a';θ⁻) - Q(s,a;θ))²]

其中 θ⁻ 为目标网络参数,定期从 θ 复制。Double DQN 将动作选择与值评估解耦,使用在线网络选择动作、目标网络评估值,缓解最大化偏差导致的过估计问题。Dueling DQN 则将 Q 值分解为状态价值 V(s) 与优势函数 A(s,a),即 Q(s,a)=V(s)+A(s,a),在动作对状态影响较小时(如直道行驶)仍能准确学习状态价值。

判断方法与操作流程

算法核心改进适用场景典型参数
DQN经验回放+目标网络高维离散动作空间回放池 10⁵~10⁶,目标网络更新频率 1000 步
Double DQN动作选择与评估解耦存在噪声奖励的环境同 DQN,额外维护双网络
Dueling DQNV 与 A 分离动作影响差异大的场景优势流与价值流共享底层特征

案例拆解:自动驾驶换道决策

在某高速换道仿真中,状态为自车与周围 4 辆车的相对位置、速度(共 20 维连续量),动作空间为 5 个离散换道意图。使用 DQN 训练时,发现 Q 值普遍偏高 15%~20%,导致智能体过于激进地换道。改用 Double DQN 后,过估计降低至 5% 以内,碰撞率下降 40%。进一步引入 Dueling 结构后,在直道巡航(动作影响小)场景下,状态价值学习更准确,训练收敛速度提升 30%。

常见误区与总结

关键点:Dueling DQN 并非在所有场景都优于 Double DQN。当动作对状态转移影响显著时,优势函数分解可能引入额外噪声;实际应用中常将两者结合(Dueling Double DQN)以获得综合优势。

4.3 策略梯度与 Actor-Critic

核心原理

策略梯度方法直接参数化策略 π(a|s;θ),通过最大化期望回报的梯度上升更新参数。REINFORCE 算法使用蒙特卡洛采样估计梯度:

∇θJ(θ) = E[∇θ log π(a|s;θ) · G_t]

其中 G_t 为从 t 时刻开始的累积回报。Actor-Critic 方法引入 Critic 网络估计值函数,用 TD 误差替代 G_t 作为优势估计,降低方差。其梯度形式为:

∇θJ(θ) = E[∇θ log π(a|s;θ) · A(s,a)]

其中 A(s,a) 为优势函数,常用 GAE(广义优势估计)计算。

判断方法与操作流程

  • 动作空间类型:连续动作空间(如转向角、油门)必须使用策略梯度或 Actor-Critic 家族。
  • 随机策略需求:需要显式建模探索时(如对抗场景),策略梯度天然输出动作分布。
  • 实现流程:初始化 Actor 与 Critic 网络 → 采样轨迹 → 计算优势估计 → 更新 Critic(MSE 损失)→ 更新 Actor(策略梯度)→ 重复。

案例拆解:机械臂轨迹跟踪

在 7 自由度机械臂轨迹跟踪任务中,动作空间为 7 维连续关节力矩。使用 REINFORCE 训练时,梯度方差极大,需要 5000 个回合才能初步收敛。引入 Actor-Critic 后,Critic 提供即时反馈,方差降低 60%,收敛回合数减少至 1500。但 Critic 的估计误差会引入偏差,需通过 GAE 的 λ 参数平衡偏差与方差(λ=0.95 时效果最佳)。

常见误区与总结

误区:认为 Actor-Critic 一定优于纯策略梯度。在轨迹长度较短(<50 步)的任务中,REINFORCE 的蒙特卡洛回报反而更准确;且 Actor-Critic 对 Critic 网络初始化和学习率更敏感。

4.4 现代主流算法:PPO 与 SAC

核心原理

PPO(近端策略优化)通过裁剪目标函数限制策略更新幅度,保证训练稳定性。其目标函数为:

L(θ) = E[min(r_t(θ)·A_t, clip(r_t(θ), 1-ε, 1+ε)·A_t)]

其中 r_t(θ)=π_θ(a|s)/π_old(a|s) 为概率比,ε 通常取 0.2。SAC(软 Actor-Critic)则引入最大熵框架,在最大化回报的同时最大化策略熵,目标函数为:

J(θ) = E[Q(s,a) - α·log π(a|s)]

其中 α 为温度系数,自动调节探索与利用的平衡。SAC 使用随机策略,天然适合连续动作空间。

判断方法与操作流程

算法策略类型样本效率稳定性适用场景
PPO随机/确定性中高大规模并行训练、仿真环境
SAC随机(高斯)高中真实机器人、样本昂贵场景

案例拆解:端到端自动驾驶横向控制

在 CARLA 仿真器中训练端到端横向控制策略,状态为前视摄像头图像(84×84×3)与车辆速度,动作为连续转向角。使用 PPO 训练 200 万步后,平均车道保持误差为 0.35m;改用 SAC 后,由于熵正则化鼓励探索,仅用 120 万步即达到 0.28m 的误差,且训练曲线更平滑。但 SAC 对超参数(学习率、温度系数)更敏感,需要额外的自动调参机制。

常见误区与总结

选型建议:若计算资源充足且可并行采样,PPO 是稳妥选择;若样本获取成本高(如真实车辆测试),SAC 的样本效率优势明显。两者均支持连续动作,但 SAC 的随机策略在需要多模态行为时(如避障时左转或右转均可)表现更优。
工程实践要点:无论选择哪种算法,均需关注奖励塑形(Reward Shaping)与安全约束。在端到端规划控制中,建议将碰撞、偏离车道等硬约束作为惩罚项加入奖励,并设置安全动作掩码(Action Mask)防止探索阶段输出危险动作。