我目前正在制作一个深度 q 网络,我对我的 Q 网络如何知道我给予它的奖励有点困惑。
例如,我有一个具有策略和时间差异的状态 Action 函数:
然后我就有了我的 Q 网络:
当我输入我的状态时,我在同一个观察中得到 4 个不同的 q 值。从理论上讲,我如何奖励我的 Q 网络,因为我唯一的输入是状态,而不是奖励。
希望有人能给我解释一下!
最佳答案
您应该熟悉训练和推理。
在训练阶段,您向神经网络提供输入和所需的输出。对所需输出进行编码的确切方式可能会有所不同;一种方法是定义奖励函数。然后定义权重调整程序以优化奖励
在生产中,网络用于推理。您现在使用它来预测未知结果,但不更新权重。因此,在此阶段您没有奖励函数。
这使得神经网络成为监督学习的一种形式。如果您需要无监督学习,通常会遇到更大的问题,并且可能需要不同的算法。一种异常(exception)是您可以事后自动评估预测的质量。 CPU 的分支预测器就是一个例子;这可以使用来自分支的实际数据进行训练。
关于neural-network - 神经网络如何知道它从行动中获得了哪些奖励?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943191/