我的问题是关于在强化学习中使用SARSA算法进行未折扣,持续(非偶发)问题(可以用于此类问题吗?)
我一直在研究Sutton和Barto的教科书,他们展示了如何修改Q学习算法,以便它可以用于未折现的问题。他们在第6.7章中将新算法(对于未折现问题)称为R学习。基本上,在R-learning中,每次迭代的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学习。我想修改SARSA算法,使其适用于平均奖励(未折现)问题,就像修改Q学习用于平均奖励问题一样(我不知道这是否可行?) 。然而,在文献中,我找不到解释SARSA应该如何针对平均奖励问题进行修改的解释。
我猜测SARSA应该如何用于未折现的问题。我猜想更新规则应该是:
Q(s,a)= Q(s,a)+ alpha * [r - rho + Q(s',a') - Q(s,a)],
其中a'是在州s实际选择的动作。这似乎相当明显。但是如何更新?我的猜测是,由于SARSA是一种on-policy算法,rho应该始终在每次迭代时更新 - 无论是否在s中选择了贪婪行为 - 更新规则应该只是:
rho = rho + beta * [r - rho + Q(s',a') - Q(s,a)]。
有人可以告诉我这是否正确?或者是否仍应根据状态s和s'的最佳动作更新rho?
答案 0 :(得分:2)
首先,问题在于,一个未被解决的非偶然性任务是一个病态条件问题,因为期望的奖励是不同的(除非奖励有一些属性使得它们将来会逐渐减少)。
编辑:对不起,我已经查阅了本书中引用的章节,并注意到R-learning确实是一种解决未折叠非偶然任务的方法。AD REM:我认为以这种方式更新rho背后的想法是估算当前政策的平均回报。因此,我猜测即使SARSA是一种政策上的方法,只有在选择了贪婪的行动时才应该更新rho。这是因为如果您想准确估算当前政策的平均奖励,您应该只考虑在您遵循此政策时会发生的事件。由于探索步骤而发生的事件并不代表“此政策的价值是什么”的准确样本。这当然只是一个直观的论点 - 我没有任何R-learning经验,也没有正式分析过这个问题。