我正在研制一种可以下棋的人工智能。我想利用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
或当我们处于一个棋子状态时1
keras
首选,但我对任何其他python
库开放
如果你能消除我的其他一些疑虑,我也将不胜感激。 这种方法有什么缺陷吗?单场比赛中的每个位置都会使神经网络过度拟合吗?也许我应该在每场比赛中选择几个位置
我想你知道这一点,但是当一个人评估棋盘时,他不仅要看材料,还要看棋子的位置。其次,有了这个csv,如果你看到的东西是真是假,你就无法决定什么是更好的电影。这就是为什么发动机的评估是数字的。或者你想让它输出一个从-1到1的数字,然后它就是分数?希望做同样的事情,但白赢1,黑赢1,平局0(在数据集文件中)。如果您想对我这样做,请联系我(是否有用于堆栈溢出的消息传递服务?)
结论
在我看来,输入应该是电路板的数字表示,目标不应该是分类器,而应该是数字分类器。其实更简单
我正在开发一个python引擎,这是一个结识对我感兴趣的新朋友的机会
只是说,这是我的第一个答案,所以如果有不清楚的地方,请发表评论,我会尽力帮助你
此外,正如krish所说,这可以通过强化学习来实现。但首先你需要做一个dqn(深度q网络(q学习是一种非常流行的强化学习算法)),为此你需要另一个网络。因为如果没有,这将需要很多时间来训练
相关问题 更多 >
编程相关推荐