我正在考虑使用神经网络来驱动我正在构建的太空射击游戏中的敌人,我想知道:当网络没有一个明确的良好输出集时,你如何训练神经网络?
回答:
我目前正在学习神经网络,但如果没有明确定义的输入和输出编码,它们似乎毫无用处,并且它们根本无法扩展到复杂性(参见http://en.wikipedia.org/wiki/VC_dimension)。这就是为什么自20-30多年前最初的炒作以来,神经网络研究的应用如此之少,而基于语义/状态的AI因其在现实世界应用中的成功而接管了所有人的兴趣。
- 首先,一个好的开始可能是弄清楚如何以数字方式表示游戏状态,作为神经网络的输入。
- 接下来,需要弄清楚什么样的输出对应于游戏中的动作。
- 考虑要使用的神经网络的结构。要从神经网络获得有趣的复杂行为,网络几乎必须是循环的。你需要一个循环网络,因为它们具有“记忆”,但除此之外,你没有太多其他可依靠的东西。然而,具有任何复杂结构的循环网络都很难训练以产生所需的行为。
- 神经网络已经成功的领域往往是分类(图像、音频、语法等)以及在统计预测方面的有限成功(我们期望这个词后面出现什么词,明天的股票价格是多少?)
简而言之,最好是将神经网络用于游戏的一小部分,而不是作为核心敌人AI。