如何用人类对弈的棋局训练国际象棋系统(国际象棋中的机器学习)

作为我项目的一部分,我现在正在研究用人类对弈的棋局来训练一个国际象棋系统。我在机器学习方面有相当的知识,但对于如何进行这个项目却一无所知。这个项目是否太复杂了?请指导我该如何进行。


回答:

我想你想要的是一个能下国际象棋的机器学习系统吧?

实现它的一个方法是将其视为一个模式识别问题。如果你用神经网络来建模,可以这样进行:

  • 输入是一个大小为768=64*2*6的二进制向量(64=8*8的棋盘位置,2个玩家,6种不同的棋子)
  • 输出有64个神经元(每个棋盘位置一个)。
  • 网络会给你提示该移动哪个棋子。它试图预测人类玩家会选择哪个棋子。如果网络选择了无效的移动,你可以选择下一个最可能的棋子(假设你在最后使用了softmax)。

你可以训练第二个网络,它接受相同的输入。你可以考虑构建一个具有12个特征图的CNN,而不是MLP。这个网络应该预测哪位玩家会赢。这样你就知道人类玩家会用第一个网络移动哪个棋子,然后你可以用第二个网络找到“最佳”移动。

更多资源

你可能会对Facebook Research的使用神经网络和长期预测的更好的电脑围棋玩家感兴趣。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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