强化学习策略梯度推导
本文主角:
∇θJ(θ)∝∑s∈Sμπθ(s)∑a∈AQπθ(s,a)∇θπθ(a∣s)\nabla_{\theta}J(\theta) \propto \sum_{s \in \mathcal{S}} \mu^{\pi_{\theta}}(s) \sum_{a \in \mathcal{A}} Q^{\pi_{\theta}}(s, a) \nabla_{\theta}\pi_{\theta}(a|s)∇θJ(θ)∝∑s∈Sμπθ(s)∑a∈AQπθ(s,a)∇θπθ(a∣s)
这个公式是策略梯度定理的表述,它表明一个策略的性能梯度(即优化目标函数J(θ)J(\theta)J(θ)的梯度)与在该策略下各状态的访问频率μπθ(s)\mu^{\pi_{\theta}}(s)μπθ(s),以及在这些状态下,采取不同动作的价值Qπθ(s,a)Q^{\pi_{\theta}}(s, a)Qπθ(s,a)和采取这些动作的策略概率的梯度∇θπθ(a∣s)\nabla_{\theta}\pi_{\theta}(a|s)∇θπθ(a∣s)的乘积之和成正比。
在强化学习中,这个公式是用来指导如何调整策略参数θ\thetaθ,以便最大化长期奖励。通过梯度上升算法,我们可以改善策略,使得在高价值QQQ下采取的动作更加频繁,从而提高整体策略的期望回报。

下面是完整推导:
-
定义状态值函数的梯度:
∇θVπ(s)=∇θ(∑a∈Aπ(a∣s)Qπ(s,a))\nabla_{\theta}V^{\pi}(s) = \nabla_{\theta}\left(\sum_{a \in A} \pi(a|s)Q^{\pi}(s, a)\right)∇θVπ(s)=∇θ(∑a∈Aπ(a∣s)Qπ(s,a))
这一步基于状态值函数Vπ(s)V^{\pi}(s)Vπ(s)的定义,即给定策略π\piπ下,在状态sss采取所有可能动作aaa的期望回报的总和。这里,π(a∣s)\pi(a|s)π(a∣s)是在状态sss下选择动作aaa的策略概率,而Qπ(s,a)Q^{\pi}(s, a)Qπ(s,a)是执行动作aaa并遵循策略π\piπ的期望回报。 -
应用梯度和乘积规则:
=∑a∈A(∇θπ(a∣s)Qπ(s,a)+π(a∣s)∇θQπ(s,a))= \sum_{a \in A}\left(\nabla_{\theta}\pi(a|s)Q^{\pi}(s, a) + \pi(a|s)\nabla_{\theta}Q^{\pi}(s, a)\right)=∑a∈A(∇θπ(a∣s)Qπ(s,a)+π(a∣s)∇θQπ(s,a))
这一步通过应用梯度运算符和乘积规则(∇(xy)=x∇y+y∇x\nabla(xy) = x\nabla y + y\nabla x∇(xy)=x∇y+y∇x)来分解每个项。第一项考虑了策略π(a∣s)\pi(a|s)π(a∣s)对参数θ\thetaθ的直接依赖,而第二项考虑了行为值函数Qπ(s,a)Q^{\pi}(s, a)Qπ(s,a)对θ\thetaθ的依赖。 -
行为值函数的梯度展开:
=∑a∈A(∇θπ(a∣s)Qπ(s,a)+π(a∣s)∇θ∑s′,rP(s′,r∣s,a)(r+γVπ(s′)))= \sum_{a \in A}\left(\nabla_{\theta}\pi(a|s)Q^{\pi}(s, a) + \pi(a|s)\nabla_{\theta}\sum_{s', r}P(s', r|s, a)\left(r + \gamma V^{\pi}(s')\right)\right)=∑a∈A(∇θπ(a∣s)Qπ(s,a)+π(a∣s)∇θ∑s′,rP(s′,r∣s,a)(r+γVπ(s′)))
这里将Qπ(s,a)Q^{\pi}(s, a)Qπ(s,a)按其定义展开,即为给定状态sss和动作aaa后的即时奖励rrr加上折扣后的未来奖励的期望值。梯度作用于整个表达式,注意到rrr和γ\gammaγ是常数,梯度只作用于Vπ(s′)V^{\pi}(s')Vπ(s′)。 -
简化即时奖励的影响:
=∑a∈A(∇θπ(a∣s)Qπ(s,a)+γπ(a∣s)∑s′,rP(s′,r∣s,a)∇θVπ(s′))= \sum_{a \in A}\left(\nabla_{\theta}\pi(a|s)Q^{\pi}(s, a) + \gamma\pi(a|s)\sum_{s', r}P(s', r|s, a)\nabla_{\theta}V^{\pi}(s')\right)=∑a∈A(∇θπ(a∣s)Qπ(s,a)+γπ(a∣s)∑s′,rP(s′,r∣s,a)∇θVπ(s′))
在这一步中,即时奖励rrr被省略,因为它不依赖于θ\thetaθ,因此其梯度为零。只有未来奖励的部分,即γVπ(s′)\gamma V^{\pi}(s')γVπ(s′),对θ\thetaθ有依赖,因此梯度只作用于这部分。 -
进一步简化概率项:
=∑a∈A(∇θπ(a∣s)Qπ(s,a)+γπ(a∣s)∑s′P(s′∣s,a)∇θVπ(s′))= \sum_{a \in A}\left(\nabla_{\theta}\pi(a|s)Q^{\pi}(s, a) + \gamma\pi(a|s)\sum_{s'}P(s'|s, a)\nabla_{\theta}V^{\pi}(s')\right)=∑a∈A(∇θπ(a∣s)Qπ(s,a)+γπ(a∣s)∑s′P(s′∣s,a)∇θVπ(s′))
- 从策略梯度的定义开始:
∇θVπ(s)=ϕ(s)+γ∑aπ(a∣s)∑s′P(s′∣s,a)∇θVπ(s′)\nabla_{\theta}V^{\pi}(s) = \phi(s) + \gamma\sum_{a} \pi(a|s)\sum_{s'}P(s'|s, a)\nabla_{\theta}V^{\pi}(s')∇θVπ(s)=ϕ(s)+γ∑aπ(a∣s)∑s′P(s′∣s,a)∇θVπ(s′)
这里,ϕ(s)=∑a∈A∇θπθ(a∣s)Qπθ(s,a)\phi(s)= \sum_{a \in A} \nabla_{\theta}\pi_{\theta}(a|s)Q^{\pi_{\theta}}(s, a)ϕ(s)=∑a∈A∇θπθ(a∣s)Qπθ(s,a)代表了状态sss的特征向量,它是策略梯度的一部分。接着,考虑了在当前策略下,从状态sss采取动作aaa转移到状态s′s's′的概率,以及从状态s′s's′开始并遵循策略π\piπ的状态值函数的梯度。 - 展开状态值函数的梯度:
∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)∇θVπ(s′)\nabla_{\theta}V^{\pi}(s) = \phi(s) + \gamma\sum_{s'} d^{\pi}(s \rightarrow s', 1)\nabla_{\theta}V^{\pi}(s')∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)∇θVπ(s′)
dπ(s→s′,1)d^{\pi}(s \rightarrow s', 1)dπ(s→s′,1)表示在一步转移中从状态sss到状态s′s's′的折扣后的状态转移概率。它是一个概率分布,考虑了所有可能的动作。 - 递归地展开状态值函数的梯度:
∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)ϕ(s′)+γ2∑s′′dπ(s→s′′,2)∇θVπ(s′′)\nabla_{\theta}V^{\pi}(s) = \phi(s) + \gamma\sum_{s'} d^{\pi}(s \rightarrow s', 1)\phi(s') + \gamma^2\sum_{s''} d^{\pi}(s \rightarrow s'', 2)\nabla_{\theta}V^{\pi}(s'')∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)ϕ(s′)+γ2∑s′′dπ(s→s′′,2)∇θVπ(s′′)
这一步递归地应用了上一步的逻辑,但这次是对两步转移后的状态s′′s''s′′。这表明每一步都会增加一个更深层次的期望和一个更高的折扣因子γ\gammaγ。 - 继续无限递归:
∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)ϕ(s′)+γ2∑s′′dπ(s→s′′,2)ϕ(s′′)+…\nabla_{\theta}V^{\pi}(s) = \phi(s) + \gamma\sum_{s'} d^{\pi}(s \rightarrow s', 1)\phi(s') + \gamma^2\sum_{s''} d^{\pi}(s \rightarrow s'', 2)\phi(s'') + \ldots∇θVπ(s)=ϕ(s)+γ∑s′dπ(s→s′,1)ϕ(s′)+γ2∑s′′dπ(s→s′′,2)ϕ(s′′)+…
推导继续进行,考虑到所有可能的未来状态和它们对应的特征向量,乘以它们的转移概率和适当的折扣因子。 - 总结为无限和:
∇θVπ(s)=∑x∈S∑k=0∞γkdπ(s→x,k)ϕ(x)\nabla_{\theta}V^{\pi}(s) = \sum_{x \in S}\sum_{k=0}^{\infty}\gamma^k d^{\pi}(s \rightarrow x, k)\phi(x)∇θVπ(s)=∑x∈S∑k=0∞γkdπ(s→x,k)ϕ(x)
最后一步是将所有无限递归的项总结为一个无限序列和。这里dπ(s→x,k)d^{\pi}(s \rightarrow x, k)dπ(s→x,k)是从状态sss到状态xxx在kkk步内的折扣后的转移概率。这个无限和形式的期望值是对状态值函数的梯度的完整描述。
-
目标函数的梯度:
∇θJ(θ)=∇θEs0[Vπθ(s0)]\nabla_{\theta}J(\theta) = \nabla_{\theta} \mathbb{E}_{s_0}[V^{\pi_{\theta}}(s_0)]∇θJ(θ)=∇θEs0[Vπθ(s0)]
这一步定义了目标函数J(θ)J(\theta)J(θ)作为初始状态s0s_0s0下的状态值函数Vπθ(s0)V^{\pi_{\theta}}(s_0)Vπθ(s0)的期望值的梯度。 -
引入状态转移概率:
=∑sEs0[∑k=0∞γkdπθ(s0→s,k)]ϕ(s)= \sum_s \mathbb{E}_{s_0} \left[ \sum_{k=0}^{\infty} \gamma^k d^{\pi_{\theta}}(s_0 \rightarrow s, k) \right] \phi(s)=∑sEs0[∑k=0∞γkdπθ(s0→s,k)]ϕ(s)
此处,将目标函数中的期望展开,包含从初始状态s0s_0s0到任意状态sss的折扣转移概率dπθ(s0→s,k)d^{\pi_{\theta}}(s_0 \rightarrow s, k)dπθ(s0→s,k),乘以状态sss的特征向量ϕ(s)\phi(s)ϕ(s)。每个状态的特征向量与它被访问的概率加权求和。 -
引入状态分布η(s)\eta(s)η(s):
=∑sη(s)ϕ(s)= \sum_s \eta(s) \phi(s)=∑sη(s)ϕ(s)
这里,η(s)\eta(s)η(s)是在策略πθ\pi_{\theta}πθ下访问状态sss的稳态分布。它是从任何初始状态出发,经过无限步骤后到达状态sss的概率。 -
状态分布的规范化:
∝∑sη(s)∑s′η(s′)ϕ(s)\propto \sum_s \frac{\eta(s)}{\sum_{s'} \eta(s')} \phi(s)∝∑s∑s′η(s′)η(s)ϕ(s)
这一步表明状态分布被规范化了,使得所有状态的分布之和为1。这是为了将状态分布转化为概率分布。 -
使用η(s)\eta(s)η(s)的定义:
=∑sμ(s)∑aQπθ(s,a)∇θπθ(a∣s)= \sum_s \mu(s) \sum_a Q^{\pi_{\theta}}(s, a) \nabla_{\theta} \pi_{\theta}(a|s)=∑sμ(s)∑aQπθ(s,a)∇θπθ(a∣s)
最终,我们得到了策略梯度定理的标准形式。这里μ(s)\mu(s)μ(s)代表状态sss在策略πθ\pi_{\theta}πθ下的访问频率,而Qπθ(s,a)Q^{\pi_{\theta}}(s, a)Qπθ(s,a)是在状态sss下采取动作aaa的行为值函数。梯度∇θπθ(a∣s)\nabla_{\theta} \pi_{\theta}(a|s)∇θπθ(a∣s)表示策略对参数的依赖性。
更多推荐
所有评论(0)