没错,函数为您提供状态的值,而为您提供状态下的操作的值(遵循给定策略)。我在汤姆·米切尔(Tom Mitchell)的著作《机器学习》(Machine Learning)(1997),第ch中找到了关于Q学习的最清晰的解释。13,这是可下载的。被定义为一个无限级数的和,但在这里并不重要。重要的是函数定义为VQπVQ
Q(s,a)=r(s,a)+γV∗(δ(s,a))
Q V
其中,如果您遵循最佳策略,则V *是状态的最佳值不知道 然而,它在方面具有很好的特征。
计算是通过替换第一个方程中的给出
Q
V∗(s)=maxa′Q(s,a′)
QV∗Q(s,a)=r(s,a)+γmaxa′Q(δ(s,a),a′)
起初这似乎是一个奇怪的递归,因为它以后继状态的最佳Q值表示当前状态下动作的Q值,但是当您查看备份过程如何使用它时,这是有道理的:当过程达到目标状态并收集奖励时,该过程将停止,该奖励将成为最终转换的Q值。现在,在后续的训练中,当探索过程达到该先前状态时,备份过程将使用上述等式来更新先前状态的当前Q值。下一次,其访问前任状态的Q值将被更新,如此反复进行下去(Mitchell的书描述了一种更有效的方式,通过存储所有计算并在以后重播它们)。如果经常访问每个状态,则此过程最终会计算出最佳Q
有时您会看到学习率用于控制实际更新多少Q:
现在注意,对Q值的更新确实取决于当前的Q值。Mitchell的书还解释了为什么会这样,以及为什么您需要:它用于随机MDP。如果没有,则每次尝试状态,动作对时,都会得到不同的奖励,因此Q ^函数将在所有位置反弹而不会收敛。在那里,因此新知识仅部分被接受。αQ(s,a)=(1−α)Q(s,a)+α(r(s,a)+γmaxa′Q(s′,a′))
=Q(s,a)+α(r(s,a)+γmaxa′Q(s′,a′)−Q(s,a))
ααααααααα设置为高,以使Q的当前(主要是随机值)影响较小。随训练的进行而减少,因此新的更新影响越来越小,现在Q学习收敛α