您如何管理策略梯度中的负奖励?
人工智能
强化学习
喀拉斯
政策梯度
奖励
交叉熵
2021-10-31 10:50:58
1个回答
您不需要单独管理负奖励,如果您正确实施算法,无论奖励是否为负,它都会起作用。您似乎使用奖励来弥补损失,但您应该使用回报,即从该点到轨迹结束的某个状态动作对的回报之和。
你似乎也失踪了从损失中签字。我们想要最大化的普通策略梯度算法(REINFORCE)的目标函数是
可以证明,这种策略梯度方法的梯度样本是
所以在TensorFlow中你应该定义你的损失为
我们需要因为在 TensorFlow 中你使用最小化器,但是我们想要最大化这个函数,所以最小化这个损失与最大化目标函数是一样的。总之,与您编写的代码类似的代码应该是
-return * cross_entropy(action_pdf, selected_action_one_hot)
编辑
正如评论中指出的,我们实际上并不需要因为它已经包含在cross_entropy函数中。