-2

目前我正在做一个项目,我正在为游戏创建一个 AI 播放器。我正在使用 UCT 算法,我计划添加对对手移动的预测。为此,我想使用神经网络,但遇到了一些问题:

  1. 已经有一些数据我想为默认玩家构建一个基本的神经网络,即我以前从未见过的玩家。问题是我想更新这个网络,以便它适应每个特定的对手。我曾尝试搜索在线神经网络算法,但到目前为止还不是很成功。你能给我一些建议如何实施吗?如何在不完全从头开始训练的情况下根据新数据更新参数?

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

非常感谢你。

4

1 回答 1

1

好的,所以我对此有更多了解并进行了更多研究,我决定按以下步骤进行:

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

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

如果您知道更好的解决方案,请告诉我。谢谢。

于 2012-04-04T23:09:29.087 回答