具有贪婪选择的 Q 学习和 SARSA 是否等价?

Are Q-learning and SARSA with greedy selection equivalent?

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

如果使用贪心选择策略,即100%选择动作值最高的动作,那么SARSA和Q-learning是否相同?

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

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

无论如何,两种算法都需要探索(即采取与贪婪行为不同的行为)来收敛。

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

如果我们只使用贪心策略,那么就没有探索,所以学习是行不通的。在 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

如果最优策略已经形成,纯贪心的SARSA和Q-learning是一样的。

然而,在训练中,我们只有一个策略或次优策略,纯贪心的SARSA只会收敛到可用的"best"次优策略,而不会尝试探索最优策略,而Q -learning 会做,因为 ,这意味着它会尝试所有可用的操作并选择最大的一个。