像我说的那样,这个游戏只有两个非常简单的规则,而其复杂性却是难以想象的,一共有10170(10的170次方)种可能性,这个数字比整个宇宙中的原子数1080(10的80次方)都多的去了,是没有办法穷举出围棋所有的可能结果的。我们需要一种更加聪明的方法。你也许会问为什么计算机进行围棋的游戏会如此困难,1997年,IBM的人工智能DeepBlue(深蓝)打败了当时的象棋世界冠军GarryKasparov,围棋一直是人工智能领域的难解之谜。我们能否做出一个算法来与世界围棋冠军竞争呢?要做到这一点,有两个大的挑战:
一、搜索空间庞大(分支因数就有200),一个很好的例子,就是在围棋中,平均每一个棋子有两百个可能的位置,而象棋仅仅是20。围棋的分支因数远大于象棋。
二、比这个更难的是,几乎没有一个合��的评价函数来定义谁是赢家,赢了多少;这个评价函数对于该系统是至关重要的。而对于象棋来说,写一个评价函数是非常简单的,因为象棋不仅是个相对简单的游戏,而且是实体的,只用数一下双方的棋子,就能轻而易举得出结论了。你也可以通过其他指标来评价象棋,比如棋子移动性等。
所有的这些在围棋里都是不可能的,并不是所有的部分都一样,甚至一个小小部分的变动,会完全变化格局,所以每一个小的棋子都对棋局有着至关重要的影响。最难的部分是,我称象棋为毁灭性的游戏,游戏开始的时候,所有的棋子都在棋盘上了,随着游戏的进行,棋子被对方吃掉,棋子数目不断减少,游戏也变得越来越简单。相反,围棋是个建设性的游戏,开始的时候,棋盘是空的,慢慢的下棋双方把棋盘填满。
因此,如果你准备在中场判断一下当前形势,在象棋里,你只需看现在的棋盘,就能告诉你大致情况;在围棋里,你必须评估未来可能会发生什么,才能评估当前局势,所以相比较而言,围棋难得多。也有很多人试着将DeepBlue的技术应用在围棋上,但是结果并不理想,这些技术连一个专业的围棋手都打不赢,更别说世界冠军了。
所以大家就要问了,连电脑操作起来都这么难,人类是怎样解决这个问题的?其实,人类是靠直觉的,而围棋一开始就是一个靠直觉而非计算的游戏。所以,如果你问一个象棋选手,为什么这步这样走,他会告诉你,这样走完之后,下一步和下下一步会怎样走,就可以达到什么样的目的。这样的计划,有时候也许不尽如人意,但是起码选手是有原因的。
然而围棋就不同了,如果你去问世界级的大师,为什么走这一步,他们经常回答你直觉告诉他这么走,这是真的,他们是没法描述其中的原因的。我们通过用加强学习的方式来提高人工神经网络算法,希望能够解决这一问题。我们试图通过深度神经网络模仿人类的这种直觉行为,在这里,需要训练两个神经网络,一种是决策网络,我们从网上下载了成百万的业余围棋游戏,通过监督学习,我们让阿尔法狗模拟人类下围棋的行为;我们从棋盘上任意选择一个落子点,训练系统去预测下一步人类将作出的决定;系统的输入是在那个特殊位置最有可能发生的前五或者前十的位置移动;这样,你只需看那5-10种可能性,而不用分析所有的200种可能性了。
一旦我们有了这个,我们对系统进行几百万次的训练,通过误差加强学习,对于赢了的情况,让系统意识到,下次出现类似的情形时,更有可能做相似的决定。相反,如果系统输了,那么下次再出现类似的情况,就不会选择这种走法。我们建立了自己的游戏数据库,通过百万次的游戏,对系统进行训练,得到第二种神经网络。选择不同的落子点,经过置信区间进行学习,选出能够赢的情况,这个几率介于0-1之间,0是根本不可能赢,1是百分之百赢。
通过把这两个神经网络结合起来(决策网络和数值网络),我们可以大致预估出当前的情况。这两个神经网络树,通过蒙特卡洛算法,把这种本来不能解决的问题,变得可以解决。我们网罗了大部分的围棋下法,然后和欧洲的围棋冠军比赛,结果是阿尔法狗赢了,那是我们的第一次突破,而且相关算法还被发表在《自然》科学杂志。
接下来,我们在韩国设立了100万美元的奖金,并在2016年3月,与世界围棋冠军李世石进行了对决。李世石先生是围棋界的传奇,在过去的10年里都被认为是最顶级的围棋专家。我们与他进行对决,发现他有非常多创新的玩法,有的时候阿尔法狗很难掌控。比赛开始之前,世界上每个人(包括他本人在内)都认为他一定会很轻松就打赢这五场比赛,但实际结果是我们的阿尔法狗以4:1获胜。围棋专家和人工智能领域的专家都称这具有划时代的意义。对于业界人员来说,之前根本没想到。
4、棋局哪个关键区域被人类忽视了?