Reinforcement-Learning-L8
值函数逼近方法读书笔记
值函数逼近处理连续/大规模状态空间。本文推导线性逼近和神经网络的SGD更新规则,将Sarsa、Q-learning扩展为函数逼近形式,并讨论深度Q网络(DQN)中的经验回放和目标网络技术。
一、动机:从表格表示到函数逼近
传统表格表示的局限性
- 存储问题:
- 状态值表:需存储 $|\mathcal{S}|$ 个值
$$
\begin{array}{c|c|c|c}
\text{State} & s_1 & \cdots & s_n \\ \hline
\text{Value} & v_\pi(s_1) & \cdots & v_\pi(s_n)
\end{array}
$$ - 动作值表:需存储 $|\mathcal{S}| \times |\mathcal{A}|$ 个值
$$
\begin{array}{c|c|c|c}
s \backslash a & a_1 & \cdots & a_m \\ \hline
s_1 & q_\pi(s_1,a_1) & \cdots & q_\pi(s_1,a_m) \\
\vdots & \vdots & \ddots & \vdots \\
s_n & q_\pi(s_n,a_1) & \cdots & q_\pi(s_n,a_m)
\end{array}
$$
- 状态值表:需存储 $|\mathcal{S}|$ 个值
- 泛化能力缺失:
- 无法处理未见过状态
- 相邻状态的值更新相互独立
函数逼近的核心思想
- 参数化函数:$\hat{v}(s, w) \approx v_\pi(s)$ 或 $\hat{q}(s,a,w) \approx q_\pi(s,a)$
- 参数向量:$w \in \mathbb{R}^m$($m \ll |\mathcal{S}|$)
- 核心优势:
- 存储高效:只需存储 $m$ 维参数
- 泛化能力:更新 $w$ 影响所有相关状态
线性函数逼近示例
- 特征向量:$\phi(s) = [\phi_1(s), \dots, \phi_k(s)]^T$
- 线性逼近:
$$
\hat{v}(s,w) = \phi^T(s)w = \sum_{i=1}^k \phi_i(s) w_i
$$ - 非线性扩展:神经网络(如 Deep Q-Networks)
二、状态值函数估计
1. 目标函数设计
基于平稳分布 $d_\pi(s)$ 的加权平方误差:
$$
J(w) = \mathbb{E}_{S \sim d_\pi} \left[ (v_\pi(S) - \hat{v}(S,w))^2 \right] = \sum_{s \in \mathcal{S}} d_\pi(s) \left( v_\pi(s) - \hat{v}(s,w) \right)^2
$$
平稳分布 $d_\pi(s)$:策略 $\pi$ 下状态的长期访问概率
- 满足 $d_\pi^T = d_\pi^T P_\pi$
- 高频访问状态具有更高权重
2. 优化算法:随机梯度下降(SGD)
梯度计算
$$
\nabla_w J(w) = -2 \mathbb{E}_{S \sim d_\pi} \left[ (v_\pi(S) - \hat{v}(S,w)) \nabla_w \hat{v}(S,w) \right]
$$
SGD更新规则
$$
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)
$$
3. 实现方法
(1) 蒙特卡洛(MC)逼近
用经验回报 $g_t$ 估计 $v_\pi(s_t)$:
$$
w_{t+1} = w_t + \alpha_t (g_t - \hat{v}(s_t,w_t)) \nabla_w \hat{v}(s_t,w_t)
$$
(2) 时序差分(TD)逼近
用引导目标 $r_{t+1} + \gamma \hat{v}(s_{t+1},w_t)$ 估计 $v_\pi(s_t)$:
$$
w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \hat{v}(s_{t+1},w_t) - \hat{v}(s_t,w_t) \right] \nabla_w \hat{v}(s_t,w_t)
$$
线性函数逼近特例
若 $\hat{v}(s,w) = \phi^T(s)w$,则 $\nabla_w \hat{v} = \phi(s)$,更新简化为:
$$
w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \phi^T(s_{t+1})w_t - \phi^T(s_t)w_t \right] \phi(s_t)
$$
4. 算法流程
初始化:可微函数 $\hat{v}(s,w)$,参数 $w_0$
for 每个由 $\pi$ 生成的轨迹 $(s_t, r_{t+1}, s_{t+1})$:
TD目标:$\bar{v}_t = r_{t+1} + \gamma \hat{v}(s_{t+1}, w_t)$
计算梯度:$\nabla_w \hat{v}(s_t, w_t)$
更新参数:$w_{t+1} = w_t + \alpha_t (\bar{v}_t - \hat{v}(s_t, w_t)) \nabla_w \hat{v}(s_t, w_t)$
三、Sarsa算法与函数逼近
1. 动作值函数逼近
- 逼近函数:$\hat{q}(s,a,w) \approx q_\pi(s,a)$
- TD目标:$r_{t+1} + \gamma \hat{q}(s_{t+1}, a_{t+1}, w_t)$
- SGD更新:
$$
w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \hat{q}(s_{t+1}, a_{t+1}, w_t) - \hat{q}(s_t, a_t, w_t) \right] \nabla_w \hat{q}(s_t, a_t, w_t)
$$
2. 策略搜索算法
初始化:$\hat{q}(s,a,w)$, $w$, $\epsilon$, $\alpha$
for 每幕:
初始化状态 $s_0$,选择动作 $a_0 \sim \pi(\cdot|s_0)$
for 每步 $t = 0,1,\dots$:
执行 $a_t$,观测 $(r_{t+1}, s_{t+1})$
选择 $a_{t+1} \sim \pi(\cdot|s_{t+1})$
更新参数:
$w \leftarrow w + \alpha \left[ r_{t+1} + \gamma \hat{q}(s_{t+1}, a_{t+1}, w) - \hat{q}(s_t, a_t, w) \right] \nabla_w \hat{q}(s_t, a_t, w)$
$\varepsilon$-贪心策略改进:
$\pi(a|s_t) = \begin{cases}
1-\varepsilon + \frac{\varepsilon}{|\mathcal{A}(s_t)|} & a = \arg\max_a \hat{q}(s_t,a,w) \\\\
\frac{\varepsilon}{|\mathcal{A}(s_t)|} & \text{否则}
\end{cases}$
四、Q-learning与函数逼近
1. 最优动作值逼近
- TD目标:$r_{t+1} + \gamma \max_{a’} \hat{q}(s_{t+1}, a’, w_t)$
- SGD更新:
$$
w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \max_{a’} \hat{q}(s_{t+1}, a’, w_t) - \hat{q}(s_t, a_t, w_t) \right] \nabla_w \hat{q}(s_t, a_t, w_t)
$$
2. 深度Q学习(DQN)
- 关键技术:
- 目标网络:使用独立参数 $w^-$ 计算目标值
$$
\text{目标} = r_{t+1} + \gamma \max_{a’} \hat{q}(s_{t+1}, a’, w^-)
$$ - 经验回放:存储转移 $(s_t, a_t, r_{t+1}, s_{t+1})$ 到缓冲池,随机采样更新
- 目标网络:使用独立参数 $w^-$ 计算目标值
- 更新规则:
$$
w \leftarrow w + \alpha \left[ r_{t+1} + \gamma \max_{a’} \hat{q}(s_{t+1}, a’, w^-) - \hat{q}(s_t, a_t, w) \right] \nabla_w \hat{q}(s_t, a_t, w)
$$
五、总结
1. 关键公式对比
| 算法 | 更新规则 |
|---|---|
| TD-Linear | $ w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \phi^T(s_{t+1})w_t - \phi^T(s_t)w_t \right] \phi(s_t) $ |
| Sarsa 逼近 | $ w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \hat{q}(s_{t+1}, a_{t+1}, w_t) - \hat{q}(s_t, a_t, w_t) \right] \nabla_w \hat{q}(s_t, a_t, w_t) $ |
| Q-learning 逼近 | $ w_{t+1} = w_t + \alpha_t \left[ r_{t+1} + \gamma \max_a \hat{q}(s_{t+1}, a, w_t) - \hat{q}(s_t, a_t, w_t) \right] \nabla_w \hat{q}(s_t, a_t, w_t) $ |
2. 函数逼近器选择
| 类型 | 形式 | 特点 |
|---|---|---|
| 线性逼近 | $\hat{v}(s,w) = \phi^T(s)w$ | 理论收敛性好,特征工程关键 |
| 神经网络 | $\hat{q}(s,a,w) = \text{DNN}(s,a;w)$ | 表征能力强,需结合目标网络/经验回放 |
3. 核心优势与挑战
- 优势:
- 处理连续/大规模状态空间
- 相似状态自动泛化
- 挑战:
- 收敛性理论保证减弱(尤其离策略和非线性逼近)
- 逼近误差可能导致策略退化