我对理解 SARSA 算法有些困难:http://en.wikipedia.org/wiki/SARSA
特别地,在更新 Q 值时,gamma 是什么?s(t+1) 和 a(t+1) 使用什么值?
有人能给我解释一下这个算法吗?
谢谢。
回答:
Gamma 决定了你的算法有多少记忆。如果你把它设置为 0.0,那么你的算法根本不会更新价值函数 Q。如果你把它设置为 1.0,那么新的经验将与所有之前的经验加起来一样重要。最佳值介于两者之间,必须通过实验确定。
以下是它的工作原理:
- 在你的第一步,你只是获得一个状态。只需将其存储为 st。同时,查找你的价值函数,找到在这个状态下要采取的最佳行动,并将其存储为 at。
- 在接下来的每一步中,你都会得到 rt+1 和 st+1。再次,使用你的价值函数来找到最佳行动 — at+1。从你之前的行动到新行动的转换值等于 rt+1+Q(st+1,at+1)-Q(st,at)。使用它来更新你对之前行动价值的长期估计 Q(st,att)。最后,将 st+1 和 at+1 分别存储为 st 和 at,以便下一步使用。
实际上,价值函数只是每个行动和每个状态的这些更新值的运行平均值。