作为我项目的一部分,我现在正在研究用人类对弈的棋局来训练一个国际象棋系统。我在机器学习方面有相当的知识,但对于如何进行这个项目却一无所知。这个项目是否太复杂了?请指导我该如何进行。
回答:
我想你想要的是一个能下国际象棋的机器学习系统吧?
实现它的一个方法是将其视为一个模式识别问题。如果你用神经网络来建模,可以这样进行:
- 输入是一个大小为768=64*2*6的二进制向量(64=8*8的棋盘位置,2个玩家,6种不同的棋子)
- 输出有64个神经元(每个棋盘位置一个)。
- 网络会给你提示该移动哪个棋子。它试图预测人类玩家会选择哪个棋子。如果网络选择了无效的移动,你可以选择下一个最可能的棋子(假设你在最后使用了softmax)。
你可以训练第二个网络,它接受相同的输入。你可以考虑构建一个具有12个特征图的CNN,而不是MLP。这个网络应该预测哪位玩家会赢。这样你就知道人类玩家会用第一个网络移动哪个棋子,然后你可以用第二个网络找到“最佳”移动。
更多资源
你可能会对Facebook Research的使用神经网络和长期预测的更好的电脑围棋玩家感兴趣。