Neural network 神经网络玩Tic-Tac-Toe游戏';我学不会
我有一个神经网络在玩井字游戏。(我知道还有其他更好的方法,但我想了解NN) 所以NN对一个随机AI起作用。首先,它应该学会做出一个允许的举动,即不要选择一个已经被占用的领域 然而,这并没有走得很远。 当NN选择非法移动时,我会优化权重,使到另一个随机选择(合法)场的距离最小化。(有一个输出值应介于1和9之间) 我的问题是:在改变权重时,以前优化的结果现在也改变了。所以我有这种过度拟合:每次我回过头来优化某个特定情况下的权重,其他情况下的决策都会变得更糟 我知道我应该有9个输出神经元而不是1个,并且可能不应该使用随机场作为目标,因为我假设这会把事情搞砸。我开始改变这一点 尽管如此,这个问题似乎仍然存在。明显地如何在一种情况下改进决策而不忘记其他情况? 我提出的一个解决方案是“记住”每一场比赛,并在所有比赛中同时优化 然而,过了一段时间,这对计算变得非常苛刻。此外,它似乎进入了全面列举所有可能的董事会情况的方向。这对于井字游戏来说是可能的,但如果我换到另一个游戏,比如说围棋,这就不可能了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个,并
我的错在哪里?我通常如何解决这个问题?或者我可以在哪里读到它?非常感谢为了有效地解决这个问题,你应该考虑强化学习方法,而不是你现在正在做的事情。你要做的是学习一个玩井字游戏的特工的行为。经纪人在赢得比赛时会得到高额奖励,在输球时会受到高额处罚,在执行非法移动时会受到更高的处罚。我的猜测是,即使使用非常简单的神经网络,使用Q-learning等方法与神经网络也能完美地工作。关于这个主题的一篇有用的论文可以是:,或者更早的关于TD-Gammon的论文(我想你可以很容易地找到关于这个主题的教程,使用关键词TD-Gammon,Q-learning,…) 顺便说一句,对于模型可能不起作用的原因,一个更实际的答案是,您似乎在使用一个单元来表示分类输出:如果您想表示1到N之间的整数,您应该使用N个值在0到1之间的输出神经元来表示它,并选择值最高的神经元作为您的答案。使用值介于1和9之间的单个神经元会在输出之间创建非自然的不对称,例如,当预期值为3时,网络输出9的错误高于输出2的错误。显然情况并非如此:所有错误的答案都同样错误 希望这有帮助
最好的谢谢你的回答。我认为即使一个输出不理想,NN应该能够学会不总是选择同一个字段,不是吗?不管怎样,我已经按照你的建议转到了分类。但后来我发现了其他问题。我使用了一个来自Matlab的优化函数,它的梯度总是接近于零,因为初始权重设置为零。因此它从未开始优化。因此,我在NN中包含了偏差。现在它仍然没有学好,但我正在努力,并取得进展。我将阅读有关Q-learning的文章。致以最良好的祝愿,丹尼尔