State-Action-Reward-State-Action
代理是在线学习,并且注重学习期间获得的奖励.
开源实现
SARSA(State-Action-Reward-State-Action)是一个学习马尔可夫决策过程策略的算法,通常应用于机器学习和强化学习学习领域中。State-Action-Reward-State-Action这个名称清楚地反应了其学习更新函数依赖的5个值,分别是当前状态S1,当前状态选中的动作A1,获得的奖励Reward,S1状态下执行A1后取得的状态S2及S2状态下将会执行的动作A2。这5个值的首字母串起来可以得出一个词SARSA。
采用Q-table的方式存储动作值函数;而且决策部分和Q-Learning是一样的, 也是采用ε-greedy策略。不同的地方在于 Sarsa 的更新方式是不一样的。
1.Sarsa是on-policy的更新方式,它的行动策略和评估策略都是ε-greedy策略。
2.Sarsa是先做出动作后更新。
SARSA 算法经常与Q-learning 算法作比较,以便探索出两种算法分别适用的情况。它们互有利弊。
与SARSA相比,Q-learning具有以下优点和缺点:
Q-learning直接学习最优策略,而SARSA在探索时学会了近乎最优的策略。
Q-learning具有比SARSA更高的每样本方差,并且可能因此产生收敛问题。当通过Q-learning训练神经网络时,这会成为一个问题。
SARSA在接近收敛时,允许对探索性的行动进行可能的惩罚,而Q-learning会直接忽略,这使得SARSA算法更加保守。如果存在接近最佳路径的大量负面报酬的风险,Q-learning将倾向于在探索时触发奖励,而SARSA将倾向于避免危险的最佳路径并且仅在探索参数减少时慢慢学会使用它。
如果是在模拟中或在低成本和快速迭代的环境中训练代理,那么由于第一点(直接学习最优策略),Q-learning是一个不错的选择。 如果代理是在线学习,并且注重学习期间获得的奖励,那么SARSA算法更加适用。
[1] Sutton, Richard S. "Generalization in reinforcement learning: Successful examples using sparse coarse coding." Advances in neural information processing systems (1996): 1038-1044.