《强化学习的数学原理》学习笔记(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’}$ 存入缓冲区,通过随机采样打破数据间的相关性并提高样本利用率。