深度强化学习:PPO

深度强化学习算法:PPO

1. Importance Sampling

先说一下什么是采样:对于一个随机变量,我们通常用概率密度函数来描述该变量的概率分布特性。具体来说,给定随机变量的一个取值,可以根据概率密度函数来计算该值对应的概率(密度)。反过来也可以根据概率密度函数提供的概率分布信息来生成随机变量的一个取值,这就是采样

现在假设需要对一个变量 X 的值进行估计,这个变量在真实环境中有一个分布 p ;那么在这个分布下可以获取到它的采样值 x i {x_i} xi ,由于 x i 和 X x_i和X xiX是同分布的,即 E [ x i ] = E [ X ] E[x_i]=E[X] E[xi]=E[X] ,则可以利用大数定理来求解变量X的估计值:
E [ x i ] = 1 n ∑ i = 1 n x i = E [ X ] (1) E[x_i] = \frac{1}{n}\sum^n_{i=1}x_i = E[X] \tag{1} E[xi]=n1i=1nxi=E[X](1)
当获取的采样值数量n增加,估计值越来越趋近于真实值。蒙特卡洛也会这样不是吗。

但是现在有一个新的情况,假如变量 X 的分布为 p ,而获取的采样值的分布为 q ,则此时 E [ x i ] ≠ E [ X ] E[x_i] \neq E[X] E[xi]=E[X] ,那么便无法通过大数定理来估计了。但是现在的情况是我们不能从分布 p 采样数据,只能从分布 q 采样数据,q可以是任何分布。这时候就要用到重要性采样了。
E x ∼ p [ f ( x ) ] = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] (2) E_{x \sim p}[f(x)] = E_{x \sim q}[f(x) \frac{p(x)}{q(x)}] \tag{2} Exp[f(x)]=Exq[f(x)q(x)p(x)](2)
我们从 q 里面采样 x ,再计算 f ( x ) p ( x ) q ( x ) f(x) \frac{p(x)}{q(x)} f(x)q(x)p(x) ,再取期望值。所以就算我们不能从 p 里面采样数据,但只要从 q 里面采样数据,就可以计算从 p 采样 x 代入 f 之后的期望值了。这里需要乘上一个重要性权重 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x) 来修正这两个分布的差异。 q ( x ) q(x) q(x) 可以是任何分布,唯一的限制就是 q ( x ) q(x) q(x) 的概率是 0 的时候, p ( x ) p(x) p(x) 的概率不为 0 ,不然会没有定义。

尽管上面提到分布 q 可以是任何分布,但是仍有限制,就是分布 q 不能和分布 p 的差距太多,两个分布需要差不多的,只有这样两个分布的方差( V a r x ∼ p [ f ( x ) ] 和 V a r x ∼ p [ f ( x ) p ( x ) q ( x ) ] Var_{x \sim p}[f(x)] 和 Var_{x \sim p}[f(x)\frac{p(x)}{q(x)}] Varxp[f(x)]Varxp[f(x)q(x)p(x)])才会没有太多的差距。

分别把 f ( x ) f(x) f(x) f ( x ) p ( x ) q ( x ) f(x)\frac{p(x)}{q(x)} 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 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 ∼ q [ f ( x ) 2 p ( x ) q ( x ) ] − ( E x ∼ p [ f ( x ) ] ) 2 (3) Var_{x \sim p}[f(x)] = E_{x \sim p}[f(x)^2] - (E_{x \sim p}[f(x)])^2 \tag{3}\\ Var_{x \sim q}[f(x)\frac{p(x)}{q(x)}]=E_{x\sim q}[(f(x)\frac{p(x)}{q(x)})^2] - (E_{x \sim q}[f(x)\frac{p(x)}{q(x)}])^2\\ =E_{x\sim q}[f(x)^2\frac{p(x)}{q(x)}] - (E_{x \sim p}[f(x)])^2 Varxp[f(x)]=Exp[f(x)2](Exp[f(x)])2Varxq[f(x)q(x)p(x)]=Exq[(f(x)q(x)p(x))2](Exq[f(x)q(x)p(x)])2=Exq[f(x)2q(x)p(x)](Exp[f(x)])2(3)
可以看到两者方差的差别在第一项, V a r x ∼ q [ f ( x ) p ( x ) q ( x ) ] Var_{x\sim q}[f(x)\frac{p(x)}{q(x)}] Varxq[f(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨小古

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值