上次提到了在深度强化中的几个概念,现在来看一看他们的关系:
环境——>状态1——>行为1——>环境——>状态2——>行为2等等
以一个游戏的强化学习过程为例:
所有状态和行为组成的序列被称为trajectory(轨迹)
某种轨迹出现的概率为
奖励R:
下面要求R的梯度
policy gradient:
迭代公式为
具体的步骤是
计算时,需要最小化
因此,在tf或torch中,求上式的梯度并乘以权重(R),并加到这个式子里不断迭代(牛顿法)
tip1: 为了不让R全都为正(避免有的情况没能采样到而使其权重变很低),会在R的基础上减掉一个值
以便让权重有正有负。这里一般取多个序列得出的R的平均值(近似于其期望)作为b
**tip2:**assign suitable credit:一个序列的得分R高的时候并不意味着里面所有的action都是好的,而上面的计算则是序列的所有action都乘相同的weight,在sample次数不够多的情况下容易对action产生无解,为了区分一个序列中不同action的好坏,让他们分别与不同的权重相乘。
上面替换原来R的意思是认为某一个action之后所有得分都应该与这个action有关的,所以对那些分数加权求和,离这个action越近的分数权重越大