强化学习
在参数$\theta$ 下,一个序列出现的概率为:
因为给定一个参数$\theta$,可能出现无数种序列,每个序列都有一个reward,所以一个$\theta$的reward应该是对所有序列 的reward取期望值。
Policy Gradient
对每一个$\theta$的总的reward求导的时候,其实每个序列的reward是个常数,是不用求导的,我们只需要对每个序列出现的概率求导即可。
同时根据似然比技巧 $\Delta f(x)=f(x)\Delta logf(x)$ ,可得:
这里用约等号的原因是本来要求的是期望,但是期望根本没法求,所以只能取N个采样来进行计算,这是对期望的一种近似。
tip1 Add a BaseLine
因为我们求期望的时候,是用采样的方式来估计的,有些模型里面,所有的reward都是正的,这对于那些没有被采样到的序列是不公平的,因为只要被采样就可以得到正的reward,所以我们要加一个baseline,使得reward有正有负。
tip2 Assign Suitable Credit
在同一个序列中,所有的决策都是乘上同一个总的reward,这是不合理的,一种解决办法是 认为reward并不是每一步的reward全部加起来,只把这个action执行之后的每一步的reward加起来,这是符合直觉的,因为前面的reward跟这个action并没有关系,这个action只会对之后的序列的reward产生影响。同时,对于越靠后的序列,这个action的影响就越小,因此也要乘上一个衰减因子,衰减程度离这个action越远越大