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) Ex∼p[f(x)]≈N1i=1∑Nf(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)}] 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)相差太多,否则还是会出现问题,我们可以通过比较两个期望的方差来得到这一结论
-
我们通过重要性得到如下等式:
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)}] Ex∼p[f(x)]=Ex∼q[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 Varx∼p[f(x)]=Ex∼p[f(x)2]−(Ex∼p[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 Varx∼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)采样次数足够多时,那么 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)}] 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)相差过大,那么重要性采样在采样不充分的情况下会导致 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)}] Ex∼p[f(x)]=Ex∼q[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 θ即可。
参考资料:台大李宏毅强化学习。推荐本文和宝可梦大师的现场教学一起食用,效果更佳~
本文为作者原创,转载需注明出处!