【问题标题】:How to implement a neural network in space Invaders?如何在 Space Invaders 中实现神经网络?
【发布时间】:2015-08-28 15:15:49
【问题描述】:
我正在开发统一游戏引擎中的太空入侵者克隆。我想让敌人变得聪明。
我尝试的一种方法是使用最小最大算法。我获取了玩家的 x 坐标,并从中制作了最小最大树,并用它使敌人在特定时间间隔后从该位置转开。然而,这并没有很好地工作。
现在我想让敌人学习和进化以避免玩家使用神经网络。我如何在太空入侵者中实现这一点?
还有其他算法比神经网络更好用于太空入侵者吗?
【问题讨论】:
标签:
unity3d
artificial-intelligence
neural-network
【解决方案1】:
几乎任何学习算法都会比神经网络更好。然而,这是一个非常深奥的话题——你需要的是一本书和几个月,而不是关于 SO 的快速答案。
所以我会推荐几个:
我不建议为此使用神经网络,因为它们需要很长时间才能学习,即使使用最现代的学习优化技术(我认为你无论如何都不会在任何书中找到) .您希望这些入侵者在飞行中学习,因此您需要响应速度更快的东西。
我可能会使用决策树,并保留一个长度有限的记忆向量,以便小动物可以快速适应玩家策略的变化。
【解决方案2】:
神经网络是游戏 AI 中的复杂机制。但游戏 AI 的主要功能是模拟人类行为的最常见特征,例如游戏中的图灵测试。
或许,使用 GOAP 和 FSM 技术更快地开发逻辑会更好,但要求几乎相同。
【解决方案3】:
你说过,你想让敌人“进化”。是的,我认为神经网络是解决这类问题的方法。更准确地说,进化发展的神经网络。但是你需要一种方法来训练他们......快速。这就是我要做的:首先构建一个用于射击敌人的 AI ......这很简单。然后运行进化算法来开发和训练最好的敌人 AI 神经网络,而您手动开发的玩家 AI 试图杀死它们。更进一步:为你的玩家 AI 赋予一个 evo 神经网络,让它学会尽可能高效地杀死敌人。然后,让它们一起进化。您将获得一些有史以来最聪明的敌人(以及一个非常优秀的玩家 AI——如果您需要的话)。然后,您可以选择来自不同世代的不同个体来代表游戏中的不同难度级别。