第 294 题:实现强化学习的REINFORCE,基线减小的方差降低。
题目
实现强化学习的REINFORCE,基线减小的方差降低。
完整讲解
一、REINFORCE 与策略梯度
-
| REINFORCE:策略梯度的一种,用轨迹的回报 $G_t$ 作为权,对策略 $\pi_\theta$ 的 log 概率求梯度并上升:$\nabla_\theta J \propto \mathbb{E}[G_t \nabla_\theta \ln \pi_\theta(a_t |
s_t)]$。无偏但方差大,因 $G_t$ 整条轨迹的回报波动大。 |
二、基线减小方差
-
| 基线(baseline):引入与动作无关的 $b(s_t)$,用 $(G_t - b(s_t))$ 代替 $G_t$ 作为权重,即 $\nabla_\theta J \propto \mathbb{E}[(G_t - b(s_t)) \nabla_\theta \ln \pi_\theta(a_t |
s_t)]$。只要 $b$ 不依赖当前动作,期望不变仍无偏;若 $b$ 近似 $V(s_t)$,则 $(G_t - b)$ 方差更小。 |
- 常见基线:(1)常数(如回报均值);(2)状态价值估计 $V_\phi(s_t)$,用另一网络或 TD 学习;(3)优势估计 $A_t = G_t - V(s_t)$ 或 GAE。实现时 $G_t$ 可用蒙特卡洛回报或 TD($\lambda$) 回报。
-
| 实现:采轨迹,算每步 $G_t$(或 $A_t$),loss = $-\sum_t (G_t - b_t) \ln \pi_\theta(a_t |
s_t)$,最小化即梯度上升;若用 $V$ 为基线需同时训 $V$(如 MSE 拟合 $G_t$)。 |
三、方差与偏差权衡
- 用 $V(s)$ 作基线降方差;若 $V$ 用 bootstrapping(TD)则引入偏差,GAE 在偏差与方差间折中。REINFORCE+基线是 A2C/PPO 等的基础。
面试要点
-
| 能写出 REINFORCE 的梯度形式 $\mathbb{E}[G_t \nabla \ln \pi(a |
s)]$ 并说明方差大的原因。 |
- 能说明基线的作用(无偏、降方差)、常见取法(常数、$V(s)$、优势)及实现时 loss 与 $V$ 的训练方式。
记忆要点
- REINFORCE:策略梯度,权为 $G_t$;加基线 $(G_t-b)$ 保持无偏且降方差,$b=V(s)$ 常用。
-
| 实现:采轨迹算 $G_t$ 或 $A_t$,loss=-$(G_t-b)\ln\pi(a |
s)$;可同时训 $V$。 |