我知道我们在计算以下之间的损失后进行反向传播:
神经网络 Q 值和目标网络 Q 值
然而,这一切所做的只是更新神经网络的参数,以产生尽可能接近目标 Q 值的输出。
假设运行一个 epoch 并且奖励是 +10,当然我们也需要使用它来更新参数,以告诉网络在给定这些参数的情况下推动这些动作的概率。
算法如何知道 +10 是好的?假设奖励范围是 -10(失败)和 +10(获胜)。
我知道我们在计算以下之间的损失后进行反向传播:
神经网络 Q 值和目标网络 Q 值
然而,这一切所做的只是更新神经网络的参数,以产生尽可能接近目标 Q 值的输出。
假设运行一个 epoch 并且奖励是 +10,当然我们也需要使用它来更新参数,以告诉网络在给定这些参数的情况下推动这些动作的概率。
算法如何知道 +10 是好的?假设奖励范围是 -10(失败)和 +10(获胜)。
然而,这一切所做的只是更新神经网络的参数,以产生尽可能接近目标 Q 值的输出。
是的。这就是它需要做的所有事情,因为我们已经定义了围绕 Q 值的策略,如下所示:
在哪里是神经网络权重。
因此,如果 Q 的估计值与最优策略的动作值大致相同,则 DQN 中的策略近似为最优策略。
算法如何知道 +10 是好的?
它没有,至少不是直接的。如果算法始终在每一步选择最大化动作,则该算法大致知道动作值是什么,如果它的行为与其当前估计一致。
学习过程将了解到 +10 在您的场景中相对较好,因为它在探索时永远找不到更好的东西。