【问题标题】:SARSA algorithmSARSA 算法
【发布时间】:2011-05-22 02:36:34
【问题描述】:

我无法理解 SARSA 算法: http://en.wikipedia.org/wiki/SARSA

特别是在更新 Q 值时,什么是 gamma? s(t+1) 和 a(t+1) 使用什么值?

谁能给我解释一下这个算法?

谢谢。

【问题讨论】:

  • 查看链接的 Q-Learning 文章。它会检查参数是什么。

标签: artificial-intelligence reinforcement-learning


【解决方案1】:

Gamma 决定了您的算法有多少内存。如果您将其设置为 0.0,那么您的算法将根本不会更新值函数 Q。如果您将其设置为 1.0,那么新体验的权重将与之前所有体验的总和一样多。最佳值介于两者之间,必须通过实验确定。

这是它的工作原理:

  • 在您的第一步中,您只需获得一个状态。只需将其存储为 st。此外,查找您的价值函数以获得在此状态下执行的最佳操作并将其存储为 at
  • 在每个后续步骤中,您会得到 rt+1st+1。同样,使用您的价值函数来找到最佳操作 - at+1。从上一个动作到新动作的过渡值等于 rt+1+Q(st+1,at +1)-Q(st,at)。使用它来更新您对先前操作的价值 Q(st,att) 的长期估计。最后,将 st+1at+1 存储为 stat 用于下一步。

实际上,价值函数只是每个动作和每个状态的这些更新值的运行平均值。

【讨论】:

  • 我可以看到奖励将如何更新 Q 值,但我可以从 s(t+1) 和 a(t+1) 中获得什么“价值”,它们只是一个新状态以及要采取的新行动,我怎样才能从中获得“价值”来更新 Q?
  • 在第一个步骤之后的每一步,您都会获得状态和奖励。先前行动的价值、当前行动的价值和当前奖励为 SARSA 提供了信息,以改进其对先前行动的长期价值的估计。
  • 哦,好的。最后一个问题,当我更新 Q 值时,我更新了第一个 (st,at) 对的值,而不是 (s(t+1),a(t+1)) - 对吧?
  • 没错,你更新的是Q(s(t),a(t))。从这个价值的角度来看,你只是向未来迈出了一步,并了解了你行动的结果。
  • 哦,有道理。但你仍然采取行动。下次它只会从经验中知道,可以选择更好的动作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2011-10-14
相关资源
最近更新 更多