【问题标题】:How does neural network know which reward it got from action?神经网络如何知道它从行动中获得了哪些奖励?
【发布时间】:2018-08-03 05:38:02
【问题描述】:

我目前正在制作一个 Deep q-network,我对我的 Q-network 如何知道我给它的奖励有点困惑。

例如,我有这个具有策略和时间差异的状态动作函数:

然后我就有了我的 Q 网络:

我输入我的状态,我在同一个观察中得到 4 个不同的 q 值。从理论上讲我如何奖励我的 Q 网络,因为我唯一的输入是状态而不是奖励。

希望有人能给我解释一下!

【问题讨论】:

  • 如果“我如何奖励我的 Q-net”你的意思是“我使用哪个损失来训练我的 Q-net”,答案是:TD 错误,即r + gamma*Q(s',pi(s')) - Q(s,a),其中s' 是下一个状态,pi 是您的策略。

标签: neural-network deep-learning reinforcement-learning q-learning


【解决方案1】:

您应该熟悉训练推理

在训练阶段,您向神经网络提供输入和所需的输出。对所需输出进行编码的确切方式可能会有所不同;一种方法是定义奖励函数。然后定义权重调整过程以优化奖励

在生产中,网络用于推理。您现在使用它来预测未知结果,但您不更新权重。因此,您在此阶段没有奖励功能。

这使得神经网络成为监督学习的一种形式。如果您需要无监督学习,您通常会遇到更大的问题,并且可能需要不同的算法。一种例外情况是,您可以事后自动评估预测的质量。这方面的一个例子是 CPU 的分支预测器;这可以使用来自分支的实际数据进行训练。

【讨论】:

  • 但是如果我的深度强化算法必须在推理阶段进行训练呢:)?
猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 2020-07-03
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多