我应该在 REINFORCE 中使用哪个损失函数,标签是什么?

人工智能 强化学习 反向传播 政策梯度 加强 交叉熵
2021-10-25 01:58:36

我了解这是 REINFORCE 中政策参数的更新:

Δθt=αθlogπθ(atst)vt,
在哪里vt 通常是贴现的未来奖励和 πθ(atst)是代理人在时间采取的行动的概率t. (如果这里有问题请告诉我)

但是,我不明白如何用神经网络来实现这一点。

假设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

我只通过一个输出神经元反向传播?

在这种情况下我应该使用哪个损失函数?标签是什么?

如果您需要更多解释,我有这个问题

1个回答

您正在寻找的损失函数是cross entropy loss您使用的“标签”是您在更新的时间点采取的操作。