Skip to content

Policy Gradient Theorem 的证明 ​

如今,强化学习基本都采用参数化的神经网络来学习一个策略,而神经网络一般是通过梯度下降法或者各种变种来优化的,因此,获取累积回报关于策略的梯度至关重要。本节会推导策略梯度的表达式,并介绍实际训练中如何采样近似该表达式。

首先引入动作价值函数的定义:

Qπ(st,at)=Est+1,at+1,…[∑l=0∞γlrt+l]

即在状态 st 下采用动作 at 后,后续动作服从策略 π 的情况下的累积期望回报,其中 γ∈(0,1) 是折扣因子。

接着,将策略梯度的计算过程详细展开:

∇θJ(θ)=∇θVπ(s0)=∇θ[∑a0π(a0∣s0)Qπ(s0,a0)]=∑a0[∇θπ(a0∣s0)Qπ(s0,a0)+π(a0∣s0)∇θQπ(s0,a0)]=∑a0[∇θπ(a0∣s0)Qπ(s0,a0)+π(a0∣s0)∇θ∑s1,r1p(s1,r1∣s0,a0)(r1+γVπ(s1))]=∑a0∇θπ(a0∣s0)Qπ(s0,a0)+∑a0π(a0∣s0)∑s1p(s1∣s0,a0)γ∇θVπ(s1)=∑a0∇θπ(a0∣s0)Qπ(s0,a0)+∑a0π(a0∣s0)∑s1p(s1∣s0,a0)γ∑a1∇θπ(a1∣s1)Qπ(s1,a1)+∑a0π(a0∣s0)∑s1p(s1∣s0,a0)γ∑a1π(a1∣s1)∑s2p(s2∣s1,a1)γ∇θVπ(s2)=∑a0∇θπ(a0∣s0)Qπ(s0,a0)+∑a0π(a0∣s0)∑s1p(s1∣s0,a0)γ∑a1∇θπ(a1∣s1)Qπ(s1,a1)+⋯=∑s0Pr(s0→s0,0,π)∑a0∇θπ(a0∣s0)γ0Qπ(s0,a0)+∑s1Pr(s0→s1,1,π)∑a1∇θπ(a1∣s1)γ1Qπ(s1,a1)+⋯=∑s0Pr(s0→s0,0,π)∑a0π(a0∣s0)[γ0Qπ(s0,a0)∇θlog⁡π(a0∣s0)]+∑s1Pr(s0→s1,1,π)∑a1π(a1∣s1)[γ1Qπ(s1,a1)∇θlog⁡π(a1∣s1)]+⋯=∑t=0∞∑stPr(s0→st,t,π)∑atπ(at∣st)[γtQπ(st,at)∇θlog⁡π(at∣st)]

其中 Pr(s0→st,t,π) 代表从状态 s0 出发,按照策略 π 与环境交互(rollout),在 t 时刻到达状态 st 的概率。

通过上述推导,就得到了无限长时间步下的策略梯度表达式。对于有限长时间步的环境,可以做一个简单的转化使其同样适用上述公式。假设时间步长度为 T,对于所有可能出现在最后一步的状态 sT−1,定义:

  1. 从 sT−1 出发,不论采取什么动作,一定会跳转到一个虚拟的吸收态 sT,并返回奖励值 0。
  2. 从 sT 出发,不论采取什么动作,一定会跳转回这个虚拟的吸收态 sT,并返回奖励值 0。

由此将有限长的时间步扩展到了无限长,因为环境会陷入到 sT 的死循环中。

不过,上式实际上很难优化,因为它要求遍历整个状态空间和时间步空间,计算每个时间步上到达每个状态的概率。一方面,这在计算成本上无法容忍;另一方面,在绝大多数情况下无法获得环境的转移概率,因此无法计算特定时间步下整个状态空间上的概率分布。

为此,可以使用 Monte Carlo 方法,通过采样来逼近上面的策略梯度公式。先把上式转化为期望的形式:

∑t=0∞∑stPr(s0→st,t,π)∑atπ(at∣st)[γtQπ(st,at)∇θlog⁡π(at∣st)]=∑t=0∞Est∑atπ(at∣st)[γtQπ(st,at)∇θlog⁡π(at∣st)]=∑t=0∞Est,at[γtQπ(st,at)∇θlog⁡π(at∣st)]=Es0,a0,s1,a1,…∑t=0∞[γtQπ(st,at)∇θlog⁡π(at∣st)]=Eτ∑t=0∞[γtQπ(st,at)∇θlog⁡π(at∣st)]

其中 τ=[s0,a0,s1,a1,…] 是按照策略 π rollout 出来的状态动作轨迹。可以看出,将 γtQπ(st,at)∇θlog⁡π(at∣st) 这一项先在时间步 t 上求和,再关于轨迹 τ 取期望,就得到了策略梯度。至此,Monte Carlo 方法就可以很简单地结合进来:先将 Eτ 替换为采样 N 条轨迹 [τ1,…,τN],并定义其中第 n 条轨迹为

τn=⟨s0n,a0n,r0n,…,sTn−1n,aTn−1n,rTn−1n⟩,

轨迹长度为 Tn。最后对结果取平均:

Eτ∑t=0∞[γtQπ(st,at)∇θlog⁡π(at∣st)]=1N∑n=1N∑t=0Tn−1[γtQπ(stn,atn)∇θlog⁡π(atn∣stn)]

注意到

Qπ(stn,atn)=Est+1n,at+1n,st+2n,at+2n,…∣stn,atn[∑l=tTn−1γl−trln],

因此从期望角度二者也是可以替换的。当算法没有显式地估计 Qπ(stn,atn) 时,可以定义

Gt(τn)=∑l=tTn−1γl−trln,

即最朴素的回报,并用它替换 Qπ(stn,atn),就得到实际使用的策略梯度公式:

1N∑n=1N∑t=0Tn−1[γtGt(τn)∇θlog⁡π(atn∣stn)]

Maintained by Robin