《强化学习的数学原理》学习笔记(7-8)

内容包括时序差分方法、值函数近似,对应《强化学习的数学原理》7-8章。

七、时序差分方法 (Temporal Difference Learning)

1. 状态值的 TD 学习

$$V_{t+1}(S_t) = V_t(S_t) + \alpha_t(S_t) \left[ (R_{t+1} + \gamma V_t(S_{t+1})) - V_t(S_t) \right]$$

对于所有 $s \neq S_t$,

$$V_{t+1}(s) = V_t(s)$$

用当前获得的 $V_{t+1}$ 更新 $V_t(S_t)$,使其更靠近 TD 目标(TD Target)。

2. 动作价值 TD 学习: Sarsa

$$q_{t+1}(S_t, A_t) = q_t(S_t, A_t) + \alpha_t(S_t, A_t) \left[ (R_{t+1} + \gamma q_t(S_{t+1}, A_{t+1})) - q_t(S_t, A_t) \right]$$

对于所有 $(s, a) \neq (S_t, A_t)$,

$$q_{t+1}(s, a) = q_t(s, a)$$

3. 动作价值 TD 学习: $n$ 步 Sarsa

$$q_{\pi}(s, a) = \mathbb{E}[G_t | S_t = s, A_t = a]$$

$$G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots$$

  • Sarsa (1-step): $G_t^{(1)} = R_{t+1} + \gamma q_t(S_{t+1}, A_{t+1})$
  • $n$-step Sarsa: $G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^n q_t(S_{t+n}, A_{t+n})$
  • MC (Monte Carlo): $G_t^{(\infty)} = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots$

4. Q-learning

$$q_{t+1}(S_t, A_t) = q_t(S_t, A_t) + \alpha_t(S_t, A_t) \left[ (R_{t+1} + \gamma \max_{a \in \mathcal{A}(S_{t+1})} q_t(S_{t+1}, a)) - q_t(S_t, A_t) \right]$$

Q-learning 是离线策略 (Off-policy)。


八、值函数近似 (Value Function Approximation)

1. 值表示:从表格到函数

$s \rightarrow$ 特征提取 $\rightarrow w \rightarrow \hat{v}(s, w)$

2. 基于函数近似的状态值学习

(1)目标函数

$$J(w) = \mathbb{E}[(v_{\pi}(S) - \hat{v}(S, w))^2]$$,

其中 $v_{\pi}(s)$ 是真实值,$\hat{v}(s, w)$ 是估计值。

注:期望是按状态的稳态分布 (Stationary Distribution) 进行加权。

(2)优化算法

$$\nabla_w J(w) = - \mathbb{E}[(v_{\pi}(S) - \hat{v}(S, w)) \nabla_w \hat{v}(S, w)]$$

应用随机梯度下降 (Stochastic Gradient Descent):

$$w_{t+1} = w_t + \alpha_t (v_{\pi}(S_t) - \hat{v}(S_t, w_t)) \nabla_w \hat{v}(S_t, w_t)$$

由于 $v_{\pi}(S_t)$ 未知,常用以下替代:

  • 蒙特卡罗估计: 使用 $G_t$ 代替 $v_{\pi}(S_t)$。

  • TD learning:

    $$w_{t+1} = w_t + \alpha_t (R_{t+1} + \gamma \hat{v}(S_{t+1}, w_t) - \hat{v}(S_t, w_t)) \nabla_w \hat{v}(S_t, w_t)$$

3. 值近似动作价值 TD 学习

  • Sarsa:

    $$w_{t+1} = w_t + \alpha_t [R_{t+1} + \gamma \hat{q}(S_{t+1}, A_{t+1}, w_t) - \hat{q}(S_t, A_t, w_t)] \nabla_w \hat{q}(S_t, A_t, w_t)$$

  • Q-learning:

    $$w_{t+1} = w_t + \alpha_t [R_{t+1} + \gamma \max_{a} \hat{q}(S_{t+1}, a, w_t) - \hat{q}(S_t, A_t, w_t)] \nabla_w \hat{q}(S_t, A_t, w_t)$$

4. 深度 Q-learning (DQN)

(1)目标函数

$$J(w) = \mathbb{E}[(y_{target} - \hat{q}(S, A, w))^2]$$

(2)两个网络

  • 利用主网络 (Online Network) 输出估计值 $y = \hat{q}(s, a, w)$。

  • 利用目标网络 (Target Network) 输出目标值 $y_{target} = r + \gamma \max_{a’} \hat{q}(s’, a’, w^-)$。

  • 主网络逐步更新,目标网络参数 $w^-$ 定期同步主网络参数 $w$。

    (3)经验回放 (Experience Replay)

    将样本 ${s, a, r, s’}$ 存入缓冲区,通过随机采样打破数据间的相关性并提高样本利用率。