我了解这是 REINFORCE 中政策参数的更新:
在哪里 通常是贴现的未来奖励和 是代理人在时间采取的行动的概率. (如果这里有问题请告诉我)
但是,我不明白如何用神经网络来实现这一点。
假设probs = policy.feedforward(state)
返回采取每个动作的概率,例如[0.6, 0.4]
. action = choose_action_from(probs)
将返回所选概率的索引。例如,如果它选择 0.6,则动作将为 0。
当需要更新策略网络的参数时,我们应该怎么做?我们应该做如下的事情吗?
gradient = policy.backpropagate(total_discounted_reward*log(probs[action])
policy.weights += gradient
我只通过一个输出神经元反向传播?
在这种情况下我应该使用哪个损失函数?标签是什么?
如果您需要更多解释,我有这个问题。