预期 SARSA 是一种离策略还是在策略算法?

人工智能 强化学习 策略外方法 萨尔萨 策略方法 预期的莎莎
2021-10-31 04:00:56

我知道 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 像以前一样右移),我忽略了它。

欢迎任何建议。

1个回答

预期 SARSA 可用于政策内或政策外。

您在更新步骤中使用的策略决定了它是哪一个。如果更新步骤对操作选择使用的权重与实际执行操作的策略不同,那么您正在以非策略方式使用预期 SARSA。

Q-learning 是 Expected SARSA 的一个特例,其中目标策略对动作值是贪婪的,所以只有一个r+1+γ最大限度一个'(s+1,一个')以概率添加的术语1.

您也可以使用 Expected SARSA,类似于 SARSA,其中行为策略和目标策略相同。但它与 SARSA 不同,因为它计算所有可能动作的 TD Targetr+1+γ一个'π(一个'|s+1)(s+1,一个')

您可以构建预期的 SARSA 更新,其中π(一个|s)在选择在环境中探索的动作(行为)和更新 Q 值(目标)时是不同的。例如,您可以决定探索使用ε- 贪婪ε=0.1并更新价值函数ε=0.01.