(可选) 策略梯度定理
在这一可选部分中,我们将研究如何微分我们用来近似策略梯度的目标函数。
首先,让我们回顾我们的不同公式
- 目标函数
- 给定动作来自πθ):
因此,我们有∇θJ(θ)=∇θ∑τP(τ;θ)R(τ)
我们可以将和的梯度改写成梯度的和=∑τ∇θ(P(τ;θ)R(τ))=∑τ∇θP(τ;θ)R(τ)如下R(τ)与θ
然后我们用P(τ;θ)P(τ;θ)对总和中的每项乘以 (由于它 = 1,因此是可能的)=∑τP(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)
我们鉴于以下情况可以进一步将其简化P(τ;θ)P(τ;θ)∇θP(τ;θ)=P(τ;θ)P(τ;θ)∇θP(τ;θ).
因此我们可以将该和式重写为P(τ;θ)P(τ;θ)∇θP(τ;θ)=∑τP(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)
我们可以使用导数的对数技巧(也叫似然比技巧或REINFORCE技巧),它是一个微积分中的简单规则,这意味着∇xlogf(x)=f(x)∇xf(x)
因此,我们拥有P(τ;θ)∇θP(τ;θ)我们将其转化为∇θlogP(τ∣θ)
所以这是我们的似然策略梯度∇θJ(θ)=∑τP(τ;θ)∇θlogP(τ;θ)R(τ)
感谢您提供此新公式,我们可以使用轨迹样本估算梯度(如果您愿意,可以使用基于样本的估计来近似似然比策略梯度)。∇θJ(θ)=m1∑i=1m∇θlogP(τ(i);θ)R(τ(i))其中每个τ(i)是抽样轨迹。
但是我们仍然需要进行一些数学上的工作:我们需要简化∇θlogP(τ∣θ)
我们知道∇θlogP(τ(i);θ)=∇θlog[μ(s0)∏t=0HP(st+1(i)∣st(i),at(i))πθ(at(i)∣st(i))]
其中μ(s0)是初始状态分布P(st+1(i)∣st(i),at(i))是 MDP 的状态转移动力学。
我们知道,一个连乘的的对数等于各对数的和∇θlogP(τ(i);θ)=∇θ[logμ(s0)+t=0∑HlogP(st+1(i)∣st(i)at(i))+t=0∑Hlogπθ(at(i)∣st(i))]
我们还知道,一个求和的梯度等于各梯度的和∇θlogP(τ(i);θ)=∇θlogμ(s0)+∇θt=0∑HlogP(st+1(i)∣st(i)at(i))+∇θt=0∑Hlogπθ(at(i)∣st(i))
既然 MDP 的初始状态分布和状态转移动力学都不知道θ,那么两项的导数为 0。因此,我们可以去掉它们
因为∇θ∑t=0HlogP(st+1(i)∣st(i)at(i))=0和∇θμ(s0)=0 ∇θlogP(τ(i);θ)=∇θ∑t=0Hlogπθ(at(i)∣st(i))
我们可以将总体的梯度改写为梯度的和∇θlogP(τ(i);θ)=∑t=0H∇θlogπθ(at(i)∣st(i))
因此,用于估计策略梯度的最终公式为∇θJ(θ)=g^=m1∑i=1m∑t=0H∇θlogπθ(at(i)∣st(i))R(τ(i))
< > 更新 GitHub