我知道 SARSA 是一种 On-policy 算法,而 Q-learning 是一种 off-policy 算法。Sutton 和 Barto 的教科书如此描述了预期的 Sarsa:
在这些悬崖行走结果中,Expected Sarsa 被使用在策略上,但通常它可能使用与目标策略不同的策略来生成行为,在这种情况下,它变成了一种脱离策略的算法。
我从根本上对此感到困惑——具体来说,我们如何定义预期的 SARSA 何时采用或无视政策。Coursera Course 声明它是 On-Policy,让我更加困惑。
在处理 Udacity 课程时,我的困惑开始显现,特别是一个可视化简单网格世界的预期 SARSA 的部分(参见下面链接中的 1.11 和 1.12 部分)。请注意,该课程将预期 Sarsa 定义为 on-policy。 https://www.zhenhantom.com/2019/10/27/Deep-Reinforcement-Learning-Part-1/
您会注意到新状态值 Q(s0,a0) 的计算为
Q(s0, a0) <— 6 + 0.1( -1 + [0.1 x 8] + [0.1 x 7] + [0.7 x 9] + [0.1 x 8] - 6) = 6.16。
这也是官方的回答。但这意味着它正在运行策略,因为它声明在 S1 采取的操作对应于右移,因此预计 SARSA(在策略上)应该让你。
Q(s0, a0) <— 6 + 0.1( -1 + [0.1 x 8] + [0.1 x 7] + [0.1 x 9] + [0.7 x 8] - 6) = 6.1
这个问题确实说明了
(假设当为第 100 集的前两个时间步选择动作时,代理遵循关于 Q 表的 epsilon-greedy 策略,epsilon = 0.4。)
但由于常规 SARSA 示例存在相同的语句(它也产生 6.1,因为 A1 像以前一样右移),我忽略了它。
欢迎任何建议。