RL策略梯度方法之(三): Off-Policy Policy Gradient算法

本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。


文章目录


原理解析

REINFORCE 和 一般的actor-critic方法 都是 on-policy训练样本 根据 目标策略 收集—— 即是我们试图优化的策略。然而,离线策略(Off-Policy)方法会带来一些额外的好处:

  • off-policy 方法不需要完整的轨迹,并且可以重用任何过去的片段 (“experience replay”) 以获得更好的采样效率。
  • 样本收集遵循与 目标策略 不同的 行为策略,从而带来更好的探索。

下面讲一下离线策略梯度是如何计算的。收集样本的行为策略是一个已知的策略(就像超参数一样预定义)记做: β ( a ∣ s ) \beta(a|s) β(as)。目标函数 对 行为策略所定义的在状态分布上的reward 进行求和:

J ( θ ) = ∑ s ∈ S d β ( s ) ∑ a ∈ A Q π ( s , a ) π θ ( a ∣ s ) = E s ∼ d β [ ∑ a ∈ A Q π ( s , a ) π θ ( a ∣ s ) ] J(\theta) = \sum_{s \in \mathcal{S}} d^\beta(s) \sum_{a \in \mathcal{A}} Q^\pi(s, a) \pi_\theta(a \vert s) = \mathbb{E}_{s \sim d^\beta} \big[ \sum_{a \in \mathcal{A}} Q^\pi(s, a) \pi_\theta(a \vert s) \big] J(θ)=sSdβ(s)aAQπ(s,a)πθ(as)=Esdβ[aAQπ(s,a)πθ(as)]

其中, d β ( s ) d^\beta(s) dβ(s) 是行为策略 β \beta β 的平稳分布,回顾一下: d β ( s ) = lim ⁡ t → ∞ P ( S t = s ∣ S 0 , β ) d^\beta(s) = \lim_{t \to \infty} P(S_t = s \vert S_0, \beta) dβ(s)=limtP(St=sS0,β) Q π Q^\pi Qπ 是关于目标策略 π \pi π(而不是行为策略) 估计的动作值函数。

假设训练观察值由 a ∼ β ( a ∣ s ) a \sim \beta(a \vert s) aβ(as) 采样,我们可以把梯度重写为:

∇ θ J ( θ ) = ∇ θ E s ∼ d β [ ∑ a ∈ A Q π ( s , a ) π θ ( a ∣ s ) ] = E s ∼ d β [ ∑ a ∈ A ( Q π ( s , a ) ∇ θ π θ ( a ∣ s ) + π θ ( a ∣ s ) ∇ θ Q π ( s , a ) ) ] ; 导数乘积法则. ≈ ( i ) E s ∼ d β [ ∑ a ∈ A Q π ( s , a ) ∇ θ π θ ( a ∣ s ) ] ; 忽略红色部分:  π θ ( a ∣ s ) ∇ θ Q π ( s , a ) . = E s ∼ d β [ ∑ a ∈ A β ( a ∣ s ) π θ ( a ∣ s ) β ( a ∣ s ) Q π ( s , a ) ∇ θ π θ ( a ∣ s ) π θ ( a ∣ s ) ] = E β [ π θ ( a ∣ s ) β ( a ∣ s ) Q π ( s , a ) ∇ θ ln ⁡ π θ ( a ∣ s ) ] ; 蓝色部分是重要性权重. \begin{aligned} \nabla_\theta J(\theta) &= \nabla_\theta \mathbb{E}_{s \sim d^\beta} \Big[ \sum_{a \in \mathcal{A}} Q^\pi(s, a) \pi_\theta(a \vert s) \Big] & \\ &= \mathbb{E}_{s \sim d^\beta} \Big[ \sum_{a \in \mathcal{A}} \big( Q^\pi(s, a) \nabla_\theta \pi_\theta(a \vert s) + \color{red}{\pi_\theta(a \vert s) \nabla_\theta Q^\pi(s, a)} \big) \Big] & \scriptstyle{\text{; 导数乘积法则.}}\\ &\stackrel{(i)}{\approx} \mathbb{E}_{s \sim d^\beta} \Big[ \sum_{a \in \mathcal{A}} Q^\pi(s, a) \nabla_\theta \pi_\theta(a \vert s) \Big] & \scriptstyle{\text{; 忽略红色部分: } \color{red}{\pi_\theta(a \vert s) \nabla_\theta Q^\pi(s, a)}}. \\ &= \mathbb{E}_{s \sim d^\beta} \Big[ \sum_{a \in \mathcal{A}} \beta(a \vert s) \frac{\pi_\theta(a \vert s)}{\beta(a \vert s)} Q^\pi(s, a) \frac{\nabla_\theta \pi_\theta(a \vert s)}{\pi_\theta(a \vert s)} \Big] & \\ &= \mathbb{E}_\beta \Big[\frac{\color{blue}{\pi_\theta(a \vert s)}}{\color{blue}{\beta(a \vert s)}} Q^\pi(s, a) \nabla_\theta \ln \pi_\theta(a \vert s) \Big] & \scriptstyle{\text{; 蓝色部分是重要性权重.}} \end{aligned} θJ(θ)=θEsdβ[aAQπ(s,a)πθ(as)]=Esdβ[aA(Qπ(s,a)θπθ(as)+πθ(as)θQπ(s,a))](i)Esdβ[aAQπ(s,a)θπθ(as)]=Esdβ[aAβ(as)β(as)πθ(as)Qπ(s,a)πθ(as)θπθ(as)]=Eβ[β(as)πθ(as)Qπ(s,a)θlnπθ(as)]导数乘积法则.忽略红色部分πθ(as)θQπ(s,a).蓝色部分是重要性权重.

因为 Q π Q^{\pi} Qπ 是目标策略的函数,因此也是策略参数 θ \theta θ 的函数,所以根据乘积法则求出导数: ∇ θ Q π ( s , a ) \nabla_\theta Q^\pi(s, a) θQπ(s,a);事实上,计算它非常难。幸运的是,如果我们使用一个不考虑 Q Q Q 的梯度的近似梯度,我们仍然保证了策略的改进,最终达到真正的局部最小值。这可以在 Off-Policy Actor-Critic (Degris, White & Sutton, 2012) 得到验证。

总的来说,当使用 离线策略 应用策略梯度的时候,我们可以简单使用一个加权和,即目标策略和行为策略的比值: π θ ( a ∣ s ) β ( a ∣ s ) \frac{\pi_\theta(a \vert s)}{\beta(a \vert s)} β(as)πθ(as)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值