学习国际象棋的规则


11

一个类似的问题询问计算机是否可以通过分析数千种游戏来学习以最佳方式下棋。

如果一台机器在开始和每次移动之后可以看几局棋(或几局跳棋)的棋盘状态,是否可以对它进行编程以学习游戏规则?

如果可以的话,这项工作在多大程度上(例如,它能够考虑到晋升或晋升)?哪种机器学习算法将使之成为可能?


3
机器应该能够进入一种状态,可以说“我已经看到此举动了,所以我假设我可以在类似情况下执行它。” 这是否构成“学习规则”几乎是一个哲学问题。;)
deceze 2011年

@deceze好吧,你并不完全正确。通过学习规则,一种方法就是能够根据以前从未在程序中进行过的布局进行移动。否则,它不是在学习规则,而是在记住动作。

2
@Max计算机能够正确地进行前所未有的移动吗?可以说,骑士已经多次前进两次,一次向一侧移动,但是从来没有两次后退,一次向一侧移动。它怎么能自信地说出有关骑士运动的规则?也许规则中有一个特殊的条款规定“骑士不能向后移动,只能向前移动”(就像典当一样)。因此,确定性地推导规则似乎是不可能的事情。这对人类来说也差不多。
deceze 2011年

8
@Max事实上,有可能是规则的计算机不能无限数量的推断On the 8th turn the knight may not turn right. On a sunny day the pawns may jump over bishops.电脑无法说出那个棋子在特定转弯时没有移动的原因。在特定情况下,可能会有禁止它移动的规则。因此,计算机应仅能够再现相似(实际上是精确的)模式,而决不能以100%的置信度推导规则
deceze 2011年

@deceze是的,如果您以某种方式显示了该规则,则可以。与您需要教给人类规则(例如,给他打印要阅读的规则)的方式相同,您需要以某种方式将规则提供给机器。最简单的方法是在一定数量的游戏中重播所有规则,供机器学习。人类也是如此- On a sunny day the pawns may jump over bishops.如果您从未向他展示过,人类将不会知道。

Answers:


10

如果一台机器在开始和每次移动之后可以看几局棋(或几局跳棋)的棋盘状态,是否可以对它进行编程以学习游戏规则?

当然不是为了下几盘象棋。您需要分析其中的大量数据,以阻止它采取无效行动。我不知道多少 这个问题属于计算学习理论,PAC学习极限学习能力的领域

其他张贴者建议的分类算法可能能够区别性地学习国际象棋规则:给定两个棋盘设置,他们可能会回答“有效”或“否”将有效步法转换成另一步的问题。经过一些努力,它们也可能被用于生成移动。然后,他们将要么只生成他们在接受过培训的游戏中所见过的动作,要么生成有效和无效动作的组合,每个动作都有一个分数,说明他们考虑无效动作的可能性,认为该动作的可能性希望得到的概率很小。

(也就是说,要么该程序无法识别可供其使用的某些有效举动;要么您可能在没有注意到的情况下作弊;或者您必须对其进行长时间的培训,以至于对游戏失去了全部兴趣。)

对于可以学习规则的技术,请查看归纳逻辑编程遗传编程。我不确定是否有人尝试过将它们应用于国际象棋学习。由于国际象棋的规则是固定的,因此建立良好的国际象棋程序(而不是必须从头学习基本规则的程序)要有趣得多(即使对于学术界而言)。


4

国际象棋的规则非常复杂,有些规则很少在游戏中执行。

例如,传递规则。你将有多少游戏需要以推断出这一点来观察,只允许在第一后两步向前移动的举动?

另一个例子。b正方形可能会长时间被攻击。您看到多少场比赛发生了?

换句话说,您将需要很多很多很多游戏才能正确得出所有规则。

但是,也许谷歌会很快找到完整的棋类游戏档案库,从而找到自己的云...


“长方体可以攻击b平方”这是什么举动?您能帮我解释一下还是链接一下?
CaffGeek 2011年

@chad,也称为castling queenside-使用符号“ 0-0-0”。国王未触及的只有三个领域。

2
同样,在皇后方掷骰不能攻击d平方在皇后方掷骰时可以攻击f平方);您移动国王后也无法城堡。你怎么会知道的东西无法通过观察游戏中它做不是做了什么?正如Lars提到的那样,计算机可以分配举动有效的概率,但是通过观察游戏来确定特定规则几乎是不可能的。
BlueRaja-Danny Pflughoeft

而且,甚至在比赛设置中,即使是大师级的比赛也有违反规则的游戏,而没有玩家注意到!根据比赛规则,如果在10步之内都没有玩家注意到,则该游戏有效并继续。(我非常清楚地记得一场比赛,一位大师将国王移开,然后又移回
城堡

1
顺便足够罕见,但也有一些强迫抽奖规则FAR较为少见。我已经玩了40年了,但是我从未看过有一款游戏可以让你强制进行50次棋牌游戏,而没有当棋棋子,也没有被俘虏。我认为还有另外一条我不记得的规则。在实践中,玩家会在被调用之前同意平局。(它们的存在是为了确保您不能通过将其拖出直到对手退出而“赢得”一个已平仓的头寸。)
Loren Pechtel

2

是和否

我不确定您是否在问是否可以使用机器学习/神经网络学习国际象棋的规则,还是可以使用它来训练“大师级”国际象棋机器。

当然,您可以教电脑使用这些规则和某种程度的国际象棋。但是,我认为您无法使用它切实可行地将其培训到更高的水平。迄今为止,计算机科学公司afaik未能生产出一种可以从位置/直觉角度“理解”国际象棋的机器。当前所有国际象棋计算机都使用广泛的数据库,蛮力计算以及最可能的机器学习方法。

猜猜这取决于您是否将参考数据库算作作弊手段:)此外,很难知道您是否真的可以将很多游戏知识与擅长游戏区分开。擅长国际象棋的人之所以具有良好的表现,恰恰是因为他们已经看过很多游戏,而这些游戏通常被人们公认识别面部的大脑部分所引用。从这次召回中,看来人类的国际象棋棋手能够发展出一个位置实力的“直觉”。


最好的大师们会记住大量的开篇书籍,这不算作弊。而且无论如何,一直以来,曾经被认为是良好的开场变化的东西都会被一个新想法破坏。因此,玩书动作的“作弊”甚至可能不是计算机玩耍的最佳方式。
凯文(Kevin)

2

正如许多评论所说,这几乎是一个关于“学习”定义的哲学问题。大多数人工智能程序都依赖于确定合理的解决方案。给定足够的数据,学习象棋程序将确定在某些情况下合理进行的举动列表。这并不意味着它了解国际象棋的规则,而只是了解哪些动作是有益的,哪些动作没有益。即使数据集包括进行非法举动的玩家,非法举动也会立即造成损失,所以AI将忽略它并且永远不会使用该举动,因为它永远不会带来好处。

无论使用神经网络,进化算法还是任何其他类型的学习算法都没有关系,人工智能永远无法从观察到的事物中明确学习规则,它只能确定一系列合理有益的选择。


2

如果您将国际象棋的规则视为游戏的物理引擎,而将物理定律视为宇宙的永久性和不变的公认规则,那么请考虑一下我们的自然宇宙中实际上没有多少“法则”。即使不是不可能,也很难做到这一点,但是在特定的时间点,我们可以做出许多经过检验和接受的理论。

可以假设计算机观察并记录了移动,但没有直接对有效移动做出断言。

例如,它将观察到一个棋子向前移动一个片断,并做出新的假设,即所有棋子只能向前移动一个空间,而另一个假设是一个棋子只能向前移动一个空间。在下一步行动之前,它将形成尽可能多的限制性假设,并且其中一些可以被抛弃或变得更加自由。

最终,经过如此多的动作,您将获得一组扎实的理论,但它将是一个永久接近0但从未达到0的有效数据集。

因此,答案是计算机可以做出很好的猜测,但它会(编辑:不)肯定知道规则。


1

从理论上讲-是的,可以。它甚至可以成为国际象棋大师。您正在寻找的答案是神经网络。神经网络本质上与我们大脑内部发生的事情相同。而且,由于设计了完美的(不可能读得很完美)神经网络和完美的硬件,它可以学习人类可以以相同甚至更好的方式学习的一切。

进一步了解:


2
这个“答案”只是一堆Wikipedia链接,其中两个描述了相同的概念,其中一个非常广泛,而其中一个与当前的问题无关。请展示如何使用Kohonen地图学习有效地学习国际象棋规则。
Fred Foo

1
ANN和NN远不能接近实际神经元/人脑的复杂性,ANN充其量仅是可怕的粗略近似。
2011年

“在理论上,理论和实践是相同的,但在实践中却从来没有。” 国际象棋程序可以像大师级游戏一样玩,但是我不认为这是因为神经网络或机器学习。大多数优秀程序都使用大量的开篇书籍,残局表库和深度优先搜索(“带有alpha beta修剪的negamax”)以及可能非常复杂的评估功能(很可能是在大师的帮助下编写的)。
凯文

神经网络只能学习经过训练的工作。国际象棋有一些很少应用的规则,只是游戏的一部分。晋升为主教合法吗?晋升为国王合法吗?

2
哈...晋升为国王使将军更加艰难!
凯文

1

我认为它可以通过分析来了解允许进行的动作,但是它将如何学习不允许进行的动作呢?例如,当对立的棋子在其前面时,棋子似乎永远不会向前移动一个正方形。电脑如何知道这是玩家选择还是不允许这样做?您可以提出一种算法,说如果99.99%的时间或更长的时间没有发生某个事件,则意味着您不允许这样做,但也有99.99%的时间被认为是不好的举动,但0.01%的机会是赢得比赛的举动。因此,我的答案是不,它不能仅通过分析游戏来学习所有规则,但可能可以学到足够玩游戏的知识。


1

这是一个哲学问题。您最好问一个人是否可以仅通过观察人们下棋来学习下棋。实际上,纳尔逊·古德曼(Nelson Goodman)在他的著作《事实,虚构和预测》中提出的问题基本上是相同的:我们如何才能从有限的一组观测资料转变为对未来观测资料的预测。已经进行的观察将是迄今为止观察到的象棋移动,而将来的观察将是尚未发生的所有象棋移动。问题是,过去的观察结果与将来的观察结果之间是否存在法理关系(与过去事件与未来事件之间的纯粹因果关系相对)?

如果我们理解这个词法则本质或逻辑的法则,并没有任何东西可以在不相符不会发生这一规律的话,那就肯定没有这样的关系,因为谁对角移动的城堡的第一人,将打破自然规律和我们知道的宇宙将崩溃。

但是,即使事实上,由于自然灾害,世界上任何国际象棋棋手从现在开始所做的任何举动都是有效的(没有人会犯任何错误或试图作弊,甚至人们对国际象棋规则一无所知。会开始随机地将棋子全盘推向四周,但偶然总是按照规则行事),这不会使我们确信存在强迫所有这些的自然法则(或逻辑法则)。我们认为这纯粹是偶然的。

维特根斯坦(Ludwig Wittgenstein)哲学研究中涵盖了类似的观点。他坚持认为,任何观察结果集都必须遵守许多甚至是相互冲突的规则。例如,如果我观察到的所有国际象棋比赛都发生在下午,那么我的规则可能是下午主教只能沿对角线移动。一天中的时间与游戏无关紧要,这是我无法观察到的,因为我在一天中的不同时间都没有观察过象棋游戏。或者,顺便说一句,如果我从未见过女人下棋,那么规则可能是主教只能由男人来打动。与观察有关的内容和没有与观察有关的内容被确定为观察的先决条件,不能成为观察本身的一部分。

顺便说一句:维特根斯坦对这个问题的解决方案与古德曼(Goodman)的解决方案非常相似。不过,我不会破坏惊喜;-)

附录:

在Sussman还是新手的那一天,Minsky曾经来找他,当时他正坐在PDP-6上。

“你在做什么?”明斯基问。萨斯曼回答说:“我正在训练一个随机连线的神经网络来打井字游戏。” 明斯基问:“为什么网络是随机连接的?” 萨斯曼说:“我不希望它对打法有任何先入之见。”

明斯基然后闭上了眼睛。“你为什么闭上眼睛?” 萨斯曼问他的老师。“这样房间就空了。” 在那一刻,萨斯曼得到了启发。


-4

没有

因为简单地学习模式(通过哪种方法)与“学习最佳下象棋”是不同的。

这需要计划和策略,这与仅学习设置模式非常不同。


1
您实际上并不知道;此外,问题是仅通过分析示例游戏,是否有可能(对于计算机,但相同的约束也可能适用于人类)学习国际象棋的实际规则。
tdammers 2011年

1
我认为您误解了这个问题……
maple_shaft

在使用AI(神经网络)(硕士论文)后,我相当确定它不会。除非您有其他说法,否则您不能简单地说“您不知道”
Darknight,2011年
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.