1

目前我正在为一个项目开发一款AI游戏。我正在使用UCT算法,并计划添加对对手移动的预测。对此,我想用神经网络,但我已经遇到了一些问题:AI中的对手预测的神经网络

  1. 已经有一些数据上,我想建立一个基本的神经网络的默认播放器,即一个球员我的避风港以前没见过。问题是我想更新这个网络,以适应每个特定的对手。我试图寻找一种在线神经网络算法,但目前还不是很成功。你能给我一些建议如何实现这一点?如何根据新数据更新参数而无需从头开始完全运行培训?

  2. 编码是在Java中完成的,我尝试过使用Weka处理我拥有的数据。然而,我发现的唯一神经网络分类器是多层感知器。我熟悉单层感知器,我知道它的输出不是概率(与对数线性或朴素贝叶斯分类器相反)。多层感知器也不具有生成能力吗?如果是这样,那么使用它输出的“分数”作为概率有多不准确?我应该使用不同的神经网络算法吗?如果是这样,是否有可用于Java的库?

非常感谢。

+0

这已在别处进行了调查,取得了良好的效果。 乙状结肠是生物认知(突触强度)的原始研究的倒退。突触是非线性传递函数(学习)的模拟模型,本质上是数字化的。 使用方波,不要被相信他们是线性的人混淆。它们是非线性的定义。 http://stackoverflow.com/questions/10018821/multilayer-perceptron-backpropagation/10046631#10046631 – 2014-02-13 05:11:25

回答

1

好了,我虽然对这个多一点,做一些调查研究,我决定进行如下操作:

  1. 因为我还没有找到更好的东西,我就干脆做1个更新使用通常的反向传播算法来使用新的训练值。据我所知,用一个新值更新1是其他算法中的常用方法,当人们将它们转换为在线学习时。找到正确的学习率可能会很有趣。由于这种方法每次只能执行一次更新,因此反向传播不需要进行非常多的优化,因此我将编写我自己的解决方案,并且不会使用任何库。

  2. 这里我可能会放弃Weka工具,我会尝试使用FANN库来代替。由于在计算默认参数后我不需要使用它,因此它实际上以不同的语言实现并不重要。

请让我知道,如果你知道更好的解决方案。谢谢。