社会焦点

【组图】AlphaGo之父:关于围棋 人类3000年来犯了一个错(2)

字号+ 作者: 来源: 2017-04-14

围棋使用方形格状棋盘及黑白二色圆形棋子进行对弈,棋盘上有纵横各19条直线将棋盘分成361个交叉点,棋子走在交叉点上,双方交替行棋,以围地多者为胜。围棋规则没有多复杂,我可以在五分钟之内教给大家。 这张图展

  围棋使用方形格状棋盘及黑白二色圆形棋子进行对弈,棋盘上有纵横各19条直线将棋盘分成361个交叉点,棋子走在交叉点上,双方交替行棋,以围地多者为胜。围棋规则没有多复杂,我可以在五分钟之内教给大家。

  这张图展示的就是一局已结束,整个棋盘基本布满棋子,然后数一下你的棋子圈出的空间以及对方棋子圈出的空间,谁的空间大,谁就获胜。在图示的这场势均力敌的比赛中,白棋一格之差险胜。

白棋以一格之差险胜

白棋以一格之差险胜

  其实,了解这个游戏的最终目的非常难,因为它并不像象棋那样,有着直接明确的目标,在围棋里,完全是凭直觉的,甚至连如何决定游戏结束对于初学者来说,都很难。围棋是个历史悠久的游戏,有着3000多年的历史,起源于中国,在亚洲,围棋有着很深的文化意义。孔子还曾指出,围棋是每一个真正的学者都应该掌握的四大技能之一(琴棋书画),所以在亚洲围棋是种艺术,专家们都会玩。

  如今,这个游戏更加流行,有4000万人在玩围棋,超过2000多个顶级专家,如果你在4-5岁的时候就展示了围棋的天赋,这些小孩将会被选中,并进入特殊的专业围棋学校,在那里,学生从6岁起,每天花12个小时学习围棋,一周七天,天天如此。直到你成为这个领域的专家,才可以离开学校毕业。这些专家基本是投入人生全部的精力,去揣摩学习掌握这门技巧,我认为围棋也许是最优雅的一种游戏了。

  像我说的那样,这个游戏只有两个非常简单的规则,而其复杂性却是难以想象的,一共有10170 (10的170次方) 种可能性,这个数字比整个宇宙中的原子数1080(10的80次方)都多的去了,是没有办法穷举出围棋所有的可能结果的。

  我们需要一种更加聪明的方法。你也许会问为什么计算机进行围棋的游戏会如此困难,1997年,IBM的人工智能DeepBlue(深蓝)打败了当时的象棋世界冠军加里·卡斯帕罗夫,围棋一直是人工智能领域的难解之谜。我们能否做出一个算法来与世界围棋冠军竞争呢?要做到这一点,有两个大的挑战:

  一、

  搜索空间庞大(分支因数就有200),一个很好的例子,就是在围棋中,平均每一个棋子有两百个可能的位置,而象棋仅仅是20. 围棋的分支因数远大于象棋。

  二、比这个更难的是,几乎没有一个合适的评价函数来定义谁是赢家,赢了多少;这个评价函数对于该系统是至关重要的。而对于象棋来说,写一个评价函数是非常简单的,因为象棋不仅是个相对简单的游戏,而且是实体的,只用数一下双方的棋子,就能轻而易举得出结论了。你也可以通过其他指标来评价象棋,比如棋子移动性等。

  所有的这些在围棋里都是不可能的,并不是所有的部分都一样,甚至一个小小部分的变动,会完全变化格局,所以每一个小的棋子都对棋局有着至关重要的影响。最难的部分是,我称象棋为毁灭性的游戏,游戏开始的时候,所有的棋子都在棋盘上了,随着游戏的进行,棋子被对方吃掉,棋子数目不断减少,游戏也变得越来越简单。相反,围棋是个建设性的游戏,开始的时候,棋盘是空的,慢慢的下棋双方把棋盘填满。

  因此,如果你准备在中场判断一下当前形势,在象棋里,你只需看现在的棋盘,就能告诉你大致情况;

  在围棋里,你必须评估未来可能会发生什么,才能评估当前局势,所以相比较而言,围棋难得多。也有很多人试着将DeepBlue的技术应用在围棋上,但是结果并不理想,这些技术连一个专业的围棋手都打不赢,更别说世界冠军了。

  所以大家就要问了,连电脑操作起来都这么难,人类是怎样解决这个问题的?其实,人类是靠直觉的,而围棋一开始就是一个靠直觉而非计算的游戏。所以,如果你问一个象棋选手,为什么这步这样走,他会告诉你,这样走完之后,下一步和下下一步会怎样走,就可以达到什么样的目的。这样的计划,有时候也许不尽如人意,但是起码选手是有原因的。

  然而围棋就不同了,如果你去问世界级的大师,为什么走这一步,他们经常回答你直觉告诉他这么走,这是真的,他们是没法描述其中的原因的。我们通过用加强学习的方式来提高人工神经网络算法,希望能够解决这一问题。

  我们试图通过深度神经网络模仿人类的这种直觉行为,在这里,需要训练两个神经网络,一种是决策网络,我们从网上下载了成百万的业余围棋游戏,通过监督学习,我们让阿尔法狗模拟人类下围棋的行为;我们从棋盘上任意选择一个落子点,训练系统去预测下一步人类将作出的决定;系统的输入是在那个特殊位置最有可能发生的前五或者前十的位置移动;这样,你只需看那5-10种可能性,而不用分析所有的200种可能性了。

  一旦我们有了这个,我们对系统进行几百万次的训练,通过误差加强学习,对于赢了的情况,让系统意识到,下次出现类似的情形时,更有可能做相似的决定。相反,如果系统输了,那么下次再出现类似的情况,就不会选择这种走法。我们建立了自己的游戏数据库,通过百万次的游戏,对系统进行训练,得到第二种神经网络。选择不同的落子点,经过置信区间进行学习,选出能够赢的情况,这个几率介于0-1之间,0是根本不可能赢,1是百分之百赢。

  通过把这两个神经网络结合起来(决策网络和数值网络),我们可以大致预估出当前的情况。这两个神经网络树,通过蒙特卡洛算法,把这种本来不能解决的问题,变得可以解决。我们网罗了大部分的围棋下法,然后和欧洲的围棋冠军比赛,结果是阿尔法狗赢了,那是我们的第一次突破,而且相关算法还被发表在《自然》科学杂志。

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章