我在研究一个应该能下棋的人工智能。我想利用keras神经网络来评估董事会的地位。我想通过在AI和AI之间玩大量的游戏来教NN。我已经实施了α-β剪枝。
我的想法是创建一个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,当我们是一个棋子的时候是1。keras优先,但我对任何其他python库都是开放的。
如果你能消除我的其他疑虑,我也将不胜感激。这种方法有什么缺陷吗?不是一个游戏中的每一个位置都会使神经网络变得过火吗?也许我应该从每场比赛中只选几个位置?
发布于 2020-08-10 08:34:11
我想你知道这一点,但当一个人评估董事会时,他不仅是在看材料--而且还在看棋子的位置。其次,有了这个csv,如果你看到的只是对还是错,你就不能决定什么是更好的电影。这就是为什么发动机的评估是数字的。或者你想让它输出一个从-1到1的数字,然后是分数?希望做同样的事情,但做1的白色胜利,-1的黑色胜利或0抽签(在数据集文件中)。如果你想和我一起做这件事,来找我(是否有堆栈溢出的消息传递服务?)
结论
在我看来,输入应该是板的数字表示,目标不应该是分类器,而应该是数字分类器。其实比较简单。
我有一个python引擎,我正在做这个工作,这是一个认识对我感兴趣的新朋友的机会。
只是说,这是我的第一个回答,所以如果有什么不清楚,请发表评论,我会尽力帮助!
而且,就像克里什说的那样,这可以通过强化学习来实现。但是首先你需要做一个dqn (深层Q网络(q学习是一种非常流行的强化学习算法),为此你需要另一个网络。因为如果没有,这需要很长时间来训练。
https://stackoverflow.com/questions/60021619
复制相似问题