主要观点总结
关键观点总结
正文
因此可得,模型参数
下的Expected Reward(期望奖励):
综上,我们希望调整模型参数使这个期望奖励越大越好,因此可得Policy Gradient公式如下,期望做gradient ascent最大化期望奖励:
# 实际上就是N个轨迹近似期望,使期望reward最大化
# 环境无法作用gradient 所以可以移除
直观理解:在某个state(上文)下执行某个action(token)使得最后整个输出 的reward是正的时候,我们应该增加这个输出的几率,反之减少。
但是,如果仔细看上述公式,会发现
即reward恒为正的情况,那会导致一直在增加任何token的输出概率。但我们实际操作中是用sample的方式来训练,这就导致某些项实际上因为没被sample到而导致输出概率下降(实际ground truth是要提升)。所以我们希望引入一个baseline(b)让reward不是恒为正。公式变成如下:
通常我们可以将baseline设置为reward的期望值,即
同时,我们知道最终输出的是一个序列
,且在算reward时是以
的粒度计算的。即使整体的reward是正的,也不意味着
中的每一个action都是有收益的(如:说了一串废话,最后才说对结果)。因此更合理的做法是我们需要给每一个action合适的credit。
首先,我们会有一些假设(注意:并不一定什么情况下都适用,应根据具体情况使用不同的reward function):
1、reward应单独为每个action计算(前面的)
# 计算当前action后所有reward的总和作为当前action的reward