Reinforcement Learning 2

1. 两种Policy

Policy Based的强化学习有两种训练方法:

  • On-policy,要学的Agent边学边玩
  • Off-policy,要学的Agent看别人玩

前文讲解的Policy Gradient其实是On-policy的做法,这理解起来很直观:

∇ R ˉ θ = E τ ∼ P θ ( τ ) [ R ( τ ) ∇ l o g ( P θ ( τ ) ) ] \nabla\bar{R}_\theta = E_{\tau\thicksim P_\theta(\tau)}[R(\tau)\nabla log(P_\theta(\tau))] Rˉθ=EτPθ(τ)[R(τ)log(Pθ(τ))]

  • 使用 π θ \pi_\theta πθ来收集数据。当 θ \theta θ被更新之后,必须重新采样数据。故Policy Gradient需要大量的时间去训练数据

而Off-Policy得目标是:使用 π θ ′ \pi_{\theta^{'}} πθ收集得样本来训练 θ \theta θ,由于 π θ ′ \pi_{\theta^{'}} πθ是固定的,故可以反复使用它采集数据。

2. Importance Sampling

  • 在Policy Gradient中,玩一轮游戏可能得全局期望为:

    E x ∼ p [ f ( x ) ] ≈ 1 N ∑ i = 1 N f ( x i ) E_{x\thicksim p}[f(x)] \approx \frac{1}{N}\sum_{i=1}^Nf(x^i) Exp[f(x)]N1i=1Nf(xi)

    • x i x^i xi p ( x ) p(x) p(x)中采样,取平均值近似期望。
  • 这里的 p ( x ) p(x) p(x)即为某一个 τ \tau τ出现的概率,当充分采样时,其概率近似 1 N \frac{1}{N} N1

  • 那么假设不从 p ( x ) p(x) p(x)中采集数据,而是从 q ( x ) q(x) q(x)中采集数据且 q ( x ) q(x) q(x)可以是任意得形式,那么可否用从 q ( x ) q(x) q(x)中采集的数据训练 p ( x ) p(x) p(x)下的模型,从而避免多次和环境交互的过程呢?理论上是可行的,涉及到的方法就是重要性采样:

    E x ∼ p [ f ( x ) ] = ∫ f ( x ) p ( x ) d x = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] E_{x \thicksim p}[f(x)] \\ = \int f(x)p(x)dx \\ = \int f(x)\frac{p(x)}{q(x)}q(x)dx \\ = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}] Exp[f(x)]=f(x)p(x)dx=f(x)q(x)p(x)q(x)dx=Exq[f(x)q(x)p(x)]

    • 通过巧妙地转换,使得从从 q ( x ) q(x) q(x)中采集的样本获得总期望和 p ( x ) p(x) p(x)下的相等,只是 f ( x ) f(x) f(x)多了一个权重 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x)
    • 所以即使不能从 p ( x ) p(x) p(x)中采样数据,也可以通过从 q ( x ) q(x) q(x)中采样来获取期望
  • 理论上, q ( x ) q(x) q(x)可以采用任何形式的分布,但实际上 q ( x ) q(x) q(x)不能和 p ( x ) p(x) p(x)相差太多,否则还是会出现问题,我们可以通过比较两个期望的方差来得到这一结论

    • 我们通过重要性得到如下等式:

      E x ∼ p [ f ( x ) ] = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}] Exp[f(x)]=Exq[f(x)q(x)p(x)]

    • 那么,我们现在计算它们的方差,方差的计算公式为: V a r ( x ) = E ( x 2 ) − [ E ( x ) ] 2 Var(x) = E(x^2) - [E(x)]^2 Var(x)=E(x2)[E(x)]2

      • V a r x ∼ p [ f ( x ) ] = E x ∼ p [ f ( x ) 2 ] − ( E x ∼ p [ f ( x ) ] ) 2 Var_{x \thicksim p}[f(x)] = E_{x \thicksim p}[f(x)^2] - (E_{x \thicksim p}[f(x)])^2 Varxp[f(x)]=Exp[f(x)2](Exp[f(x)])2
      • V a r x ∼ q [ f ( x ) p ( x ) q ( x ) ] = E x ∼ q [ ( f ( x ) p ( x ) q ( x ) ) 2 ] − E x ∼ q [ f ( x ) p ( x ) q ( x ) ] 2 = E x ∼ p [ f ( x ) 2 p ( x ) q ( x ) ] − ( E x ∼ p [ f ( x ) ] ) 2 Var_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}] = E_{x \thicksim q}[(f(x)\frac{p(x)}{q(x)})^2] - E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}]^2 = E_{x \thicksim p}[f(x)^2\frac{p(x)}{q(x)}] - (E_{x \thicksim p}[f(x)])^2 Varxq[f(x)q(x)p(x)]=Exq[(f(x)q(x)p(x))2]Exq[f(x)q(x)p(x)]2=Exp[f(x)2q(x)p(x)](Exp[f(x)])2
    • 通过对比可以发现,上面两个公式的第二项是相同的,所以最影响方差的出现在第一项的。当 p ( x ) p(x) p(x) q ( x ) q(x) q(x)的差距很大时,会导致第一项中的权重系数 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x)变化剧烈,这就导致方差严重不同。

    • 所以,当从 p ( x ) p(x) p(x) q ( x ) q(x) q(x)采样次数足够多时,那么 E x ∼ p [ f ( x ) ] = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}] Exp[f(x)]=Exq[f(x)q(x)p(x)]还是成立的;但当采样次数不够多的时候,由于从 p ( x ) p(x) p(x)采样和从 q ( x ) q(x) q(x)采样方差相差过大,那么等式相等难以成立。

  • 让我们举一个通俗易懂的例子来解释这件事,如下图
    Reinforcement Learning 2_第1张图片

    • 图中,黑线横轴上方 f ( x ) f(x) f(x)值为正,下方为负。 p ( x ) p(x) p(x) q ( x ) q(x) q(x)都是长尾分布,所以直观上它们本身的方差就很大
    • 当从 p ( x ) p(x) p(x)中采样时,高概率采集的样本 f ( x ) f(x) f(x)都是在黑线横轴下方的,故期望值应该为负数;而从 q ( x ) q(x) q(x)中采样时,高概率采集的样本 f ( x ) f(x) f(x)值为正,故期望值应该为正数。
    • 这就说明如果 p ( x ) p(x) p(x) q ( x ) q(x) q(x)相差过大,那么重要性采样在采样不充分的情况下会导致 E x ∼ p [ f ( x ) ] = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}] Exp[f(x)]=Exq[f(x)q(x)p(x)]不成立。

3. On Policy to Off-Policy

在On policy的形式下,原始的策略梯度形式为:

∇ R ˉ θ = E τ ∼ P θ ( τ ) [ R ( τ ) ∇ l o g ( P θ ( τ ) ) ] \nabla\bar{R}_\theta = E_{\tau\thicksim P_\theta(\tau)}[R(\tau)\nabla log(P_\theta(\tau))] Rˉθ=EτPθ(τ)[R(τ)log(Pθ(τ))]

那么在加入了重要性采样的方法后,该策略梯度就变成了Off policy的形式,如下:

∇ R ˉ θ = E τ ∼ P θ ′ ( τ ) [ P θ ( τ ) P θ ′ ( τ ) R ( τ ) ∇ l o g ( P θ ( τ ) ) ] \nabla\bar{R}_\theta = E_{\tau\thicksim P_{\theta^{'}}(\tau)}[\frac{P_\theta(\tau)}{P_{\theta^{'}}(\tau)}R(\tau)\nabla log(P_\theta(\tau))] Rˉθ=EτPθ(τ)[Pθ(τ)Pθ(τ)R(τ)log(Pθ(τ))]

这里让 θ ′ \theta^{'} θ作为Actor与环境做互动,给 θ \theta θ做榜样,从而帮助 θ \theta θ采集大量的训练数据。在Off Policy下,当前训练的Actor就无需时刻与环境做互动从而获得训练数据,可通过 θ ′ \theta^{'} θ所代表的Actor与环境做互动拿到的数据更新 θ \theta θ即可。

参考资料:台大李宏毅强化学习。推荐本文和宝可梦大师的现场教学一起食用,效果更佳~

本文为作者原创,转载需注明出处!

你可能感兴趣的:(强化学习)