1. 两种Policy
Policy Based的强化学习有两种训练方法:
- On-policy,要学的Agent边学边玩
- Off-policy,要学的Agent看别人玩
前文讲解的Policy Gradient其实是On-policy的做法,这理解起来很直观:
∇Rˉθ=Eτ∼Pθ(τ)[R(τ)∇log(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中,玩一轮游戏可能得全局期望为:
Ex∼p[f(x)]≈1N∑i=1Nf(xi)E_{x\thicksim p}[f(x)] \approx \frac{1}{N}\sum_{i=1}^Nf(x^i)Ex∼p[f(x)]≈N1i=1∑Nf(xi)
- xix^ixi从p(x)p(x)p(x)中采样,取平均值近似期望。
-
这里的p(x)p(x)p(x)即为某一个τ\tauτ出现的概率,当充分采样时,其概率近似1N\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)下的模型,从而避免多次和环境交互的过程呢?理论上是可行的,涉及到的方法就是重要性采样:
Ex∼p[f(x)]=∫f(x)p(x)dx=∫f(x)p(x)q(x)q(x)dx=Ex∼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)}]Ex∼p[f(x)]=∫f(x)p(x)dx=∫f(x)q(x)p(x)q(x)dx=Ex∼q[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)相差太多,否则还是会出现问题,我们可以通过比较两个期望的方差来得到这一结论
-
我们通过重要性得到如下等式:
Ex∼p[f(x)]=Ex∼q[f(x)p(x)q(x)]E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}]Ex∼p[f(x)]=Ex∼q[f(x)q(x)p(x)]
-
那么,我们现在计算它们的方差,方差的计算公式为:Var(x)=E(x2)−[E(x)]2Var(x) = E(x^2) - [E(x)]^2Var(x)=E(x2)−[E(x)]2
- Varx∼p[f(x)]=Ex∼p[f(x)2]−(Ex∼p[f(x)])2Var_{x \thicksim p}[f(x)] = E_{x \thicksim p}[f(x)^2] - (E_{x \thicksim p}[f(x)])^2Varx∼p[f(x)]=Ex∼p[f(x)2]−(Ex∼p[f(x)])2
- Varx∼q[f(x)p(x)q(x)]=Ex∼q[(f(x)p(x)q(x))2]−Ex∼q[f(x)p(x)q(x)]2=Ex∼p[f(x)2p(x)q(x)]−(Ex∼p[f(x)])2Var_{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)])^2Varx∼q[f(x)q(x)p(x)]=Ex∼q[(f(x)q(x)p(x))2]−Ex∼q[f(x)q(x)p(x)]2=Ex∼p[f(x)2q(x)p(x)]−(Ex∼p[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)采样次数足够多时,那么Ex∼p[f(x)]=Ex∼q[f(x)p(x)q(x)]E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}]Ex∼p[f(x)]=Ex∼q[f(x)q(x)p(x)]还是成立的;但当采样次数不够多的时候,由于从p(x)p(x)p(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)都是长尾分布,所以直观上它们本身的方差就很大
- 当从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)相差过大,那么重要性采样在采样不充分的情况下会导致Ex∼p[f(x)]=Ex∼q[f(x)p(x)q(x)]E_{x \thicksim p}[f(x)] = E_{x \thicksim q}[f(x)\frac{p(x)}{q(x)}]Ex∼p[f(x)]=Ex∼q[f(x)q(x)p(x)]不成立。
3. On Policy to Off-Policy
在On policy的形式下,原始的策略梯度形式为:
∇Rˉθ=Eτ∼Pθ(τ)[R(τ)∇log(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(τ)∇log(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θ即可。
参考资料:台大李宏毅强化学习。推荐本文和宝可梦大师的现场教学一起食用,效果更佳~
本文为作者原创,转载需注明出处!
2559

被折叠的 条评论
为什么被折叠?



