### 神经网络在AI中用于对手预测

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

  1. 我已经有一些数据,我希望用这些数据为一个默认玩家构建一个基本的神经网络,即我之前没有见过的玩家。问题是我希望更新这个网络,使其适应每一个特定的对手。我尝试搜索在线神经网络算法,但到目前为止没有很成功。您能给我一些建议如何实现这个吗?如何基于新数据更新参数而不需要从头开始训练?

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

非常感谢您。


回答:

好的,我对此又多想了一些,也做了更多的研究,我决定按以下方式进行:

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

  2. 在这里我可能会放弃Weka工具,转而尝试使用FANN库。因为在计算默认参数后我就不需要使用它了,所以它实际上是用另一种语言实现的这一点并不重要。

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

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注