基于神经网络的国际象棋位置评估

2024-05-29 00:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研制一种可以下棋的人工智能。我想利用keras神经网络来评估董事会的职位。我想通过在AI和AI之间玩大量的游戏来教授NN。我已经实现了alpha-beta修剪

我的想法是创建一个csv文件,其中包含AI玩过的每一个游戏的位置。我会选择要存储在那里的变量。非常简单的例子:

"white_pawns","black_pawns","white_queens","black_queens","white_pawns_on_side","white_won"
3,7,1,2,0,False
3,5,3,0,1,True

我想用这些值训练一个模型,然后用它来评估当前的董事会位置。因此,主要问题是:

如何让神经网络在给定这些变量的情况下输出一个位置值?例如,当它处于绘制状态时0或当我们处于一个棋子状态时1keras首选,但我对任何其他python库开放

如果你能消除我的其他一些疑虑,我也将不胜感激。 这种方法有什么缺陷吗?单场比赛中的每个位置都会使神经网络过度拟合吗?也许我应该在每场比赛中选择几个位置


Tags: 游戏利用状态职位神经网络nn人工智能ai
1条回答
网友
1楼 · 发布于 2024-05-29 00:25:52

我想你知道这一点,但是当一个人评估棋盘时,他不仅要看材料,还要看棋子的位置。其次,有了这个csv,如果你看到的东西是真是假,你就无法决定什么是更好的电影。这就是为什么发动机的评估是数字的。或者你想让它输出一个从-1到1的数字,然后它就是分数?希望做同样的事情,但白赢1,黑赢1,平局0(在数据集文件中)。如果您想对我这样做,请联系我(是否有用于堆栈溢出的消息传递服务?)

结论

在我看来,输入应该是电路板的数字表示,目标不应该是分类器,而应该是数字分类器。其实更简单

我正在开发一个python引擎,这是一个结识对我感兴趣的新朋友的机会

只是说,这是我的第一个答案,所以如果有不清楚的地方,请发表评论,我会尽力帮助你

此外,正如krish所说,这可以通过强化学习来实现。但首先你需要做一个dqn(深度q网络(q学习是一种非常流行的强化学习算法)),为此你需要另一个网络。因为如果没有,这将需要很多时间来训练

相关问题 更多 >

    热门问题