首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >神经网络在连续蛇游戏中的应用

神经网络在连续蛇游戏中的应用
EN

Stack Overflow用户
提问于 2014-05-31 20:26:31
回答 3查看 1.5K关注 0票数 8

我正在尝试为一个“连续的蛇”游戏实现一个人工智能。它与普通的蛇游戏有很大的不同,至少就AI而言是如此。基本上,蛇的驾驶有点像汽车,两个玩家中第一个撞到他的踪迹或其他玩家的踪迹的人输掉了比赛。此外,屏幕还会环绕其边界。

如果你看一段我目前进展的视频,你会更好地理解它:https://www.youtube.com/watch?v=i9qU-r4COQ8

不算太差,但还是打不倒我(我是黄色的)。理想情况下,获胜的人工智能需要展示这些行为:

  1. 避免使用walls
  2. 注意到它可以“缩短”的场合(当在我前面一点的时候)。
  3. 避免“缩短”。
  4. 对当前2d空间的拓扑有一个想法,试图将我封闭在一个较小的空间/保护他自己一个更大的空间。

<代码>G210

我目前的方法使用的是整洁算法(http://www.cs.ucf.edu/~kstanley/neat.html)。这是一种遗传算法,可以在几代人的时间里进化神经网络。它在一定程度上学会了如何做1、2和3(但不是很好),但对4一无所知。

对于输入,我使用:

  • 相对于我们的对手角度
  • 对手到我们的距离
  • 相对于我们的对手航向
  • 通过一定数量的树搜索在某些方向上探测的智能射线(参见视频)

<代码>F221

不过我现在有点卡住了,我想知道:

  • ,我应该研究哪类算法?递归/ RealTime /连续/无监督神经网络,...

  • ,有没有我应该研究的具体算法?,

  • ,我还可以使用什么其他的输入集合?,
  • 。人类玩家可以看到游戏中的所有像素,这比我的一组简单输入信息要多得多。但我不认为将我的示例中的200x200像素提供给我的NN会有任何效果。也许如果我将它们离散化,并使它们相对于AI位置/方向...听起来很棘手。

如果有人想看我的代码,我很乐意提供(C#)。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2019-08-16 23:06:41

这里的主要问题是你的学习算法没有足够的信息(除非你正在使用递归特性)。基本上,每一帧你都要求它通过几个距离传感器在迷宫中导航--这是不可能的。

singhV之前说的是真的-为了获得好的结果,学习算法的输入必须是图像(以及你自己的头部位置和角度)。您可以将分辨率降低一点,然后转换为单色以提高效率。

至于你的问题:*循环网络是可以记住以前的状态的网络,并基本上像“记忆”一样使用它。这不是这项任务所需要的(除非你真的想保持输入的原样,但然后蛇就必须学会“记住”它看到的所有东西-这将是非常令人印象深刻的,但太难了)*无监督:这意味着没有“例子”可供学习,而是通过正/负反馈学习(丢失=坏)。您的网络是无人监督的。*实时/连续-不知道,除了2007年微软的一些研究外,我什么也没找到:https://www.microsoft.com/en-us/research/publication/continuous-neural-networks/

顺便说一句,整洁是相当整洁的,我很高兴我遇到了这个!

票数 1
EN

Stack Overflow用户

发布于 2020-06-06 06:39:28

我还不能发表评论,所以我会在这里发表我的建议,但我不希望这是对你问题的完整回答,只是为你提供一些想法。

1)尝试输入可供您的“蛇”移动的区域。这可能并不容易做到,您将不得不采取一些假设。例如:假设对手走的路线使你的面积最小,或者更简单,对手保持相同的方向。

2)尝试输入攻击性策略,即计算对手可用区域。该算法可以尝试最大化你的面积,同时最小化对手的面积。

3)最后,尝试一些与人工神经网络不同的东西。如果你将你的问题表述为最小化/最大化任务,你可以使用很多方法来解决它。

顺便说一句,很酷的东西!

票数 0
EN

Stack Overflow用户

发布于 2019-05-30 05:31:31

首先,如果你想得到好的结果,可以使用深度卷积Q学习,它将图像作为输入。为了进一步改进,你可以输入三到四个连续图像的堆栈,这将对确定方向有很大帮助。我不认为你需要使用lstm来解决这个问题,堆叠多个帧可以很好地解决。为了进一步改进,您可以将相同的代码转换为决斗网络。

如果你喜欢快速结果,较少的计算,你可以使用增强随机搜索,但如果不仔细训练,它可能会陷入局部最大值。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23970045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档