强化学习(Reinforcement Learning,RL)是一种范式:智能体(Agent)通过与环境(environment)交互、接收作为反馈的奖励(reward),并优化其策略(policy)以最大化长期累积奖励来学习做出序贯决策[346]。与监督学习(需要带标签的输入-输出对)不同,RL 通过试错来发现最优行为。

图 3.1:强化学习概览:智能体与环境交互,接收奖励作为反馈,并通过试错更新其策略。与从带标签数据对中学习的监督学习不同,RL 通过经验最大化奖励来学习应当做什么。
图 3.1:强化学习概览:智能体与环境交互,接收奖励作为反馈,并通过试错更新其策略。与从带标签数据对中学习的监督学习不同,RL 通过经验最大化奖励来学习应当做什么。

马尔可夫决策过程(Markov Decision Process,MDP)

MDP 是一个五元组(S,A,P,R,γ):

  • S:状态空间——环境所有可能的配置
  • A:动作空间——智能体可用的所有动作
  • P⁡(s′|s,a):转移函数——在状态 s 下采取动作 a 后到达状态 s′ 的概率
  • R⁡(s,a,s′):奖励函数——一次状态转移获得的即时标量反馈
  • γ∈[0,1]:折扣因子——未来奖励相对于即时奖励的权重

马尔可夫性质:未来只依赖于当前状态,而不依赖于历史:

P⁡(st+1|st,at,st−1,at−1,…)=P⁡(st+1|st,at)

这一性质使问题变得可处理。

核心概念与定义

策略(Policy)π⁡(a|s):从状态到动作概率的映射。确定性策略:a=π⁡(s)。随机性策略:a∼π(⋅|s)。

回报(Return)(累积折扣奖励):

Gt=∑k=0∞γk​rt+k=rt+γ​rt+1+γ2​rt+2+⋯(3.1)

价值函数(在策略 π 下从状态 s 出发的期望回报):

Vπ​(s)=𝔼π​[Gt∣st=s]=𝔼π​[∑k=0∞γk​rt+k∣st=s](3.2)

动作价值函数(从状态 s 出发、采取动作 a、其后遵循 π 的期望回报):

Qπ(s,a)=𝔼π[Gt∣st=s,at=a](3.3)

优势函数(动作 a 相对于平均水平好多少):

Aπ​(s,a)=Qπ​(s,a)−Vπ​(s)(3.4)

贝尔曼方程(递归关系):

强化学习方法的分类

强化学习算法可以从多个维度进行分类。理解这一分类体系有助于针对特定问题选择合适的方法。

时序差分(Temporal Difference,TD)学习

TD 学习[347]采用自举(bootstrap)思想——它使用其他价值估计来更新价值估计,无需等待完整 episode 结束。

理解 TD 误差:以「惊讶」作为学习信号

TD 误差衡量智能体对未来奖励的当前估计与采取一步后新估计之间的差异。简单来说,就是智能体原本以为会发生的事,与实际发生的事加上对未来的新预期之间的差。它代表了智能体的「惊讶」。

TD 误差公式

δt=Rt+1+γ​V​(St+1)−V⁡(St)(3.9)
  • Rt+1:采取动作后收到的即时奖励。
  • γ​V​(St+1):下一个状态的估计折扣价值(智能体预期从下一状态开始往后能获得的回报,按折扣因子 γ 缩放)。
  • V⁡(St):当前状态价值的原始估计。

合并后的项 (Rt+1+γ​V​(St+1)) 称为 TD 目标。因此:

TD Error=TD Target−Old Estimate(3.10)

智能体如何使用 TD 误差

智能体调整其价值函数,使 TD 误差趋向于零:

V⁡(St)←V⁡(St)+α⋅δt(3.11)
  • 如果 δt>0:结果好于预测 → 提高 V⁡(St),使智能体趋向该状态。
  • 如果 δt<0:结果差于预测 → 降低 V⁡(St),使智能体避开该状态。
  • 如果 δt=0:预测完全准确 → 无需更新(收敛)。

TD 目标:yt=rt+γ​V​(st+1)——我们向其逼近的「更好估计」。

多步 TD(n 步回报):

Gt(n)=rt+γ​rt+1+⋯+γn−1​rt+n−1+γn​V​(st+n)(3.12)

Q-Learning

Q-Learning[373] 是基础的 off-policy、基于价值算法。它直接学习最优 Q∗,而不管当前遵循的是何种策略。

更新规则:

Q⁡(st,at)←Q⁡(st,at)+α⁡[rt+γ​maxa′⁡Q⁡(st+1,a′)−Q⁡(st,at)](3.13)

SARSA[311](on-policy 的替代方案):使用实际采取的动作,而非取最大值:

Q⁡(st,at)←Q⁡(st,at)+α⁡[rt+γ​Q​(st+1,at+1)−Q⁡(st,at)](3.14)

深度 Q 网络(DQN)[259]:用神经网络 Qθ​(s,a) 替换表格型 Q⁡(s,a)。关键创新:经验回放缓冲区(off-policy 数据复用)、目标网络(稳定性)、ϵ-greedy 探索。

DQN 损失函数:网络在从回放缓冲区采样的 mini-batch 上最小化 TD 误差的均方值:

ℒ⁡(θ)=𝔼(s,a,r,s′)∼ℬ​[(r+γ​maxa′​Qθ¯​(s′,a′)−Qθ​(s,a))2](3.15)

其中 Qθ¯ 是目标网络——Qθ 的冻结副本,仅每 C 步更新一次(例如 C=10,000)。这可以防止移动目标问题:若没有它,预测与目标会同时偏移,导致发散。

梯度更新:对 θ 求损失的梯度(注意:目标 y 被视为常数——没有梯度流经 θ¯):

∇θℒ=−𝔼⁡[(r+γ​maxa′​Qθ¯​(s′,a′)−Qθ​(s,a))⏟TD error ​δ​∇θQθ​(s,a)](3.16)
θ←θ−α⋅δ⋅∇θQθ​(s,a)(3.17)

学习方案(每个训练步):

  1. 行动:通过 ϵ-greedy 选择动作:以概率 ϵ 采取随机动作,否则 a=arg⁡maxa​Qθ​(s,a)。在前 100 万步内将 ϵ 从 1.0 → 0.01 退火。
  2. 存储:将转移 (s,a,r,s′,d) 保存到回放缓冲区 ℬ 中(容量 ∼1M)。
  3. 采样:从 ℬ 中均匀抽取 32 条转移组成的 mini-batch。
  4. 计算目标:y=r+γ⁡(1−d)​maxa′​Qθ¯​(s′,a′)(若为终止状态,则未来价值为零)。
  5. 更新:对 (y−Qθ​(s,a))2 执行梯度下降。将梯度裁剪到 [−1,1](Huber 损失变体)。
  6. 同步目标:每 C 步复制 θ¯←θ。

理解重放缓冲区

回放缓冲区[220](经验回放)是一种数据存储机制,用于保存过往经验,以便智能体日后从中重新学习。智能体不再在动作之后立即丢弃数据,而是将转移存入记忆库,并从中随机采样 mini-batch 进行训练。

存储内容:每条转移是一个元组:

et=(st,at,rt,st+1,dt)(3.18)

其中 dt 是表示 episode 是否结束的布尔标志。

import random
from collections import deque
 
class ReplayBuffer:
    def __init__(self, capacity):
        self.buffer = deque(maxlen=capacity)  # Bounded queue
 
    def push(self, state, action, reward, next_state, done):
        self.buffer.append((state, action, reward, next_state, done))
 
    def sample(self, batch_size):
        # Break correlation by selecting random experiences
        return random.sample(self.buffer, batch_size)
 
    def __len__(self):
        return len(self.buffer)

策略梯度方法——REINFORCE

与其学习价值函数再导出策略,不如直接优化策略参数 θ,以最大化期望回报 [379]。

目标:J⁡(θ)=𝔼τ∼πθ​[R⁡(τ)]=𝔼πθ​[∑t=0Trt]

策略梯度定理:

∇θJ​(θ)=𝔼πθ​[∑t=0T∇θ​log​πθ​(at|st)⋅Gt](3.19)

REINFORCE 算法[379](Williams,1992):

  1. 在 πθ 下采样完整轨迹 τ=(s0,a0,r0,s1,a1,r1,…)
  2. 计算每个时间步的回报 Gt=∑k=0T−tγk​rt+k
  3. 更新:θ←θ+α​∑t∇θ​log​πθ​(at|st)⋅Gt

使用基线降低方差:

∇θJ​(θ)=𝔼πθ​[∑t=0T∇θ​log​πθ​(at|st)⋅(Gt−b⁡(st))](3.20)

任何不依赖于 at 的基线 b⁡(st) 都能保持梯度无偏并降低方差。最佳选择:b⁡(st)=Vπ​(st)。此时 Gt−V⁡(st)≈Aπ​(st,at) = 优势。

Actor-Critic 方法

将策略梯度(actor)与学习得到的价值函数(critic)结合,在保持策略优化灵活性的同时降低方差。

架构:

  • 演员(actor)πθ​(a|s):即策略。负责提议动作。
  • 评论家(critic)Vϕ​(s) 或 Qϕ​(s,a):评估状态/动作的好坏。提供低方差的基线。

actor 更新(使用来自 critic 的优势):

∇θJ=𝔼⁡[∇θ​log​πθ​(at|st)⋅A^t],A^t=rt+γ​Vϕ​(st+1)−Vϕ​(st)(3.21)

critic 更新(最小化 TD 误差):

ℒcritic=𝔼⁡[(rt+γ​Vϕ​(st+1)−Vϕ​(st))2](3.22)

广义优势估计(Generalized Advantage Estimation,GAE)

动机:Actor-Critic 框架需要优势 A⁡(s,a)=Q⁡(s,a)−V⁡(s) 的良好估计——这个动作比平均水平好多少?但这里存在一个根本性的张力:

  • 1 步 TD 优势(rt+γ​V​(st+1)−V⁡(st)):方差低(只有一步随机性),但有偏——如果价值函数 V 有误,优势估计会系统性偏离。
  • 蒙特卡洛优势(Gt−V⁡(st)):无偏(使用实际回报),但方差高——众多随机奖励之和在不同 episode 之间剧烈波动。

GAE[318](Schulman 等,2016)通过单个参数 λ∈[0,1] 在这两个极端之间提供平滑插值。它对所有 n 的 n 步优势估计取指数加权平均,给出了在偏差与方差之间权衡的原则性方法。

核心思想:在每个时间步计算 1 步 TD 误差 δt,然后用指数衰减权重 (γ​λ)l 将它们混合——近期的 TD 误差获得全权重,久远的则被降权:

A^tGAE=∑l=0T−t(γ​λ)l​δt+l,δt=rt+γ​V​(st+1)−V⁡(st)(3.23)
图 3.2:GAE 数据流:每个 TD 残差 δt+lV\delta_{t+l}^{V} 在求和前先按 (γ​λ)l(\gamma\lambda)^{l} 加权。λ\lambda 越高,纳入的未来残差越多(偏差更低、方差更高)。
图 3.2:GAE 数据流:每个 TD 残差 δt+lV 在求和前先按 (γ​λ)l 加权。λ 越高,纳入的未来残差越多(偏差更低、方差更高)。

GAE 中偏差与方差的直观映射

在监督学习中,偏差与方差源于模型的结构性假设。在通过 GAE 进行的强化学习中,它们源于你在多大程度上信任一个有缺陷的模型,相对于你在多大程度上信任一个混沌的环境:

  • 偏差(系统性错位):当估计器依赖于价值网络 Vθ 的结构性假设与不完美预测时产生。如果 θ 训练不足或容量不够,基线猜测会系统性出错。
  • 方差(样本抖动):当估计器依赖于长而不受约束的环境轨迹时产生。随机转移、随机种子与策略执行噪声在长时间跨度上累积,使经验样本奖励在不同 rollout 之间剧烈摆动。

架构光谱:边界情形分析

图 3.3:GAE 中的偏差与方差:λ\lambda 控制这一权衡。较小的 λ\lambda(左)通过自举带来高偏差/低方差;较大的 λ\lambda(右)使用完整蒙特卡洛回报带来低偏差/高方差。最优选择(λ∈[0.9,0.95]\lamb
图 3.3:GAE 中的偏差与方差:λ 控制这一权衡。较小的 λ(左)通过自举带来高偏差/低方差;较大的 λ(右)使用完整蒙特卡洛回报带来低偏差/高方差。最优选择(λ∈[0.9,0.95])在稳定训练与准确的长时间跨度信用分配之间取得平衡。

超参数 λ 充当两种基本估计范式之间的调节标尺。

权衡矩阵

通过选择 λ∈[0.95,0.99],GAE 最小化优势估计的总均方误差:

配置统计特性核心依赖实践风险
λ=0高偏差、低方差模型参数(θ)策略陷入次优局部极小值
λ∈[0.95,0.99]平衡(最优 MSE)混合加权需要根据环境随机性进行调参
λ=1低偏差、高方差经验环境 rollout破坏性梯度更新;训练爆炸

表 3.1:GAE 参数取值的操作层面对比。

调优 λ\lambda 的诊断方法

监控训练曲线可以直接洞察是偏差还是方差占主导:

  1. 高方差指标:策略熵急剧下降,同时价值函数的解释方差变得高度负向或剧烈波动 → 策略更新噪声很大。对策:降低 λ 以使目标更新更平滑。
  2. 高偏差指标:智能体在早期训练稳定,但完全无法发现复杂的延迟奖励序列 → 因自举而低估了长时间跨度的依赖关系。对策:将 λ 提高到更接近 1.0,使策略接触到真实的下游轨迹信号。

同策略 vs 异策略——详细对比

On-PolicyOff-Policy数据来源仅当前策略 πθ任意策略(回放缓冲区)更新之后旧数据失效,必须重新生成旧数据仍然可用样本效率低(数据只用一次)高(数据可反复使用)稳定性更稳定(分布一致)可能发散(分布不匹配)示例REINFORCE、PPO、A2C、GRPOQ-Learning、DQN、SAC、DPO对 LLM 而言PPO、GRPO(每步都重新生成)DPO(静态偏好数据集)

基于模型 vs 无模型

无模型基于模型学习内容直接学习策略 π 和/或价值 V/Q环境模型 P^​(s′|s,a)规划无规划,反应式决策可以模拟未来轨迹样本效率低(必须亲历一切)高(可以在想象中规划)准确性无模型偏差模型误差会累积适用场景动力学复杂/未知动力学简单、需要效率示例PPO、DQN、SAC [129]MuZero [316]、Dreamer [130]、AlphaGo [331]

奖励塑形(Reward Shaping)

奖励塑形[265] 是一种技术:开发者修改或补充环境原有的奖励函数。其主要目标是把稀疏奖励场景——智能体仅在任务最终完成时才收到反馈——转化为带有中间反馈信号的密集奖励场景,以加速收敛。

数学框架

设时间步 t 的原始奖励为 Rt​(s,a,s′)。塑形后的奖励加上一个辅助塑形函数 F:

Rt′​(s,a,s′)=Rt​(s,a,s′)+F⁡(s,a,s′)(3.26)

基于势函数的奖励塑形(Potential-Based Reward Shaping,PBRS)

为了从数学上保证重塑不会改变最优策略,可采用基于势能的奖励塑形(Potential-Based Reward Shaping)。塑形函数 F 被约束为标量势函数 Φ 在不同状态间的差值:

F⁡(s,a,s′)=γ​Φ​(s′)−Φ⁡(s)(3.27)

其中 Φ:𝒮→ℝ 是实值势函数,用于评估某个状态接近目标的理想程度;γ 是折扣因子。

完整的 PBRS 奖励为:

R′​(s,a,s′)=R⁡(s,a,s′)+γ​Φ​(s′)−Φ⁡(s)(3.28)

理论保证