reinforcement-learning - 了解线性梯度下降 Sarsa(基于 Sutton 和 Barto)

标签 reinforcement-learning sarsa

我正在尝试基于 Sutton & Barto's Book 实现线性梯度下降 Sarsa ,算法见下图。

但是,我很难理解算法中的某些内容:

  • w 和 z 的维度是否与可以采取的不同操作数量无关?在书中看来,它们的维度等于特征的数量,我想说这与 Action 的数量无关。
  • 每个 Action 都有 w 和 z 吗?另外,我在书中看不到应该是这样。
  • 如果我在上面的两个项目符号中是正确的,那么我看不到索引列表 F_a 将如何依赖于操作,因此我看不到操作值函数 q_a 如何依赖于操作(请参阅标记的行算法中下面有黄色)但是 Action 值必须取决于 Action 。所以有些东西我没有得到......

我希望任何人都可以帮助我澄清这一点:)

Sarsa algo

最佳答案

w 是函数逼近器的权重向量。您要近似的函数是Q(s,a),即 Action 值函数,它告诉您在某种状态下采取 Action 的值(value)。由您来定义权重,但是是的,您是对的,您需要考虑如何表示权重中的 Action 。一种方法可能是定义一组状态特征,然后每个操作实例化它们一次(多个单独的 w 向量)。为了方便起见,您可以将这些向量连接成一个大的 w,因为您知道只有由状态- Action 对的特征激活的权重向量 block 才会被更新。如果 Action 空间很大,则每个 Action 具有多个不相交的状态特征集会产生很大的权重,因此您可以将多个 Action 压缩为单个权重的不同标量值。如果 Action 之间的真实 Q 值很接近,您将能够表现得同样好,而且您实际上会学得更快,因为需要优化的权重更少。表示方式灵活。由你决定!

我鼓励您查看本书第二版中编写的算法(草稿可从作者的网站上获取)。注释更清晰。您发布的算法实际上是一个 lambda 返回方法,您可以在第 12 章中阅读该方法(z 是一个资格跟踪,它与 w 具有相同的维度,并且不是'对您提出的问题并不重要)。情景半梯度 Sarsa,相同的算法,减去一些花里胡哨的内容,出现在第 10.1 节中。

关于reinforcement-learning - 了解线性梯度下降 Sarsa(基于 Sutton 和 Barto),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40722683/

相关文章:

c++ - Epsilon Greedy 在少量武器上表现优于 UCB

neural-network - 如何按照全局步骤在 Keras 中实现指数衰减学习率

python - Sarsa算法,为什么Q值趋于零?

machine-learning - 将转移概率纳入 SARSA

reinforcement-learning - 为什么 Sutton 的 RL 书中没有 n-step Q-learning 算法?

machine-learning - 我的 2048 游戏的 Double DQN 算法永远不会学习

neural-network - 神经网络如何知道它从行动中获得了哪些奖励?

python - CartPole 的 Deep Q 分数停留在 9 分

machine-learning - SARSA 的资格痕迹是如何计算的?

neural-network - 具有神经网络的情景半梯度 Sarsa