algorithm - 连续 Action -状态-空间和平铺

标签 algorithm reinforcement-learning

在习惯了离散 Action 状态空间中的Q-Learning算法之后,我现在想将其扩展到连续空间。为此,我阅读了 Sutton 介绍中的On-Policy Control with Approximation一章。这里,建议使用线性函数或 ANN 等可微函数来解决连续 Action 状态空间问题。尽管如此,萨顿随后描述了将连续变量映射到离散表示上的平铺方法。这总是必要的吗?

为了理解这些方法,我尝试在没有平铺方法和线性基函数q的情况下实现书中的爬山车示例。由于我的状态空间是二维的,而我的 Action 是一维的,因此我在该等式中使用了三维权重向量 w: enter image description here

当我现在尝试选择最大化输出的 Action 时,如果 w_2 > 0,明显的答案将是 a=1。因此,权重将慢慢收敛到正零,并且代理将不会学到任何有用的东西。由于萨顿能够使用平铺解决问题,我想知道我的问题是否是由于缺少平铺方法引起的,或者我是否做错了什么。 那么:平铺总是必要的吗?

最佳答案

关于您关于平铺的主要问题,答案是否定的,并不总是需要使用平铺。

正如您所尝试的那样,最好实现一些简单的示例,例如爬坡车,以便充分理解这些概念。然而,在这里你误解了一些重要的事情。当本书谈到线性方法时,它指的是参数中的线性,这意味着您可以提取一组(非线性)特征并将它们线性组合。这种近似器可以表示比标准线性回归复杂得多的函数。

您提出的参数化无法表示非线性 Q 函数。考虑到在爬山问题中您想要学习这种风格的 Q 函数:

enter image description here

您将需要比 enter image description here 更强大的东西。解决您的问题的一个简单方法是使用径向基函数 (RBF) 网络。在这种情况下,您使用一组特征(或 BF,例如高斯函数)来映射您的状态空间:

enter image description here

此外,如果你的 Action 空间是离散且小的,最简单的解决方案是为每个 Action 维护一个独立的 RBF 网络。为了选择 Action ,只需计算每个 Action 的 Q 值并选择具有较高值的​​ Action 。通过这种方式,您可以避免在连续函数中选择最佳操作的(复杂)优化问题。

您可以在 Busoniu 等人的文章中找到更详细的解释。 《使用函数逼近器的强化学习和动态规划》一书,第 49-51 页。免费提供here .

关于algorithm - 连续 Action -状态-空间和平铺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322781/

相关文章:

algorithm - 子集和动态规划 - 重叠子问题

tensorflow - tf-agent 的 `policy` 和 `collect_policy` 有什么区别?

python - Sarsa算法,为什么Q值趋于零?

algorithm - 关于优化例程/使用约束的建议

algorithm - 网格中的最长路径

c# - 有人可以帮我做简单的算法吗?

java - 生成一个系列/返回系列中的第 n 项

reinforcement-learning - 关于深度 Q 学习的问题

machine-learning - 具有 2D Action 和 2D 状态的 Q 学习

c++ - 神经网络中的 Q 学习不是 'learning'