avatar

Catalog
强化学习

强化学习

在参数$\theta$ 下,一个序列出现的概率为:

微信截图_20200520133938

因为给定一个参数$\theta$,可能出现无数种序列,每个序列都有一个reward,所以一个$\theta$的reward应该是对所有序列 的reward取期望值。微信截图_20200520134104

Policy Gradient

对每一个$\theta$的总的reward求导的时候,其实每个序列的reward是个常数,是不用求导的,我们只需要对每个序列出现的概率求导即可。

同时根据似然比技巧 $\Delta f(x)=f(x)\Delta logf(x)$ ,可得:

微信截图_20200520142540

这里用约等号的原因是本来要求的是期望,但是期望根本没法求,所以只能取N个采样来进行计算,这是对期望的一种近似。

tip1 Add a BaseLine

因为我们求期望的时候,是用采样的方式来估计的,有些模型里面,所有的reward都是正的,这对于那些没有被采样到的序列是不公平的,因为只要被采样就可以得到正的reward,所以我们要加一个baseline,使得reward有正有负。

微信截图_20200520144409

tip2 Assign Suitable Credit

在同一个序列中,所有的决策都是乘上同一个总的reward,这是不合理的,一种解决办法是 认为reward并不是每一步的reward全部加起来,只把这个action执行之后的每一步的reward加起来,这是符合直觉的,因为前面的reward跟这个action并没有关系,这个action只会对之后的序列的reward产生影响。同时,对于越靠后的序列,这个action的影响就越小,因此也要乘上一个衰减因子,衰减程度离这个action越远越大

微信截图_20200520145817

Author: realLiuSir
Link: http://yoursite.com/2020/05/20/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶