了解线性,渐变下降的Sarsa(基于Sutton& Barto)

时间:2016-11-21 14:37:13

标签: reinforcement-learning sarsa

我尝试根据Sutton & Barto's Book实现线性渐变下降Sarsa,请参见下图中的算法。

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

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

我希望有人可以帮我澄清一下:)

Sarsa algo

1 个答案:

答案 0 :(得分:4)

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

我建议您查看本书第二版中所写的算法(草稿可从作者的网站获得)。符号更清晰。您发布的算法实际上是一个lambda返回方法,您可以在第12章中了解它(z是一个资格跟踪,它与w具有相同的维度,并且对您的问题并不重要正在问)。情节性半渐变Sarsa,相同的算法减去一些铃铛和口哨,见10.1节。