我正在学习 SARSA 算法的实现并且有一个问题。我了解一般的“学习”步骤采取以下形式:
机器人 (r) 处于状态 s。有四种可用的操作:
North (n), East (e), West (w) and South (s)
这样的动作列表,
a = {n,w,e,s}
机器人随机选择一个动作,并更新如下:
Q(a,s) = Q(a,s) + L[r + DQ(a',s1) - Q(a,s)]
其中L是学习率,r是与 相关的奖励(a,s),是新状态下Q(s',a')动作的预期奖励,是折扣因子。a's'D
首先,我不理解这个术语的作用 - Q(a,s),为什么我们要重新减去当前的 Q 值?
其次,在选择动作时a,a'为什么这些必须是随机的?我知道在某些实现或 SARSA 中,所有可能Q(s', a')的因素都被考虑在内,并选择了最高值。(我相信这是 Epsilon-Greedy?)为什么不为此也选择Q(a,s)要更新的值?或者为什么不更新所有Q(a,s)的当前s?
最后,为什么 SARSA 仅限于一步前瞻?为什么,说,不也研究一个假设Q(s'',a'')?
我想总的来说,我的问题归结为是什么让 SARSA 比另一种呼吸优先或深度优先搜索算法更好?