gpt4 book ai didi

artificial-intelligence - 平均奖励问题的 SARSA 算法

转载 作者:行者123 更新时间:2023-12-02 02:04:47 29 4
gpt4 key购买 nike

我的问题是关于在强化学习中使用 SARSA 算法来解决一个未折现的、持续的(非情节)问题(它可以用于这样的问题吗?)

我一直在研究 Sutton 和 Barto 的教科书,他们展示了如何修改 Q-learning 算法,以便它可以用于解决未打折扣的问题。他们在第 6.7 章中将新算法(用于未折现的问题)称为 R-learning。基本上,在 R-learning 中,每次迭代 Q(s,a) 的更新规则是:

Q(s,a) = Q(s,a) + alpha * [r - rho + max_a{Q(s',a)} - Q(s,a)]

在这里,只有在状态 s 选择贪婪 Action 时,才会在每次迭代中更新 rho。 rho 的更新规则是:

rho = rho + beta * [r - rho + max_a{Q(s',a)} - max_a{Q(s,a)}]

(这里,alpha 和 beta 是学习参数。)现在,我的问题是关于 SARSA,而不是 Q-learning。我想修改 SARSA 算法,使其适用于平均奖励(未折扣)问题,就像修改 Q-learning 以用于平均奖励问题一样(我不知道这是否可能?) .然而,在文献中我找不到关于如何针对平均奖励问题修改 SARSA 的确切解释。

以下是我对 SARSA 应如何用于未贴现问题的猜测。我猜更新规则应该是:

Q(s,a) = Q(s,a) + alpha * [r - rho + Q(s',a') - Q(s,a)],

其中 a' 是在状态 s 实际选择的 Action 。这似乎相当明显。但是 rho 应该如何更新呢?我的猜测是,由于 SARSA 是一种 on-policy 算法,因此每次迭代都应始终更新 rho - 无论是否在 s 处选择了贪婪操作 - 并且更新规则应该是:

rho = rho + beta * [r - rho + Q(s',a') - Q(s,a)]。

有人能告诉我这是否正确吗?还是应该根据状态 s 和 s' 的最佳 Action 更新 rho?

最佳答案

首先,问题是未折现的非情节任务是病态问题,因为预期奖励是发散的(除非奖励具有某些属性,这会使它们在 future 减少)。

编辑:对不起,我已经查找了书中引用的章节,并注意到 R 学习确实是一种处理未折现的非情节任务的方法。

AD REM:我认为以这种方式更新 rho 背后的想法是估计当前策略的平均奖励。因此,我猜测即使 SARSA 是一种基于策略的方法,您也应该仅在选择了贪婪操作时才更新 rho。这是因为如果您想准确估计当前政策的平均奖励,您应该只考虑在您遵循此政策时会发生的事件。由于探索步骤而发生的事件并不代表“该策略的值(value)是什么”的准确样本。这当然只是一个直观的论点——我没有任何 R 学习经验,也没有正式分析过这个问题。

关于artificial-intelligence - 平均奖励问题的 SARSA 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696637/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com