【问题标题】:How to train a chess system with games played by humans (Machine Learning in Chess)如何用人类玩的游戏训练国际象棋系统(国际象棋中的机器学习)
【发布时间】:2015-12-27 14:07:00
【问题描述】:

作为我项目的一部分,我现在正致力于训练一个由人类下棋的国际象棋系统。我对机器学习有丰富的知识,但对如何进行这一点一无所知。这个项目是不是太复杂了?请就如何进行。

【问题讨论】:

  • 这确实是一个相当复杂的项目。最好的国际象棋引擎只是盲数运算器,评估接下来 X 轮的所有可能性。他们走捷径并进行了疯狂的优化……但很少有任何形式的人工神经网络。但是,在您的项目中,尝试将数据库中的所有游戏分成单独的回合,并使用它来训练 ANN。尝试某种分数来对同一位置的不同转弯进行排序?也许提供分数以及训练数据?
  • 如果你问这样的问题,那么现在有几乎 100% 的机会这对你来说太复杂了。基于 ML 的游戏并不是学习任何东西的好起点;它目前涉及许多先进的技术,如强化学习、蒙特卡罗方法、uct、深度架构等。
  • 只是出于好奇,你有多少训练样本(移动/完全匹配)?
  • @BlackBear 大约 500 万场比赛。

标签: machine-learning neural-network artificial-intelligence deep-learning


【解决方案1】:

我猜你想要的是一个下棋的机器学习系统?

获得它的一种方法是将其视为模式识别问题。如果您使用神经网络对其进行建模,您可以这样处理:

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

您可以训练第二个接受相同输入的网络。你可能会考虑用 12 个特征图而不是 MLP 构建一个 CNN。这个网络应该预测哪个玩家会获胜。然后您知道使用第一个网络的人会移动哪个图形,然后您可以找到使用第二个网络的“最佳”移动。

更多资源

您可能对 Facebook Research 的 Better Computer Go Player with Neural Network and Long-term Prediction 感兴趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多