Q-learning和SARSA的贪婪选择是否相同?

时间:2015-09-29 14:13:10

标签: reinforcement-learning q-learning sarsa

Q学习和SARSA之间的区别在于Q学习比较当前状态和最佳可能的下一状态,而SARSA将当前状态与实际下一状态进行比较。

如果使用贪婪的选择策略,即100%的时间选择具有最高动作值的动作,那么SARSA和Q学习是否相同?

3 个答案:

答案 0 :(得分:9)

嗯,实际上并非如此。 SARSA和Q学习之间的一个关键区别是SARSA是一种策略上的算法(它遵循正在学习的策略)而Q-learning是一种非策略算法(它可以遵循任何策略(满足一些收敛要求))

请注意,在以下两种算法的伪代码中,SARSA选择'和s'然后更新Q函数; Q学习首先更新Q函数,并且在下一次迭代中选择要执行的下一个动作,从更新的Q函数导出,并且不一定等于a'选择更新Q。

enter image description here

enter image description here

在任何情况下,两种算法都需要探索(即采取与贪婪行动不同的行动)来收敛。

SARSA和Q学习的伪代码摘自Sutton和Barto的书:Reinforcement Learning: An Introduction (HTML version)

答案 1 :(得分:2)

如果我们只使用贪婪的政策那么就没有探索,所以学习不会起作用。在epsilon变为0(例如1 / t)的极限情况下,SARSA和Q-Learning将收敛到最优策略q *。然而,随着epsilon的修复,SARSA将收敛到最优的 epsilon-greedy 策略,而Q-Learning将收敛到最优策略q *。

我在这里写了一个小注释来解释两者之间的差异,并希望它可以提供帮助:

https://tcnguyen.github.io/reinforcement_learning/sarsa_vs_q_learning.html

答案 2 :(得分:0)

如果已经形成了最优策略,那么纯贪婪和Q学习的SARSA是相同的。

但是,在训练中,我们只有一个策略或次优策略,纯贪婪的SARSA只会收敛到可用的“最佳”次优策略,而无需尝试探索最优策略,而Q学习则可以,因为有enter image description here,这意味着它将尝试所有可用操作并选择最大操作。