我是机器学习和强化学习的新手,我正在尝试创建一个人工智能代理来学习玩蛇。我很难选择/开发一个可以与输入/输出向量的形状工作的神经网络体系结构。
我的输入是一个3x10x10张量,基本上是蛇移动的10x10网格的3层(我在张量中只使用0和1s,标记第一层蛇身体部位的位置,在第二层标记苹果的位置,在第3层标记蛇的头部位置)。
对于我的输出,我正在寻找一个由4个值组成的向量,对应于玩家可用的4个可能的移动(将方向更改为上/下/左/右)。
我想知道在这种情况下如何选择架构的任何建议,以及关于我选择如何将我的游戏状态编码为输入向量以供代理训练的任何想法。
发布于 2022-09-21 18:10:13
您可以在一开始使用ResNet架构,看看会发生什么。基本上,ResNet以形状HxWxC的图像作为输入,其中H-高度、W-宽度、C-通道.在您的示例中,您没有实际的映像,但仍然使用HxW=10x10将您的环境编码在3个通道中。所以我认为你的编码应该有效。
然后,还必须更改ResNet的输出,以便只输出4个值,每个值对应于一个操作。
考虑到输入空间不是那么大,也许您可以从一个非常小的ResNet 18开始,看看会发生什么。考虑到您是ML和RL的新手,有一篇很老的论文试图使用深度学习https://arxiv.org/pdf/1312.5602v1.pdf来解决Atari游戏,而且这种方法并不难理解。蛇是一个与Atari游戏相似(甚至更少)的游戏,因此本文可能会提供更多的见解。
https://stackoverflow.com/questions/73802653
复制相似问题