玩四的机器学习算法连接


14

我目前正在阅读有关机器学习的文章,并想知道如何将其应用于玩Connect Four

我目前的尝试是使用S型函数模型和“一对多”方法的简单多类分类器。

在我看来,输入要素必须是7x6 = 42网格字段的状态(播放器1的光盘,播放器2的光盘为空)。

输出将是放入光盘的行数。因为这是1到7之间的离散数字,所以我认为可以将其视为多类分类问题。

但是,如何生成可用于监督学习的培训示例?

主要目标是赢得比赛,但是除了最后一回合,每次比赛的结局显然都不为人所知。如果我只让两个随机决定做什么的玩家互相对抗数千次,那么简单地将每一轮胜利者的所有回合作为训练示例就足够了吗?还是我必须以完全不同的方式来做到这一点?

编辑:根据评论中的建议,我读了一些关于强化学习的知识。 据我所知,Q-Learning应该可以解决问题,即我必须近似当前状态的函数Q,并采取行动使其成为从该状态开始的最大累积奖励。然后,每个步骤将是选择导致Q最大值的动作。但是,此游戏有太多状态要执行此操作,例如作为查找表。那么,对这个Q函数建模的有效方法是什么?


2
Google“强化学习”
乔治

好的,我想这确实适用于此问题。似乎有很多读书读物。还有其他更具体的指示或建议吗?
汤姆(Tom)

1
如果我知道更多,我会将其发布为答案:)不幸的是,我没有强化学习的经验。我将从汤姆·米切尔(Tom Mitchell)撰写的《机器学习》一书开始。这是一本很好的入门书,并且有一章是关于强化学习的。
乔治

1
后者,我只是对机器学习感到好奇,并试图了解它。
汤姆(Tom)

1
@Tom,有更好的方法来“了解”机器学习技术。我将从更基本的分类和回归技术开始,然后从那里开始。您可以从UCI的机器学习数据库中获取数据集,查看Andrew Ng的(斯坦福大学)机器学习课程笔记并开始实施。直接进入尝试使用强化学习来解决连接4的问题,似乎很尴尬且过于复杂。
尼克

Answers:


8

只是为了提供一种简单的强化学习替代方法,您可以使用基本的maxmax算法来搜索良好的移动,并使用机器学习来评估板的位置。

为了明确起见,minimax构建了一个游戏树,其中每个节点都标有叶子的结果(1 =玩家A获胜,0 =玩家B获胜),假设A选择了最大化该数字的移动,B选择了移动使它最小化。

除非游戏非常简单,否则您将无法构建整个游戏树,直至终端。相反,您需要在未完成的棋盘位置停下来,并通过一些启发式方法评估叶子(基本上是玩家A从给定位置获胜的概率)。您可以让机器学习算法(如神经网络)尝试通过将四个位置连接到已知结果来学习这种可能性。

要生成训练示例,您可以使用简单的试探法构建您的minimax播放器,让它自己玩一千次,使用这些游戏训练您的第一个神经网络,然后让它自己支付一千个游戏,依此类推。运气好的话,您的系统将随着每一代的发展而改进。


2

不久前,我写了一篇有关使用minimax玩connect 的博客。您可以在此处查看运行中的代码。如果您需要训练模型,也许可以让它针对我的minimax实现玩几千场游戏。


随意在Github上添加我的代码。github.com/lukasvermeer/minimax
Lukas Vermeer

欢迎使用Stack Exchange。这是一个问答网站。请阅读我们的常见问题解答,特别是如何回答。特别是,我们不希望仅包含答案链接的帖子。感谢您的贡献,但能否请您在此处将博客文章的要点总结一下?
吉尔斯

抱歉,最初的问题是“如何生成可用于监督学习的培训示例?” 我提供了可用于生成这些代码的工作代码的链接。我看不出在上面写更多的文字将如何帮助满足原始需求。
Lukas Vermeer 2012年

“始终欢迎潜在解决方案的链接,但是请在该链接周围添加上下文,以便您的其他用户会知道它的含义和存在的原因。请始终引用重要链接中最相关的部分,以防目标站点出现无法访问或永久脱机。” 我想我确实做到了。后者将是无关紧要的。最初的问题是需要示例游戏,而不是如何实现解决方案的解释。
卢卡斯·维米尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.