我正在考虑使用神经网络在我正在构建的太空射击游戏中为我的敌人提供动力,我想知道;当网络没有一组明确的好输出时,你如何训练神经网络?
4 回答
我目前正在研究神经网络,如果没有明确定义的输入和输出编码,它们似乎毫无用处,而且它们根本无法扩展到复杂性(参见http://en.wikipedia.org/wiki/VC_dimension)。这就是为什么神经网络研究自 20 到 30 多年前最初的炒作以来应用如此之少,而基于语义/状态的人工智能因其在现实世界应用中的成功而接管了每个人的兴趣。
- 一个很好的起点可能是弄清楚如何以数字方式将游戏状态表示为神经网络的输入。
- 接下来的事情是弄清楚游戏中的动作对应的输出类型。
- 想想要使用的神经网络的结构。为了从神经网络中获得有趣的复杂行为,网络几乎必须是循环的。您将需要一个循环网络,因为它们具有“记忆”,但除此之外,您没有太多其他事情可做。然而,具有任何复杂结构的循环网络都很难训练以表现行为。
- 神经网络成功的领域往往是分类(图像、音频、语法等)和在统计预测方面的有限成功(我们期望这个词之后会出现什么词,明天的股价会是多少?)
简而言之,你最好在游戏的一小部分中使用神经网络,而不是作为核心敌人 AI。
您可以查看各种 AI 技术和参考的AI 动态游戏难度平衡。
(IMO,你可以实现敌人的行为,比如“包围敌人”,这真的很酷,无需深入研究高级 AI 概念)
编辑:因为你正在制作一款太空射击游戏,并且你想要为你的敌人提供某种人工智能,我相信你会发现这个链接很有趣:自主角色的转向行为
您是否考虑过很容易修改 FSM 以响应刺激?毕竟它只是一个数字表,你可以将它保存在内存中的某个地方,并随时更改数字。我在我的一篇博客中写了一些关于它的文章,引发了狂热,奇怪的是,它被一些 Game AI 新闻网站所接受。然后那个建立了一个可以击败人类并获得真实新闻的 Pacman AI 女士的人在我的博客上留下了评论,并附有指向更多有用信息的链接
这是我的博客文章,其中包含我关于使用马尔可夫链不断适应游戏环境的一些想法的不连贯的漫谈,并且可能覆盖和结合计算机已经了解的关于玩家如何对游戏情况作出反应的东西。
http://bustingseams.blogspot.com/2008/03/funny-obsessive-ideas.html
这是关于强化学习的精彩资源的链接。smarty mcpacman 为我张贴。
http://www.cs.ualberta.ca/%7Esutton/book/ebook/the-book.html
这是另一个很酷的链接
http://aigamedev.com/open/architecture/online-adaptation-game-opponent/
这些不是神经网络方法,但它们确实适应并不断学习,并且可能比神经网络更适合游戏。
我会向你推荐马修·巴克兰的两本书。
第二本书介绍了反向传播 ANN,这是大多数人在谈论 NN 时的意思。
也就是说,如果你想创建有意义的游戏 AI,我认为第一本书更有用。有一个关于成功使用 FSM 的精彩而丰富的部分(是的,很容易被 FSM 绊倒)。