概述
对基于策略网络的状态价值函数定义:
Vπθ(s) = Eπθ [Rt ∣ st=s] V^{\pi_\theta}(s)\;=\;\mathbb{E}_{\pi_\theta}\!\bigl[R_t \,\big|\,s_t=s\bigr] Vπθ(s)=Eπθ[Rtst=s]
对策略参数 θ\thetaθ 的梯度 ∇θVπθ(s)\nabla_\theta V^{\pi_\theta}(s)∇θVπθ(s) 的常见两种推导路线:
第一条从 Bellman 方程 出发;
第二条直接把“轨迹-采样”拆开,两种方法最后得到的可采样估计式是相同的
具体求解
如果上图能看明白,那就不用看下去了,
只需要知道状态价值函数对策略参数的梯度
是递归的,可以由前一个状态推出后一个状态,这一点对于循环执行的程序来说是极大的利好
下面是更加严谨的推导
从 Bellman 方程求梯度
Bellman 方程
Vπθ(s)=∑aπθ(a∣s) Qπθ(s,a),Qπθ(s,a)=r(s,a)+γ∑s′P(s′∣s,a) Vπθ(s′). V^{\pi_\theta}(s)=\sum_{a}\pi_\theta(a\mid s)\,Q^{\pi_\theta}(s,a), \quad Q^{\pi_\theta}(s,a)=r(s,a)+\gamma\sum_{s'}P(s'\mid s,a)\,V^{\pi_\theta}(s'). Vπθ(s)=a∑πθ(a∣s)Qπθ(s,a),Qπθ(s,a)=r(s,a)+γs′∑P(s′∣s,a)Vπθ(s′).
对第一式求梯度(注意 PPP 与 θ\thetaθ 无关):
∇θVπθ(s)=∑a∇θπθ(a∣s)⏟πθ(a∣s) ∇θlogπθ(a∣s) Qπθ(s,a)+γ∑aπθ(a∣s)∑s′P(s′∣s,a) ∇θVπθ(s′) (1) \boxed{ \;\nabla_\theta V^{\pi_\theta}(s) =\sum_{a}\underbrace{\nabla_\theta\pi_\theta(a\mid s)}_{\pi_\theta(a\mid s)\,\nabla_\theta\log\pi_\theta(a\mid s)}\,Q^{\pi_\theta}(s,a) +\gamma\sum_{a}\pi_\theta(a\mid s)\sum_{s'}P(s'\mid s,a)\,\nabla_\theta V^{\pi_\theta}(s')\; } \tag{1} ∇θVπθ(s)=a∑πθ(a∣s)∇θlogπθ(a∣s)∇θπθ(a∣s)Qπθ(s,a)+γa∑πθ(a∣s)s′∑P(s′∣s,a)∇θVπθ(s′)(1)
把它写得更紧凑些:
∇θVπθ(s)=Gθ(s)+γ Ea∼πθ,s′∼P[∇θVπθ(s′)], \nabla_\theta V^{\pi_\theta}(s) =G_\theta(s)+\gamma\,\mathbb{E}_{a\sim\pi_\theta,s'\sim P}\bigl[\nabla_\theta V^{\pi_\theta}(s')\bigr], ∇θVπθ(s)=Gθ(s)+γEa∼πθ,s′∼P[∇θVπθ(s′)],
其中
Gθ(s)=Ea∼πθ [∇θlogπθ(a∣s) Qπθ(s,a)]G_\theta(s)=\mathbb{E}_{a\sim\pi_\theta}\!\bigl[\nabla_\theta\log\pi_\theta(a\mid s)\,Q^{\pi_\theta}(s,a)\bigr]Gθ(s)=Ea∼πθ[∇θlogπθ(a∣s)Qπθ(s,a)].
关系 (1) 是一个 线性方程组:(I−γPπθ) ∇θV=Gθ(\mathbf I-\gamma\mathbf P^{\pi_\theta})\,\nabla_\theta V = G_\theta(I−γPπθ)∇θV=Gθ
理论上可以解出闭式,但实际采样时我们更喜欢把它递归展开
递归展开 → 轨迹形式
令 s0=ss_0=ss0=s,把 (1) 右侧第二项迭代代入,可得
∇θVπθ(s)=Gθ(s)+γ Es1 ∼ d1 [Gθ(s1)]+γ2Es2 ∼ d2 [Gθ(s2)]+…=Eπθ [∑t=0∞γt ∇θlogπθ(at∣st) Qπθ(st,at) ∣ s0=s]. \begin{aligned} \nabla_\theta V^{\pi_\theta}(s) &=G_\theta(s) +\gamma\,\mathbb{E}_{s_1\!\sim\!d_1}\!\bigl[G_\theta(s_1)\bigr] +\gamma^2\mathbb{E}_{s_2\!\sim\!d_2}\!\bigl[G_\theta(s_2)\bigr]+\dots \\ &=\mathbb{E}_{\pi_\theta}\!\Bigl[\sum_{t=0}^{\infty}\gamma^{t}\, \nabla_\theta\log\pi_\theta(a_t\mid s_t)\,Q^{\pi_\theta}(s_t,a_t)\,\Big|\,s_0=s\Bigr]. \end{aligned} ∇θVπθ(s)=Gθ(s)+γEs1∼d1[Gθ(s1)]+γ2Es2∼d2[Gθ(s2)]+…=Eπθ[t=0∑∞γt∇θlogπθ(at∣st)Qπθ(st,at)s0=s].
结论 A(完全体)
∇θVπθ(s)=Eτ∼πθ[∑t=0∞γt ∇θlogπθ(at∣st) Qπθ(st,at) ∣ s0=s] \boxed{\; \nabla_\theta V^{\pi_\theta}(s) =\mathbb{E}_{\tau\sim\pi_\theta}\Bigl[\sum_{t=0}^{\infty}\gamma^{t}\, \nabla_\theta\log\pi_\theta(a_t\mid s_t)\,Q^{\pi_\theta}(s_t,a_t)\;\Big|\;s_0=s\Bigr]} ∇θVπθ(s)=Eτ∼πθ[t=0∑∞γt∇θlogπθ(at∣st)Qπθ(st,at)s0=s]
这个式子与 Policy-Gradient Theorem 完全同型,只是把起点固定在给定状态 sss
用优势函数或回报替代 QQQ
-
优势函数 Aπ(s,a)=Qπ(s,a)−Vπ(s)A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s)Aπ(s,a)=Qπ(s,a)−Vπ(s):
∇θVπθ(s)=E[∑t=0∞γt ∇θlogπθ(at ∣ st) Aπθ(st,at)∣s0=s], \nabla_\theta V^{\pi_\theta}(s) =\mathbb{E}\Bigl[\sum_{t=0}^{\infty}\gamma^{t}\, \nabla_\theta\log\pi_\theta(a_t\!\mid\!s_t)\, A^{\pi_\theta}(s_t,a_t)\Bigm|s_0=s\Bigr], ∇θVπθ(s)=E[t=0∑∞γt∇θlogπθ(at∣st)Aπθ(st,at)s0=s],
方差更小,actor–critic 常用
-
蒙特卡罗回报 Rt=∑k=t∞γk−trkR_t=\sum_{k=t}^{\infty}\gamma^{k-t}r_kRt=∑k=t∞γk−trk:
若只能采样 RtR_tRt(REINFORCE 风格),可把 QQQ 换成 RtR_tRt 拿到无偏估计,但方差大
与全局目标 J(θ)J(\theta)J(θ) 的联系
若起始状态服从某分布 ρ0\rho_0ρ0,则
J(θ)=Es0∼ρ0[Vπθ(s0)]J(\theta)=\mathbb{E}_{s_0\sim\rho_0}[V^{\pi_\theta}(s_0)]J(θ)=Es0∼ρ0[Vπθ(s0)],
∇θJ(θ)=Es0∼ρ0[∇θVπθ(s0)], \nabla_\theta J(\theta)=\mathbb{E}_{s_0\sim\rho_0}\bigl[\nabla_\theta V^{\pi_\theta}(s_0)\bigr], ∇θJ(θ)=Es0∼ρ0[∇θVπθ(s0)],
把刚得到的 ∇θVπθ(s0)\nabla_\theta V^{\pi_\theta}(s_0)∇θVπθ(s0) 再取一次期望,就回到标准的策略梯度公式
实际实现要点
-
估计 ∇θlogπθ\nabla_\theta\log\pi_\theta∇θlogπθ
- 离散动作:softmax;连续动作:高斯策略常用封闭式梯度
-
估计 QQQ/AAA/VVV
- 单纯时间差分 (TD) 估计,或 GAE-λ(优势);
- 网络参数与 θ\thetaθ 共享或分离皆可,只要保持无偏梯度
-
可向量化实现
把同一条轨迹自回溯(或 gae 递归)就能一次构造 ∑tγt\sum_t\gamma^t∑tγt∇θlogπθ(⋅)\nabla_\theta\log\pi_\theta(\cdot)∇θlogπθ(⋅)*Return -
收敛性
若 critic 有偏差,把它看成控制方差-偏差权衡;在 PPO/TRPO 中通常加上信赖域或 clip,保证近似梯度仍可行
综上
在 policy gradient,得到 ∇θV(s)不难\nabla_\theta V(s)不难∇θV(s)不难:把基准状态固定为 s0=ss_0=ss0=s 即可
此外,附加Advantage 或 TD-style critic 能显著降低方差