5

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

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

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

这里,只有在状态 s 选择了贪婪动作时,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 实际选择的动作。这似乎相当明显。但是 rho 应该如何更新呢?我的猜测是,由于 SARSA 是一种 on-policy 算法,因此 rho 应该始终在每次迭代时更新——无论是否在 s 处选择了贪婪动作——并且更新规则应该是:

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

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

4

1 回答 1

2

首先,问题在于未折现的非情节任务是病态问题,因为预期的奖励是发散的(除非奖励具有某种特性,使它们在未来递减)。

编辑:对不起,我已经查阅了书中引用的章节,并注意到 R-learning 确实是一种解决不打折的非情节任务的方法。

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

于 2013-08-03T22:14:12.000 回答