Neural network 神经网络玩Tic-Tac-Toe游戏';我学不会

Neural network 神经网络玩Tic-Tac-Toe游戏';我学不会,neural-network,tic-tac-toe,backpropagation,Neural Network,Tic Tac Toe,Backpropagation,我有一个神经网络在玩井字游戏。(我知道还有其他更好的方法,但我想了解NN) 所以NN对一个随机AI起作用。首先,它应该学会做出一个允许的举动,即不要选择一个已经被占用的领域 然而,这并没有走得很远。 当NN选择非法移动时,我会优化权重,使到另一个随机选择(合法)场的距离最小化。(有一个输出值应介于1和9之间) 我的问题是:在改变权重时,以前优化的结果现在也改变了。所以我有这种过度拟合:每次我回过头来优化某个特定情况下的权重,其他情况下的决策都会变得更糟 我知道我应该有9个输出神经元而不是1个,并

我有一个神经网络在玩井字游戏。(我知道还有其他更好的方法,但我想了解NN) 所以NN对一个随机AI起作用。首先,它应该学会做出一个允许的举动,即不要选择一个已经被占用的领域

然而,这并没有走得很远。 当NN选择非法移动时,我会优化权重,使到另一个随机选择(合法)场的距离最小化。(有一个输出值应介于1和9之间)

我的问题是:在改变权重时,以前优化的结果现在也改变了。所以我有这种过度拟合:每次我回过头来优化某个特定情况下的权重,其他情况下的决策都会变得更糟

我知道我应该有9个输出神经元而不是1个,并且可能不应该使用随机场作为目标,因为我假设这会把事情搞砸。我开始改变这一点

尽管如此,这个问题似乎仍然存在。明显地如何在一种情况下改进决策而不忘记其他情况? 我提出的一个解决方案是“记住”每一场比赛,并在所有比赛中同时优化

然而,过了一段时间,这对计算变得非常苛刻。此外,它似乎进入了全面列举所有可能的董事会情况的方向。这对于井字游戏来说是可能的,但如果我换到另一个游戏,比如说围棋,这就不可能了


我的错在哪里?我通常如何解决这个问题?或者我可以在哪里读到它?非常感谢 顺便说一句,对于模型可能不起作用的原因,一个更实际的答案是,您似乎在使用一个单元来表示分类输出:如果您想表示1到N之间的整数,您应该使用N个值在0到1之间的输出神经元来表示它,并选择值最高的神经元作为您的答案。使用值介于1和9之间的单个神经元会在输出之间创建非自然的不对称,例如,当预期值为3时,网络输出9的错误高于输出2的错误。显然情况并非如此:所有错误的答案都同样错误

希望这有帮助


最好的

谢谢你的回答。我认为即使一个输出不理想,NN应该能够学会不总是选择同一个字段,不是吗?不管怎样,我已经按照你的建议转到了分类。但后来我发现了其他问题。我使用了一个来自Matlab的优化函数,它的梯度总是接近于零,因为初始权重设置为零。因此它从未开始优化。因此,我在NN中包含了偏差。现在它仍然没有学好,但我正在努力,并取得进展。我将阅读有关Q-learning的文章。致以最良好的祝愿,丹尼尔