Neural network 网格世界的状态表示

Neural network 网格世界的状态表示,neural-network,reinforcement-learning,q-learning,Neural Network,Reinforcement Learning,Q Learning,我对强化学习和q-learning还不熟悉,我试图理解概念并尝试实施它们。我发现的大多数材料都使用CNN层来处理图像输入。我想我宁愿从简单的开始,所以我使用网格世界 这是我已经实现的。我通过遵循MDP实现了一个环境,并具有5x5网格,具有固定的代理位置(A)和目标位置(T)。开始状态可能是这样的 ----- ---T- ----- ----- A---- 目前,我将我的状态表示为长度为25(5x5)的一维向量,其中1位于代理所在的位置,否则为0,例如 上述状态将表示为向量 [1, 0, 0,

我对强化学习和q-learning还不熟悉,我试图理解概念并尝试实施它们。我发现的大多数材料都使用CNN层来处理图像输入。我想我宁愿从简单的开始,所以我使用网格世界

这是我已经实现的。我通过遵循MDP实现了一个环境,并具有5x5网格,具有固定的代理位置(A)和目标位置(T)。开始状态可能是这样的

-----
---T-
-----
-----
A----
目前,我将我的状态表示为长度为25(5x5)的一维向量,其中1位于代理所在的位置,否则为0,例如 上述状态将表示为向量

[1, 0, 0, ..., 0]
我已经成功地用Q表和没有隐藏层的简单神经网络实现了解决方案

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

  • [x,y,距离]
  • [距离]
  • 两个5x5矢量,一个用于代理位置,一个用于目标位置

    [1,0,0,…,0],[0,0,…,1,0,…,0]

  • 我知道,即使我将找出状态表示,我实现的模型也无法解决问题,我需要向隐藏层移动,体验重播、冻结目标网络等,但我只想验证模型失败

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


    提前感谢。

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

    假设这些状态是马尔可夫决策过程(MDP)的状态。MDP是指在当前状态下,您需要知道的所有“预测”(即使是以概率方式)都是可用的。这就是说,代理必须不需要记忆过去的状态来作出决定

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

    作为“状态设计器”,您希望创建一个状态,使您的任务尽可能接近MDP。在您的特定情况下,如果您将距离作为您的状态,那么几乎没有信息可以预测下一个状态,即下一个距离。像当前距离、上一个距离和上一个动作这样的东西是一个更好的状态,因为它给你方向感。您还可以将您的状态设置为目标所在的距离和方向

    您最后提出的两个矩阵是我最喜欢的。因为它描述了任务的整个状态,而没有透露任务的实际目标。它也很好地映射到卷积网络


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

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