4

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

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

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

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

萨尔萨算法

4

1 回答 1

4

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

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

于 2016-11-23T03:41:52.807 回答