Machine learning Tic tac toe机器学习-有效移动
我在玩弄机器学习。特别是Q-Learning,你有一个状态和行动,并根据网络表现给予奖励 现在,对于初学者来说,我给自己设定了一个简单的目标:训练一个网络,使其能够以动作的形式为井字游戏(对随机对手)发出有效的动作。我的问题是网络根本不学习,甚至随着时间的推移变得更糟 我做的第一件事就是与torch取得联系,并为此建立了一个深度q学习模块: 然后,我编写了一个简单的井字游戏,其中一个随机玩家与神经网络竞争,并将其插入该示例的代码中。网络输出由9个节点组成,用于设置相应的单元 如果网络选择空单元格(其中没有X或O),则移动有效。根据这一点,我给正奖励(如果网络选择空单元)和负奖励(如果网络选择占用单元) 问题是它似乎永远也学不会。我尝试了很多变化:Machine learning Tic tac toe机器学习-有效移动,machine-learning,deep-learning,tic-tac-toe,torch,q-learning,Machine Learning,Deep Learning,Tic Tac Toe,Torch,Q Learning,我在玩弄机器学习。特别是Q-Learning,你有一个状态和行动,并根据网络表现给予奖励 现在,对于初学者来说,我给自己设定了一个简单的目标:训练一个网络,使其能够以动作的形式为井字游戏(对随机对手)发出有效的动作。我的问题是网络根本不学习,甚至随着时间的推移变得更糟 我做的第一件事就是与torch取得联系,并为此建立了一个深度q学习模块: 然后,我编写了一个简单的井字游戏,其中一个随机玩家与神经网络竞争,并将其插入该示例的代码中。网络输出由9个节点组成,用于设置相应的单元 如果网络选择空单元格
- 将tic tac toe字段映射为9个输入(0=单元格为空,1=玩家1,2=玩家2)或27个输入(例如,对于空单元格0[空=1,玩家1=0,玩家2=0])
- 将隐藏节点数在10和60之间变化
- 尝试了最多60k次迭代
- 学习率在0.001和0.1之间变化
- 对失败给予负面奖励或仅对成功给予奖励,不同的奖励值
希望这有帮助!你能发布你的代码吗?我的建议是:第一步,忘记神经网络,坚持所有tic tac toe状态值的表格表示。它们的数字是
3^9=19683
。使用Q-Learning,由于@John Wakefield:我目前正在创建一个简化版本,你可以获得更多的状态(2x1网格而不是3x3网格以最小化状态空间)。完成后我会发送代码。@davidhigh:我会阅读线性回归(AI意义上的).然而,我的主要目标是建立一个学习Q-learning的小型试验台,然后将其应用到我想到的一个更难的问题上。谢谢你的回答。我实际上使用了9个输出节点,我在最初的问题中没有很好地表达这一点。为了清晰起见,我现在对其进行了编辑。