让您感到困惑的部分Bellman approximation是用于更新Q-values被定义为s执行给定操作的状态的a部分。

Q对于这个状态,s和行动,a,等于预期的即时奖励和目标状态的折扣长期奖励。
Q-values(or the value of the action)我们在状态的值中取最大值,s'这是从状态开始的下一个状态s,带有一个动作,因为从一个状态到一个状态a'时我们可以采取的动作是一组互斥的离散集(即,您的环境允许您在向上、向左、向右或向下的方向上移动),因此最佳操作将是导致该操作的最高值的操作。ss'

以上图为例。代理从状态开始,s0并且能够向上、向左、向右或向下移动,这些都是动作。代理可以采取的行动本质上是随机的,不是确定性的,但即当代理打算向上时0.33%,代理可能会改为向左或向右移动。我将在这里为 gamma 分配一个值 1。
这就是你如何计算Q-values状态s0和动作up的值,进入状态的值是代理收到的即时奖励,V1 = 1, V2 = 2, V3 = 3, V4 = 4。
Q(s0,up) = 0.33 * V1 + 0.33 * V2 0.33 * V4
= 0.33 * 1 + 0.33 * 2 + 0.33 * 4
= 2.31
接下来,如果您计算所有其他可能状态及其动作的 Q 值,您将得到以下结果:
Q(s0,left) = 1.98
Q(s0,right) = 2.64
Q(s0,down) = 2.97
因此,状态的最终值s0是maximum那些动作的值,即2.97。这就是您在代码中真正尝试做的所有事情。
至于做什么currentQ[action] = newQ;,它正在对当前的动作执行更新,Q-values从其旧值到剧集结束时的新更新值。
关于它为什么这样做,您必须了解的一件事是,代理Q-values在一集之后对其进行更新,然后再次进行训练并重复该过程,直到代理设法完成其目标(对于 Atari 论文这个算法是从引入的,那个目标的平均得分我认为是 19,这相当于在 21 场比赛中赢了 19 场)。
您可以从原始论文中了解有关整个过程的更多信息。
但我认为在此之前你需要更多地了解贝尔曼方程,因为它对于理解强化学习非常重要。DeepMind 有一个关于这方面的优秀 Youtube 系列,可以在这里找到。
更好的是,它的创始人 Richard Sutton 和 Andrew Barto 有一本关于强化学习的免费书籍。我相信他们会在第 4 章详细介绍这一点。
编辑:
我不太清楚你所说的它如何影响训练是什么意思,但我会概述整个过程,让你了解训练是如何为此工作的:
