我的问题是关于在强化学习中使用 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?