DRL(三)——Policy Gradient

这个策略梯度相关的知识我在 David Silver 的强化学习课程里学习过了已经,再看一遍这个伯克利的,好像还挺重要,marshal学长说的。

推导过程

这个过程也大致看过
DRL(三)——Policy Gradient
首先是使用了一个log函数的性质,见上图,然后就可以转化的简单一点

DRL(三)——Policy Gradient
然后就可以进行下面这样
DRL(三)——Policy Gradient
然后,如果跟maximum likelihood 相比较,就会发现这个策略梯度的变化的值,相比起来每一项都多乘了获得的reward,这样一来,就可以使获得reward多的行为动作更有可能发生,而获得reward少的甚至是负的动作减少发生的可能。

应用到部分观测(partial observability)中时

只要将式子中的 s 换成 o 就可以了,如下图:
DRL(三)——Policy Gradient
So we can use policy gradient in partially observed MDPs without modifications.

policy gradient 的问题

简单来说就是方差很大。

减小方差的方法

第一种:使用了宇宙基本的一个理论——未来发生的事不可能改变过去。
然后,利用这一定理,我们把式子中的一小部分做了变动,如下图:
DRL(三)——Policy Gradient
为什么这样就能减小方差呢?

因当我们把1变成t的时候,我们对于reward的总和也会随之减小,所以就会使方差减小(数越小,方差也就越小)。

第二种:Baseline

这种方法就是,将reward 减去一个b,这个b就是baseline,可以是reward的平均值(这样的话可也很好的工作),也可以是其他一些数值,其实平均值并不是最好的baseline的选择,但是也非常好。

而且,减掉 baseline 并不会影响策略梯度的计算,并且是一致的,因为,b的期望值是无偏估计,从下图中的推导可以看出这一点。

DRL(三)——Policy Gradient
那怎样是最优的baseline呢?
下图中给了最佳baseline的求解方式:
DRL(三)——Policy Gradient
所以,最佳的b就如上图中,但是虽然这样可以获得更小的方差,但是实际中比较麻烦,所以做的时候实际用的还是average。

On-policy Learning

on-policy learning 的问题主要就是在于,每当我们改进了一点点θ,我们就必须重新生成一些样本,因为之前的样本是根据旧的θ生成的,不能再继续使用了。

这样的话,在一些情况下就不是很适合。

所以我们提出Off-policy learning

Off-policy Learning

在离轨策略中,使用到了 importance sampling 的内容。