何时选择 SARSA 与 Q 学习

机器算法验证 强化学习
2022-02-05 21:45:41

SARSA 和 Q Learning 都是以类似方式工作的强化学习算法。最显着的区别是 SARSA 在策略上,而 Q Learning 不在策略上。更新规则如下:

问学习:

Q(st,at)Q(st,at)+α[rt+1+γmaxaQ(st+1,a)Q(st,at)]

沙萨:

Q(st,at)Q(st,at)+α[rt+1+γQ(st+1,at+1)Q(st,at)]

其中st,atr_trt时间步tγ是折扣因子。

除了在 SARSA 中我们采取实际行动而在 Q Learning 中我们采取最高奖励的行动之外,它们看起来几乎相同。

是否存在任何理论或实践设置,其中一个应该比另一个更喜欢?我可以看到,在 Q Learning 中最大化可能会很昂贵,在连续行动空间中更是如此。但是还有别的吗?

1个回答

除了在 SARSA 中我们采取实际行动而在 Q Learning 中我们采取最高奖励的行动之外,它们看起来几乎相同。

实际上,在您“采取”实际单个生成的动作下。在 Q 学习中,您从可能的下一步操作的最大估计值更新估计值,而不管您采取了哪个操作。在 SARSA 中,您根据相同的操作更新估计值。at+1

这可能是您在问题中“采取”的意思,但在文献中,采取行动意味着它成为例如的值,并影响 .atrt+1st+1

是否存在任何理论或实践设置,其中一个应该比另一个更喜欢?

与 SARSA 相比,Q-learning 具有以下优点和缺点:

  • Q-learning 直接学习最优策略,而 SARSA 在探索时学习接近最优策略。如果你想学习使用 SARSA 的最优策略,那么你需要决定一个策略来衰减中的 -贪婪动作选择,这可能会成为一个需要调优的超参数。ϵϵ

  • Q 学习(以及一般的离策略学习)比 SARSA 具有更高的每样本方差,因此可能会遇到收敛问题。当通过 Q-learning 训练神经网络时,这会成为一个问题。

  • SARSA 将接近收敛考虑到探索性动作的可能惩罚,而 Q-learning 将忽略它们。这使得 SARSA 更加保守——如果存在接近最优路径的大量负奖励的风险,Q-learning 将倾向于在探索时触发该奖励,而 SARSA 将倾向于避免危险的最优路径并且只会慢慢学会使用它当探索参数减少时。展示这种效果的经典玩具问题称为悬崖行走

在实践中,如果错误代价高昂,最后一点可能会产生很大的不同——例如,您不是在模拟中而是在现实世界中训练机器人。如果机器人损坏会危及实时时间和金钱,您可能更喜欢避免高风险的更保守的学习算法。

如果您的目标是在模拟中或在低成本和快速迭代的环境中训练最优代理,那么 Q-learning 是一个不错的选择,因为第一点(直接学习最优策略)。如果您的代理在线学习,并且您关心学习过程中获得的奖励,那么 SARSA 可能是更好的选择。