我尝试根据Sutton & Barto's Book实现线性渐变下降Sarsa,请参见下图中的算法。
但是,我很难理解算法中的某些内容:
我希望有人可以帮我澄清一下:)
答案 0 :(得分:4)
w
是函数逼近器的权重向量。您接近的函数是Q(s,a)
,即动作值函数,它告诉您在某个状态下执行操作的值。由你来定义权重,但是,你是对的,你需要考虑如何在权重中表示动作。一种方法可能是定义一组状态特征,然后每个动作实例化一次(多个单独的w
向量)。为方便起见,您可以将这些向量连接成一个大的w
,因为您知道只有状态 - 动作对的特征激活的权重向量块才会被更新。如果动作空间很大,则每个动作具有多个不相交的状态特征集是很多权重,因此您可以将多个动作压缩为单个权重的不同标量值。如果操作之间的真实Q值接近,您将能够执行同样的操作,并且您实际上学得更快,因为需要优化的权重更少。表示是灵活的。由你决定!
我建议您查看本书第二版中所写的算法(草稿可从作者的网站获得)。符号更清晰。您发布的算法实际上是一个lambda返回方法,您可以在第12章中了解它(z
是一个资格跟踪,它与w
具有相同的维度,并且对您的问题并不重要正在问)。情节性半渐变Sarsa,相同的算法减去一些铃铛和口哨,见10.1节。