受到谷歌最近的 AlphaGo 项目的启发,我决定作为一个有趣的个人挑战,我想使用深度学习和卷积神经网络来构建一种算法,当难度设置为专家时,它可以击败普通的国际象棋程序。我的国际象棋很糟糕,而且通常无法击败简单/中等以上的计算机,因此制作比我聪明得多的东西(至少在国际象棋方面)听起来很迷人。
问题: 预测下一个最佳棋步的目标变量应该是什么样的?
我已经建立了很长时间的预测模型,但我无法解决这个问题。一些让我感到困惑的事情:
- 我相信围棋的目标变量只是棋盘上的整个空间网格。在国际象棋中,合法移动的数量是有限的,随着整个游戏过程中棋子从棋盘上移走,合法移动的数量会不断减少。如何表示缩小的目标空间?
- 并非所有棋子都有相同的规则集(例如:皇后对骑士)。我是否需要以某种方式明确地编码这些规则,或者深度学习会自动学习它们吗?
笔记:
我知道 alpha-beta 修剪和准蛮力搜索技术已被证明在国际象棋中表现良好,但是,我特别想使用深度学习来代替。
AlphaGo 从监督学习 (SL) 开始,研究记录的专家人类动作以制定策略网络等。就我而言,我只是尝试做监督学习部分,当我这样做时,我很难定义目标变量。这就是我问题的根源。