在习惯了离散 Action 状态空间中的Q-Learning
算法之后,我现在想将其扩展到连续空间。为此,我阅读了 Sutton 介绍中的On-Policy Control with Approximation
一章。这里,建议使用线性函数或 ANN 等可微函数来解决连续 Action 状态空间问题。尽管如此,萨顿随后描述了将连续变量映射到离散表示上的平铺方法。这总是必要的吗?
为了理解这些方法,我尝试在没有平铺方法和线性基函数q
的情况下实现书中的爬山车
示例。由于我的状态空间是二维的,而我的 Action 是一维的,因此我在该等式中使用了三维权重向量 w
:
当我现在尝试选择最大化输出的 Action 时,如果 w_2 > 0,明显的答案将是 a=1。因此,权重将慢慢收敛到正零,并且代理将不会学到任何有用的东西。由于萨顿能够使用平铺解决问题,我想知道我的问题是否是由于缺少平铺方法引起的,或者我是否做错了什么。 那么:平铺总是必要的吗?
最佳答案
关于您关于平铺的主要问题,答案是否定的,并不总是需要使用平铺。
正如您所尝试的那样,最好实现一些简单的示例,例如爬坡车,以便充分理解这些概念。然而,在这里你误解了一些重要的事情。当本书谈到线性方法时,它指的是参数中的线性,这意味着您可以提取一组(非线性)特征并将它们线性组合。这种近似器可以表示比标准线性回归复杂得多的函数。
您提出的参数化无法表示非线性 Q 函数。考虑到在爬山问题
中您想要学习这种风格的 Q 函数:
您将需要比 更强大的东西。解决您的问题的一个简单方法是使用径向基函数 (RBF) 网络。在这种情况下,您使用一组特征(或 BF,例如高斯函数)来映射您的状态空间:
此外,如果你的 Action 空间是离散且小的,最简单的解决方案是为每个 Action 维护一个独立的 RBF 网络。为了选择 Action ,只需计算每个 Action 的 Q 值并选择具有较高值的 Action 。通过这种方式,您可以避免在连续函数中选择最佳操作的(复杂)优化问题。
您可以在 Busoniu 等人的文章中找到更详细的解释。 《使用函数逼近器的强化学习和动态规划》一书,第 49-51 页。免费提供here .
关于algorithm - 连续 Action -状态-空间和平铺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322781/