neural-network - 神经网络如何知道它从行动中获得了哪些奖励?

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

我目前正在制作一个深度 q 网络,我对我的 Q 网络如何知道我给予它的奖励有点困惑。

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

state action fucntions

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

Q-network

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

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

最佳答案

您应该熟悉训练推理

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

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

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

关于neural-network - 神经网络如何知道它从行动中获得了哪些奖励?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943191/

相关文章:

algorithm - 为什么限制权重大小可以防止机器学习中的过度拟合

tensorflow - 在 TensorFlow/Keras 中获取中间层的输出

python - 深度学习——关于caffe的一些幼稚问题

python - 多标签分类: How to learn threshold values?

python - 如何选择 LSTM 中 Dense 层的维度?

c# - 与google prediction API 具有相似功能的.Net 库

machine-learning - 聚类这种强化学习方法?

neural-network - 权重更新——强化学习+神经网络

machine-learning - Q-学习(多目标)

machine-learning - 无法使用神经网络近似正弦函数