【发布时间】:2014-02-27 02:44:51
【问题描述】:
我正在做一个项目,我在该项目中获取棋盘位置(将 FEN 字符串转换为二进制)及其评估分数并将其提供给神经网络。我的目标是让神经网络区分好位置和坏位置。
我如何编码位置:国际象棋中有 12 个独特的棋子,即 白 和 的棋子、车、马、象、后和国王黑色。我使用 4 位对每一块进行编码,其中 0000 表示一个空方块。所以这 64 个方格被编码成 256 位,我用另外 6 位来表示游戏状态,比如轮到谁移动,国王城堡状态等。
问题:由于国际象棋位置的输入空间既不是平滑的也不是单模态的(棋盘位置的微小变化可能导致评估分数的巨大变化),神经网络不学不好。现在,下一个合乎逻辑的事情是以某种方式提取有用的特征(如材料差异、中心控制等)并将其提供给网络。
我不想手动选择特征,因为我希望网络自己学习所有内容。因此,我正在考虑使用 autoencoders 自动提取特征。有没有更好的方法来做到这一点?
总结:从棋盘位置自动提取特征以便将其输入神经网络的最佳方法是什么?
更新:为了生成训练数据,我修改了 Stockfish 以将其评估过程转储到日志文件中。因此,它考虑的每个新移动(位置)都会作为 FEN 字符串连同其评估分数一起写入文件
【问题讨论】:
标签: chess feature-extraction neural-network deep-learning