强化学习基础

9 minAdvanced2026/6/14

MDP框架、Q-Learning、DQN、Policy Gradient算法原理与实现。

1. 马尔可夫决策过程(MDP)

1.1 MDP定义

MDP 是强化学习的数学框架,定义为五元组 (S,A,P,R,γ)(S, A, P, R, \gamma)

| 要素 | 符号 | 说明 | | :------- | :----------------- | :----------------- | ------------ | | 状态空间 | SS | 所有可能状态的集合 | | 动作空间 | AA | 所有可能动作的集合 | | 转移概率 | P(ss,a)P(s' | s,a) | 状态转移概率 | | 奖励函数 | R(s,a,s)R(s,a,s') | 即时奖励 | | 折扣因子 | γ[0,1)\gamma \in [0,1) | 未来奖励的衰减系数 |

马尔可夫性质

P(st+1st,at,st1,at1,)=P(st+1st,at)P(s_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, \ldots) = P(s_{t+1}|s_t, a_t)

未来只依赖当前状态和动作,与历史无关。

1.2 值函数

状态值函数 Vπ(s)V^\pi(s):从状态 ss 出发,遵循策略 π\pi 的期望回报:

Vπ(s)=Eπ[t=0γtrts0=s]V^\pi(s) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t r_t \bigg| s_0 = s\right]

动作值函数 Qπ(s,a)Q^\pi(s,a):从状态 ss 执行动作 aa 后,遵循策略 π\pi 的期望回报:

Qπ(s,a)=Eπ[t=0γtrts0=s,a0=a]Q^\pi(s,a) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t r_t \bigg| s_0 = s, a_0 = a\right]

1.3 Bellman方程

Bellman期望方程

Vπ(s)=aπ(as)sP(ss,a)[R(s,a,s)+γVπ(s)]V^\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a)\left[R(s,a,s') + \gamma V^\pi(s')\right]

Qπ(s,a)=sP(ss,a)[R(s,a,s)+γaπ(as)Qπ(s,a)]Q^\pi(s,a) = \sum_{s'} P(s'|s,a)\left[R(s,a,s') + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s',a')\right]

Bellman最优方程

V(s)=maxasP(ss,a)[R(s,a,s)+γV(s)]V^*(s) = \max_a \sum_{s'} P(s'|s,a)\left[R(s,a,s') + \gamma V^*(s')\right]

Q(s,a)=sP(ss,a)[R(s,a,s)+γmaxaQ(s,a)]Q^*(s,a) = \sum_{s'} P(s'|s,a)\left[R(s,a,s') + \gamma \max_{a'} Q^*(s',a')\right]

2. Q-Learning

2.1 算法原理

Q-Learning 是一种无模型离策略算法,直接学习最优Q值函数:

Q(st,at)Q(st,at)+α[rt+γmaxaQ(st+1,a)Q(st,at)]Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[r_t + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t)\right]

2.2 探索与利用

ε-贪心策略

at={random actionwith probability ϵargmaxaQ(st,a)with probability 1ϵa_t = \begin{cases} \text{random action} & \text{with probability } \epsilon \\ \arg\max_a Q(s_t, a) & \text{with probability } 1-\epsilon \end{cases}

  • ϵ\epsilon 从1.0逐渐衰减到0.01
  • 保证探索的同时逐步转向利用

2.3 Q-Learning算法流程

初始化 Q(s,a) = 0 (所有s,a)
对于每轮episode:
    初始化状态 s
    重复:
        用ε-贪心从Q选择动作 a
        执行a,观察 r, s'
        Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)]
        s ← s'
    直到终止状态

3. DQN

3.1 深度Q网络

当状态空间过大或连续时,用神经网络近似Q函数:

Q(s,a;θ)Q(s,a)Q(s, a; \theta) \approx Q^*(s, a)

3.2 关键技术

经验回放(Experience Replay)

1. 将交互经验 (s, a, r, s') 存入回放缓冲区
2. 训练时从缓冲区随机采样小批量
3. 打破样本间的时间相关性

目标网络(Target Network)

L(θ)=E[(r+γmaxaQ(s,a;θ)Q(s,a;θ))2]L(\theta) = \mathbb{E}\left[\left(r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta)\right)^2\right]

  • θ\theta 为在线网络参数(频繁更新)
  • θ\theta^- 为目标网络参数(定期从 θ\theta 复制)
  • 避免目标值与当前值过度耦合

3.3 DQN变体

变体改进说明
Double DQN解耦选择和评估减少Q值过估计
Dueling DQN分离状态值和优势函数更好学习状态价值
Prioritized Replay优先采样TD误差大的经验加速学习
Rainbow集成多种改进综合最优

Double DQN

y=r+γQ(s,argmaxaQ(s,a;θ);θ)y = r + \gamma Q\left(s', \arg\max_{a'} Q(s', a'; \theta); \theta^-\right)

Dueling DQN

Q(s,a;θ)=V(s;θV)+A(s,a;θA)1AaA(s,a;θA)Q(s, a; \theta) = V(s; \theta_V) + A(s, a; \theta_A) - \frac{1}{|A|}\sum_{a'} A(s, a'; \theta_A)

4. Policy Gradient

4.1 策略梯度定理

直接参数化策略 πθ(as)\pi_\theta(a|s),通过梯度上升最大化期望回报:

θJ(θ)=Eπθ[θlogπθ(as)Gt]\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[\nabla_\theta \log \pi_\theta(a|s) \cdot G_t\right]

其中 Gt=k=0γkrt+kG_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k} 为累积回报。

4.2 REINFORCE算法

初始化策略参数 θ
对于每轮episode:
    用π_θ采样完整轨迹 (s_0, a_0, r_0, s_1, ...)
    对于每个时间步 t:
        计算回报 G_t = Σ γ^k r_{t+k}
        θ ← θ + α ∇_θ log π_θ(a_t|s_t) · G_t

方差缩减

  • 基线Gtb(st)G_t - b(s_t) 代替 GtG_tb(st)b(s_t) 通常取 V(st)V(s_t)
  • 优势函数A(st,at)=Q(st,at)V(st)A(s_t, a_t) = Q(s_t, a_t) - V(s_t)

4.3 Actor-Critic

同时学习策略(Actor)和值函数(Critic):

θJ(θ)θlogπθ(atst)A(st,at)\nabla_\theta J(\theta) \approx \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot A(s_t, a_t)

组件学习目标输出
Actor策略 πθ\pi_\theta动作概率
Critic值函数 VϕV_\phi状态价值估计

优势估计

A(st,at)=rt+γV(st+1)V(st)A(s_t, a_t) = r_t + \gamma V(s_{t+1}) - V(s_t)

GAE(Generalized Advantage Estimation)

A^tGAE=l=0(γλ)lδt+l\hat{A}_t^{GAE} = \sum_{l=0}^{\infty} (\gamma\lambda)^l \delta_{t+l}

其中 δt=rt+γV(st+1)V(st)\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)

4.4 PPO

Proximal Policy Optimization 是目前最常用的策略梯度算法:

裁剪目标

LCLIP(θ)=E[min(rt(θ)A^t,clip(rt(θ),1ϵ,1+ϵ)A^t)]L^{CLIP}(\theta) = \mathbb{E}\left[\min\left(r_t(\theta)\hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t\right)\right]

其中 rt(θ)=πθ(atst)πθold(atst)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} 为重要性采样比。

  • 限制策略更新幅度,避免过大更新导致性能崩溃
  • 实现简单,训练稳定
  • 是 RLHF 中训练 LLM 的核心算法