gpt4 book ai didi

neural-network - 神经网络的网格世界表示

转载 作者:行者123 更新时间:2023-12-02 01:26:28 26 4
gpt4 key购买 nike

我正在尝试为 Q 学习算法提出更好的二维网格世界状态表示,该算法将神经网络用于 Q 函数。

在教程中,Q-learning with Neural Networks ,网格表示为一个 3 维整数数组(0 或 1)。第一维和第二维表示对象在网格世界中的位置。第三个维度编码它是哪个对象。

因此,对于其中包含 4 个对象的 4x4 网格,您可以使用包含 64 个元素 (4x4x4) 的 3 维数组来表示状态。这意味着神经网络在输入层将有 64 个节点,因此它可以接受网格世界的状态作为输入。

我想减少神经网络中的节点数量,这样训练时间就不会那么长。那么,您能否将网格世界表示为二维 double 组?

我试图将 4x4 网格世界表示为 double 的二维数组,并使用不同的值来表示不同的对象。比如我用0.1代表球员,0.4代表进球。然而,当我实现这个算法时,算法完全停止了学习。

现在我认为我的问题可能是我需要更改我在层中使用的激活函数。我目前正在使用双曲正切激活函数。我的输入值范围为 (0 - 1)。我的输出值范围从(-1 到 1)。我也试过 sigmoid 函数。

我意识到这是一个需要提出问题的复杂问题。任何有关网络架构的建议都将不胜感激。

更新

游戏共有三种变体:1.世界是静止的。所有对象都从同一个地方开始。2. 玩家的起始位置是随机的。所有其他对象保持不变。3. 每个格子都是完全随机的。

通过更多测试,我发现我可以用我的二维数组表示完成前两个变体。所以我认为我的网络架构可能没问题。我发现我的网络现在非常容易受到灾难性遗忘的影响(比我使用 3d 阵列时更容易发生)。我不得不用“经验回放”让它学习,但即便如此我仍然无法完成第三个变体。我会继续努力。我很震惊改变网格世界表示的差异有多大。它根本没有提高性能。

最佳答案

一些标准表示是:

  • 多项式(通常是一阶或二阶):对于一阶,您将有一个三维向量,其中第一个元素是偏差(0 阶),第二个是x 坐标,第三个是 y 坐标。对于更高的学位,您还将拥有 x^2, y^2, xy ...。如果环境发生变化,您也必须对物体位置做同样的事情。

  • Radial basis functions (或 tile coding,因为状态空间是离散的):您将有一个 N x N 向量(N 是环境的大小)和每个基础/tile会告诉您代理是否在相应的单元格中。你也可以有更少的底座/瓷砖,每一个都覆盖一个以上的单元格。然后,您可以为环境中的对象附加一个多项式(如果它们的位置发生变化)。

无论如何,64 维输入对于神经网络来说应该不是问题。我不确定 tanh 是最好用的非线性函数。如果你阅读 the famous DeepMind paper你会看到他们使用了修正线性激活 ( why? read this )。

此外,请务必使用 gradient descent optimizer在反向传播期间。

编辑

第一版和第二版基本上没有区别(实际上,具有随机代理初始位置甚至可以加快学习速度)。第三个版本当然更难,因为您必须在状态表示中包含有关环境的详细信息。

无论如何,我建议的特征仍然是相同的:多项式或径向基函数。

经验回放几乎是强制性的,正如我在上面引用的 DeepMind 论文中所描述的那样。此外,您可能会发现使用第二个深度网络作为 Q 函数的目标是有益的。我认为教程中没有建议这样做(我可能错过了)。基本上,目标 r + max(a) gamma * Q(s', a) 由与您的策略使用的 Q 网络不同的网络给出。每个 C 步骤都将 Q 网络的参数复制到 Q 目标网络,以便在时间差异备份期间提供一致的目标。这两个技巧(使用小批量进行经验回放和拥有单独的目标网络)是深度 Q 学习成功的原因。同样,请参阅 DeepMind 论文了解详细信息。

最后,您可能需要检查的一些关键方面:

  • 你的小批量有多大?
  • 您的政策的探索性如何?
  • 在开始学习之前,您使用随机策略收集了多少样本?
  • 你还等多少钱? (它很容易需要总共 500k 个样本来学习)

关于neural-network - 神经网络的网格世界表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36850302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com