理解线性、梯度下降的 Sarsa(基于 Sutton & Barto)
Understanding linear, gradient-descent Sarsa (based on Sutton & Barto)
我正在尝试基于Sutton & Barto's Book实现线性梯度下降Sarsa,算法见下图
但是,我很难理解算法中的某些内容:
- w 和 z 的维度是否独立于可以采取多少不同的动作?在书中,它们的维度似乎等于特征的数量,我认为这与动作的数量无关。
- 每个动作都有 w 和 z 吗?还有,我在书上看不到应该是这样的。
- 如果我在上面的两个项目符号中是正确的,那么我看不到索引列表 F_a 如何依赖于动作,因此我看不到动作值函数 q_a可以取决于动作(参见算法中下面标有黄色的行)但是动作值必须取决于动作。所以有些东西我没有得到...
我希望有人能帮我澄清一下:)
w
是函数逼近器的权重向量。你正在逼近的函数是Q(s,a)
,动作价值函数,它告诉你在某种状态下采取行动的价值。由您来定义权重,但是,是的,您是对的,您需要考虑如何表示权重中的动作。一种方法可能是定义一组状态特征,然后每个动作将它们实例化一次(多个单独的 w
向量)。为了方便起见,您可以将这些向量连接成一个大 w
,因为您知道只有被状态-动作对的特征激活的权重向量块才会更新。如果动作 space 很大,则每个动作具有多个不相交的状态特征集是很多权重,因此您可以将多个动作压缩为单个权重的不同标量值。如果真正的 Q 值在动作之间很接近,你将能够表现得一样好,而且你实际上会学得更快,因为需要优化的权重更少。表示是灵活的。由你决定!
我鼓励您查看本书第二版中所写的算法(草稿可从作者的网站获得)。符号更清晰。您发布的算法实际上是一个 lambda return 方法,您可以在第 12 章中阅读它(z
是资格跟踪,它与 w
具有相同的维度并且并不重要到你问的问题)。 Episodic semi-gradient Sarsa,相同的算法减去一些花里胡哨,出现在第 10.1 节。
我正在尝试基于Sutton & Barto's Book实现线性梯度下降Sarsa,算法见下图
但是,我很难理解算法中的某些内容:
- w 和 z 的维度是否独立于可以采取多少不同的动作?在书中,它们的维度似乎等于特征的数量,我认为这与动作的数量无关。
- 每个动作都有 w 和 z 吗?还有,我在书上看不到应该是这样的。
- 如果我在上面的两个项目符号中是正确的,那么我看不到索引列表 F_a 如何依赖于动作,因此我看不到动作值函数 q_a可以取决于动作(参见算法中下面标有黄色的行)但是动作值必须取决于动作。所以有些东西我没有得到...
我希望有人能帮我澄清一下:)
w
是函数逼近器的权重向量。你正在逼近的函数是Q(s,a)
,动作价值函数,它告诉你在某种状态下采取行动的价值。由您来定义权重,但是,是的,您是对的,您需要考虑如何表示权重中的动作。一种方法可能是定义一组状态特征,然后每个动作将它们实例化一次(多个单独的 w
向量)。为了方便起见,您可以将这些向量连接成一个大 w
,因为您知道只有被状态-动作对的特征激活的权重向量块才会更新。如果动作 space 很大,则每个动作具有多个不相交的状态特征集是很多权重,因此您可以将多个动作压缩为单个权重的不同标量值。如果真正的 Q 值在动作之间很接近,你将能够表现得一样好,而且你实际上会学得更快,因为需要优化的权重更少。表示是灵活的。由你决定!
我鼓励您查看本书第二版中所写的算法(草稿可从作者的网站获得)。符号更清晰。您发布的算法实际上是一个 lambda return 方法,您可以在第 12 章中阅读它(z
是资格跟踪,它与 w
具有相同的维度并且并不重要到你问的问题)。 Episodic semi-gradient Sarsa,相同的算法减去一些花里胡哨,出现在第 10.1 节。