网格世界的状态表示

State representation for grid world

我是强化学习和 q-learning 的新手,我正在尝试理解概念并尝试实现它们。我发现大多数 material 使用 CNN 层来处理图像输入。我想我宁愿从比比更简单的东西开始,所以我使用网格世界。

这是我已经实现的。我按照 MDP 实施了一个环境,并具有 5x5 网格,具有固定的代理位置 (A) 和目标位置 (T)。开始状态可能如下所示。

-----
---T-
-----
-----
A----

目前我将我的状态表示为长度为 25 (5x5) 的一维向量,其中 1 位于 Agent 所在的位置,否则为 0,例如 上面的状态将被表示为 vector

[1, 0, 0, ..., 0]

我已经成功地实现了 Q table 和没有隐藏层的简单 NN 的解决方案。

现在,我想更进一步,通过让每一集的目标位置随机化来让任务变得更复杂。因为现在我当前的状态表示和动作之间没有关联,所以我的代理人随机行动。为了解决我的问题,首先我需要调整我的状态表示以包含一些信息,例如到目标的距离、方向或两者。问题是,我现在不知道如何表示我的状态。我想到了一些想法:

  1. [x, y, distance_T]
  2. [distance_T]
  3. 两个 5x5 向量,一个用于 Agent 的位置,一个用于 Target 的位置

    [1, 0, 0, ..., 0], [0, 0, ..., 1, 0, ..., 0]

我知道即使我弄清楚状态表示,我实现的模型也无法解决问题,我需要转向隐藏层、经验重放、冻结目标网络等,但是我只想验证模型失败。

最后,我想问一下如何将这种状态表示为神经网络的输入。如果有任何我遗漏的信息来源、文章、论文等,请随时 post 他们。

提前谢谢你。

在强化学习中没有正确的状态表示。但是存在错误的状态表示。至少,也就是说,Q-learning 和其他 RL 技术对状态表示做了一定的假设。

假设状态是马尔可夫决策过程(MDP)的状态。在 MDP 中,你需要知道 'predict' 的所有信息(即使以概率方式)在当前状态下都是可用的。也就是说,代理必须不需要记忆过去的状态来做出决定。

在现实生活中很少有马尔可夫决策过程。但是很多时候你有一些接近的东西,这已经被经验证明对于 RL 算法来说已经足够了。

作为 "state designer",您希望创建一个状态,使您的任务尽可能接近 MDP。在您的特定情况下,如果您将 距离作为您的状态,则几乎没有信息可以预测下一个状态 ,即下一个距离。当前距离、之前的距离和之前的动作之类的东西是更好的状态,因为它给你方向感。你也可以让你的状态是目标所在的距离和方向。

你最后建议的两个矩阵是我最喜欢的一个。因为它描述了任务的整体状态而没有放弃任务的实际目标。它还可以很好地映射到卷积网络。

距离方法可能收敛得更快,但我认为它有点像作弊,因为你实际上告诉代理它需要寻找什么。在更复杂的情况下,这几乎不可能。

您最后的建议是将状态表示为函数逼近器输入的最通用方法,尤其是对于神经网络。通过该表示,您还可以添加更多维度,这些维度将代表不可访问的块,甚至 其他代理 。因此,您概括了表示并可能将其应用于其他 RL 域。您还将有机会为更大的网格尝试卷积神经网络。