返回列表 发帖

十一、三番棋(2)



  三番棋第一盘的时候,为了对付对方给出的各种难题,墨绿可以说是“绞尽脑汁”,而且随时要从硬盘里索取不太常用的模式。整个比赛过程硬盘都叽叽嘎嘎响个不停。为了怕出现意外,我专门去买了一个很高级的硬盘,把全部程序拷贝上去,三番棋第二盘的时候就用上了。殊不知这反到铸成大错。比赛到中盘,双方正为了一大块棋杀得难分难解的时候,新买的硬盘死了。其实它也没完全死,只是读不出东西来(我也没有意识到这个问题)。硬盘死了而联网却没有中断,也就是说墨绿的钟一直在走。我在一旁急出好几身汗也不管用。一个小时过去了,它仍没有得出结果。因为我一直用另一个帐号在看这盘棋,所以可以看到其它看棋的人的评论,就按照评论中我认为最好的走法帮它走了一步。当时提出这个走法的人看见墨绿走了它提出的棋还很得意,说是英雄所见略同云云。这步棋后来被证明是一步很坏的棋。几个回合下来,墨绿就损失十几目,随后因增大风险系数而采取的无理棋又被对方予以严厉的惩罚,越输越多。这个时候我才发现墨绿没有认输的“习惯”。在这之前,这从来都不是问题。因为对初学者来说输多少都照下不误。后来有点水平以后因为都与同级的人下,又没有昏着,也没有输太多的时候,不认输也没关系。最近一年以来,从来没有输过,不会认输的问题就更不成什么问题了。现在几步无理棋走下来已经落后二十多目,它还没有认输的意思,而且好象又要加大风险系数。我实在是看不下去了,这简直不是它这种水平应该走的棋,于是就绕过它的程序强行让它认输了。<点评:阿尔法狗的第四盘最后十多手也大失水准。呵呵!>

  墨绿输掉第二盘使它的众多支持者们很失望,他们从来没有看见过墨绿走出昏着的时候,完全不能理解出了什么问题。韩国的棋迷就不一样了,他们对这盘棋的结果异常激动。说是终于找到了墨绿的命门。连韩国的报纸上也打出了韩国必胜的大标语。中国的一些BBS上有人建议墨绿中途应该吸吸氧等等,说什么的都有。<请看3月15日的标题文章《AlphaGo命门已被看穿李世石或可拿下最后一战》哈哈!>

  一盘本来应该是惊天动地拼杀的棋,却在仅仅一百三十多步就结束了。不仅观棋的失望,主办单位也觉得很扫兴,言语间大有投资错误的意思。后来有人说,三番棋能打到第三盘应该更有吸引力,大家又都高兴起来。

TOP

十二、三番棋(3——准备)



  二十多天很快就过去了,眼看三番棋的第三盘马上就要开始。报纸上也开始大力宣传,甚至还有些报纸搞起了类似于买马票一样的赌钱活动。韩国那边最高赌到一比十。也就是说他们认为他们的世界冠军赢第三盘的概率是十倍于墨绿。中国这边由于多年受韩国这个世界冠军的气,从心里希望墨绿赢,表现在赌票上的比是倒过来的八比一。对此我感到很欣慰。比赛还没有开始,双方的棋迷已经在报上,BBS,甚至在新闻组RGG上打起来。
<点评:谷李大战的第一盘押分,押电脑胜的不到一比四。人们还真没有做好电脑赢人脑的心理准备。>

  根据我对墨绿的了解,我认为它已经比这位世界冠军要高出一截,所以我对墨绿充满了信心。但事关重大,而且由于我基本看不懂他现在的棋,我的看法或许不准。为小心起见,我把能找到的这个世界冠军所有的棋谱都给它找来,让它过一遍。以前为了全面发展,我特别注意让它不要只打一个人的谱,这次算是破例。说来奇怪,以前它读别的专业棋谱,总要花一小时左右才能读完一盘棋。这世界冠军的棋应该更难,时间应该更久才对。但他总是十来分钟就读完一谱,而且是越读越快。后来发现,它打所有韩国棋谱都快。仔细分析起来,这是有它的道理的。高手下棋,总讲究味道、感觉。而这些东西对墨绿来说是最难理解的了。而韩国棋手的棋大都讲究硬算,不管棋型、味道,算清楚以后什么难看的棋都能走出来。而要说起算棋起来,这当然是墨绿的强项。所以,它打起韩国棋谱感觉是得心应手。看它越打越快,我对它的信心更足了,可以说是到了不可动摇的地步。如果有人要与我赌一比一百我也愿意。

  从各种报道中看到,不仅墨绿打这世界冠军的谱,这世界冠军也打墨绿的谱。据说从打谱中得出结论:墨绿擅长绞杀,一旦杀起来就没不占便宜的时候。所以这次这世界冠军的对策是尽量不与对方急战。说是要争取走成细棋,最后用他的收官功夫拿下这盘棋。

  这次比赛,虽说是在IGS上,但中日韩三国的大电视台都有挂盘讲解。观众比上次又多了不止十倍。我住这里虽然收不到电视转播,但上网总是很容易的。
比赛那天晚上,有棋友打电话来说准备通宵不睡,要与我一起从网上看这盘棋。没有人知道我与墨绿的关系,我的这些朋友当然也全蒙在鼓里。我必须要现场伺候,以备不时之需,当然不可能与他们一起看棋。于是胡乱编了一堆理由把他们挡了回去。

TOP

十三、三番棋(3――比赛)



  晚上九点(韩国时间早上九点),比赛开始了。第三盘又重新抽签,墨绿抽到白棋。<点评:阿尔法狗决胜局也是白棋。>鉴于上次的教训,我这次买了三个硬盘,每个上面都装上了墨绿程序。如果有一个死了,我可以马上联上另一个,这样三保险就不应该有什么问题了。

  由于黑棋的战术是不绞杀,所以开盘到中盘都在走简明的棋,白棋没有杀棋的机会。其实,墨绿并不是一定要走杀棋。那些杀棋都是为对付对方的凶狠棋而算出来的。它总是在计算后走出它认为目数上最优的棋,并不一味追杀。对方走简明棋,没有杀棋的必要。不过这也没有关系,它仍然走它自己算出的对它最有利的棋。这样一来,不知不觉走成黑棋占实地,白棋取外势的结果。一百一十几手走下来,黑棋的实地是有一些,但外势完全被白棋占了。如此走下去,黑棋必输无疑。网上的评论都一边倒,说是再不打入就没机会了。

  果然,在一次长考以后,一颗黑子终于还是投进了白棋的厚势中。这步棋一走,网上看棋的人一下子就炸开了,说什么的都有。有人说这步棋真是妙啊,只有世界冠军才能想得出来。有人说早就该进去了,现在好象太晚了。

  网上一片沸腾,我这边也热闹起来。黑棋一打入白阵,墨绿一下子就忙起来。只听见我的硬盘吱吱的响个不停。对打进来的棋,它有两种处理办法。一是从上面封住,这样还是可以成不小的空。一是把打进来的这一子切断,关起门来杀。这样走风险很大,但从上面封住的走法似乎目数会不够。经过一阵狂算以后,墨绿终于把打进来的黑棋同其大部队切断。这棋一旦被切断以后,就只能靠原地做活,而对方的目标就是不让你做活,一场大战是不可避免的了。于是双方昏天黑地地杀起来。一旦杀起来,墨绿的优势就出来了。一阵乱杀以后,走成了劫。在白棋的空里走出了劫,本来应该算黑棋成功了。但这个劫是个缓气劫,也就是说黑棋赢了劫以后还得再补一步才能彻底活净。这个劫黑棋是非赢不可,而白棋就有很多选择。因为白棋在绞杀过程中已经把黑棋围起来了,也就是说原来的厚势已经有相当一部分化成了实地。利用这缓气劫,白棋等于可以在别处连走三步。黑棋不但非活不可,别的地方也不能吃太大的亏,而白棋只需再利用打劫占一点小便宜即可,三个小便宜加在一起就大了。十几手劫材交换下来,黑棋已经没有大劫可找,而几乎白棋找的任何劫黑棋都得应。最后,只好丢卒保车,对墨绿在角上找的一个劫不应了。中间这块棋总算活出来了,但原来活生生的一个角被白棋弄死不说,另一个角也被弄成两目活,又损失了十几目棋。这一交换下来,双方现在的目数是盘面相同,也就是说黑棋贴不出目来。打劫过程中一切味道都被走尽了,黑棋再也没有地方可以把这七,八目棋找回来。一阵长考以后,黑棋投棋认输。

  黑棋的认输并没有在观棋者中引起太大的惊诧。因为从打劫开始,大家就已经意识到黑棋不行了,输赢只不过是迟早的问题,除非白棋走昏着。但大家都知道白棋是几乎从来不走昏着的。墨绿的众多支持者们到现在也没想通第二盘是怎么一回事。

TOP

十四、三番棋以后



  三番棋下完的当天中日韩三国的报纸就有了报道。因为世界冠军是韩国的,所以他们的报道比较偏向于黑棋。说是前半盘都是黑棋占主动,如果黑棋早一点打入,情况会如何如何。言下之意黑棋本来是很有希望的。中国的报道感情色彩比较重。因为好几年以来,中国的棋手都是因为这个世界冠军而输掉了重大国际比赛。这次看到终于有人把他宰了,而且宰得很干净,难免有点幸灾乐祸的心情。评论中充满了带感情成分的词语。什么“天王杀手被绞杀”,“铁官子无官可收”等等。日本的报道没有什么感情成分,基本上是照实报道,说这盘棋是墨绿完胜。也就是说黑棋从头到尾没有什么机会。一般来说,人们说完胜大都是说黑棋,因为黑棋先下,有主动权。如果说白棋完胜岂不是说黑棋还没下就输了。我觉得事实就是如此。墨绿现在已经有让人类最高手一先的实力,而且又不会走昏着,下平手的话,当然是黑棋还没走就输掉了。
  <点评:阿尔法狗半年提高4子,再过半年提高2子也是可能的。到那时,人类最高手只能被授子了。>

  原来说好胜方可得五十万美元。而且我已经告诉了主办单位我在瑞士的银行账号。但三番棋结束一周以后还不见有钱进去。打电子邮件去问,主办单位说是要搞一个隆重的发奖仪式,其主要目的就是要见一下墨绿其人。因为他们觉得五十万美元花出去,连人影都没有见到,有点不甘心。但我坚持不参加什么发奖仪式,说是宁可不领奖。只要他们丢得起这个脸,我不领奖也没有关系。当然,这个脸他们是丢不起的。堂堂大企业,说了要给五十万美元,怎么可能不给呢。相持一个星期以后,他们还是放弃了一定要见人的要求,把钱寄到了我给他们的账号上。

  想要见人的还不光是主办单位。许许多多墨绿的支持者也在各种BBS,新闻组里提出,赢了世界冠军算是功成名就,应该是墨绿露面的时候了。墨绿的电子信箱两天之内就爆满了。基本意思是墨绿不应该让这么多支持者失望,应该满足大家的要求与大家见面等等。

  墨绿到底是谁的话题从来没有停过,这次三番棋以后,这个话题几乎成了各个与围棋有关的BBS的唯一话题。

TOP

十五、神秘消失



  猜墨绿的身份当然以BBS和新闻组最热烈。因为这里没人控制,猜什么的都有。有一天有一张贴子说,根据他对墨绿的棋谱的分析,墨绿很像一个计算机程序。他还列出了许多证据来支持他的观点。

  世界上的许多事,主要是没有人想到。一旦有人想到了,你就会发现问题其实早就很清楚。由于现在人们知道的最强的围棋程序只有业余四级左右,墨绿的实力却如此之高,人们几乎从来没有朝这方面想过。现在有人朝这方面想了,而且提出了许多证据。人们才发现果然是很像,并且有越来越多的人提出了新证据。比如墨绿打字出奇的快,许多人在IGS上与墨绿对话,总是刚打完送出去就收到回话。这些回话都是我事先编好存在它的记忆里的,回答起来当然快。大家现在意识到不可能有人打字能这么快,而且它有时答非所问。还有人说他曾经看见过墨绿同时下两盘棋,而且同时落子。那其实就是上次抓耍赖的人的时候,当时正在下一盘棋,耍赖的人进来了当然不能放他走,于是马上另开一盘。因为那盘棋已经是墨绿大胜的棋,没花太多功夫就拿下来了,没想到就这一次还是被人注意到了。IGS的管理员也调出了许多历史记录来证实这些指证,问题看来是越来越清楚了。还有许多人给IGS管理员出主意,下次墨绿在IGS登陆的时候用什么样的手法可以判断墨绿是真人还是程序。这点我不是很害怕,因为我可以替墨绿登陆,他们不可能判断出来。但是,一旦有人开始往这方面注意了,被证实就只是迟早的事。

  三番棋以后我一直在考虑要不要收手。我当初写这个程序的目的就是要战胜人类最高手,现在这目的达到了,似乎到了该收手的时候了。现在的事实是,墨绿已经比当今最强手还强。如果总是赢,就少了激情。这墨绿维护起来还是很花功夫的,没有激情的事我就不太愿意做。而且,有了这五十万美元,财政上也可以松一松了。最重要的一点是,墨绿的成长来源于进化。如果没有了外来促进因素,就没有了进化的来源。自己与自己下只能产生一些同水平的变种或小小的进步,不会有太大的实力上的区别。长此下去,自己不进步而别人却在追上来,墨绿就会有输的时候。激流勇退,通俗说起来就是见好就收。我正在考虑要不要见好就收的时候,看到了BBS上大家向IGS管理员提出的如何判断墨绿是否是程序的建议。任何事如果拖得太长,就会有漏洞出来。考虑了很长一段时间以后,我决定让墨绿金盆洗手,脱离这围棋江湖。决定做出后,我在IGS墨绿的信息栏里留下了这么一段话:

   余弈棋于IGS五载有加,近一年来下棋过百,皆无敌手。与世界冠军三番棋以后,自认为棋力已可让当今所有高手一先。昔日闻有独孤求败之事,而今方识个中滋味。现如继续盘旋于IGS,定无先前之激情。有鉴于此,决定从此封盘。它日如有人主持与来年世界冠军让先之下的三番赛,余必随时赴约。

再见IGS。



  <点评:人工智能说到底是人的工具,后面是由人操纵和控制的。在墨绿背后的是万精油作者,在阿尔法背后的是燕来的远房亲戚,一同接受上帝使命的哈萨比斯博士。>

  墨绿从IGS世界中消失,它的爱好者们一下失去了崇拜目标,显得不知所措。有些特别激动的人居然也在BBS上说要随墨绿而去,从此不再下棋。说是没有墨绿的围棋世界就好象没了太阳,缺了生气。绝大部分人没有这么激进,只是说墨绿退出IGS的一天可以算是IGS历史上最黑暗的一天。还有人开始在各个新闻组写回忆文章,仿佛想借此追回失去的美好记忆,让墨绿在他们心目中多留一些日子。凡此种种,大家对墨绿的讨论非旦没有因它的消失而停止,反而变得更加激烈,生动。而且讨论范围不再局限于网上,连报纸也开始加入讨论。这就有了我们文章开始的那一段人民日报评论。

  墨绿在IGS宣布封盘的第二天,IGS网管在IGS登陆首页加入了醒目的大字横幅:

  墨绿是IGS永远的骄傲!

(全文完)

TOP

后记



  当今最强围棋程序不到业余三级,与职业棋手的差距可说是十万八千里。本文属幻想文字,里面提到的技术手法,虽然都是现在大家正在研究的,而且有些已经被用在一些程序中。但想法和具体执行还有很大的距离。我在文章中完全忽略了具体实现的问题,所以才会有墨绿这样的理想结果出现,这不过是表现了我们的一些梦想。另外,我自己的棋力大约只有IGS4D★,对职业高手们下棋时的思路并没有真正认识。但我相信,真正有实力的程序的出现,一定要有这些职业棋手的参与,单纯靠计算是不行的。据说深蓝设计组请了好几位职业国际象棋手做他们的顾问。

  不过,即使有专业高手介入,围棋计算机程序的任务还是很艰巨的,可谓任重道远。围棋与国际象棋完全不同,对计算机的要求要高很多数量级,要在程序上突破,单靠深层搜索是不行的,必须要有思想上的突破。我个人认为,二十年内不会有围棋程序战胜人类最高手。但梦想是一切新事物的动力,没有了梦想,人类就会停止进步。我有了关于计算机围棋程序的梦想,遂有了这篇文字。

  <点评:作者还是保守了,2004到2016,仅仅12年梦想就变成了现实。>

(二零零四年二月九日于美国波士顿西郊)

TOP

本帖最后由 天马行空 于 2017-7-1 17:28 编辑

万精油《人机对话》



   “人战胜了机器”,这是本周美国围棋协会电子杂志的一个小标题。说是一个职业五段在九乘九的棋盘上以二比一战胜围棋程序MOGO。读到这里,稍微有一点围棋程序常识的人或许会问,有没有搞错?这说的是围棋程序吗?最好的围棋程序不是都要被让十几子的吗?不会是国际象棋或五子棋吧?或者又是墨绿那样的虚幻东西。千真万确,这是实实在在的围棋程序,不是只存在于虚幻世界里的墨绿。

  说到墨绿,就必需要提到深蓝甚或它的前辈,浅蓝或者淡黄。我们还是从头说起。

  让计算机下棋一直都是人工智能的一个重要课题之一。先是从简单的跳棋,五子棋之类的搞起,后来搞国际象棋,围棋。虽说这些程序属于人工智能范畴,但实际上它们并没有多少“智”的部分,主要部分都是在可行范围内搜索。各种研究也大都是怎样使搜索更快更有效。它们缺乏“智”的部分的根本原因是我们自已就不是太清楚人类以怎样的形式思考。比如你写一个名字问一个计算机系主任,这人是不是他系里的教授。系主任马上就可以回答是或不是。如果你问计算机,计算机也可以马上正确地回答是或不是。但计算机的方式是把这个名字与系统里所有名字比较以后得出的答案。计算机搜索很快,全走一遍几乎可以瞬间完成。但我们知道系主任是不可能在短时间内把系里所有教授的名单过一遍的。类似的问题还可以更进一步,如果有人拿一张照片问你这辈子有没有见过这个人。一般情况下,你会很快告诉他有或没有。可是我们不能想象你在短时间内把你这辈子(包括孩提时代)见过的人都检查一遍。那么你是怎样得出结论的呢?我们对此还不是完全清楚。

  懂计算机算法的人会说,计算机也不用把全部名单走一遍。它可以搞一种映射,拿到名字后直接到映射位置找这个人(所谓HashTable)。或者把东西分类按类别排除,几下就找到相应的位置(比如K-D Tree)。或者在各种目标间加上大大小小的联接,然后按联接排序(比如Google的PageRank),诸如此类的聪明方法都是人类在不懂得自已怎样思维的情况下设计出来的,试图达到人类的思维效果。这些方法有用也很有效,在很多方面都有应用。但当要搜索的空间实在太大(做表已经行不通)时,这些方法就不灵了,速度不够,内存也跟不上。

  人的大脑当然也不能存下这些大空间的东西。但人的大脑有一个很大的优点,那就是“模式识别”(Pattern Recognition),不需要用到大搜索空间。前面的例子说明一个人看见一张照片,几乎马上就可以知道他以前有没有见过这个人,不需要把他从前见过的人都过一遍。再举一个真实的例子。在去年我参加的一个中国人的新年晚会上,有人用黑管吹出[大海航行靠舵手]的曲子。虽然几十年没有听过这个曲子了,但下面的几乎所有人都马上跟着哼起来。大家不需要在大脑里把以前听过的所有曲子过一遍来检索到这个曲子。你或许要说这些东西大脑里都存着,只不过它有很快的方法搜到那里。这“很快的方法”就是我们想要知道的。但我说的“模式识别”还不只是这些。再举一个没有事先储存的例子。比如你去一个你常去的网站,打开网站后出现一整页的标题或文章(以前从来没见过)。如果里面有任何地方提到你的名字(或ID),你几乎马上就会注意到,并不需要你去一个字一个字地读整页内容。这种“模式识别”能力计算机(或者说现在的人工智能)是没有的。所以,遇到大空间搜索问题计算机就显得很弱。

  再回到下棋的问题。下棋的时候棋盘上可走的地方很多,但下棋的人并不是每种走法都去考虑。比如一般情况下就不会有人去考虑在死角位置上走一子会有什么结果。那么哪些位置需要考虑,哪些位置不需要考虑,这就是“模式识别”问题。计算机没有这种功能,只好所有的位置都考虑,于是就产生了无穷大的搜索空间问题。几十年以前的国际象棋程序就处于这种情况。因为大面积搜索不可行,就只能用一些自已设计的判别模式进行选择性地搜索(模仿人的思维)。选择不见得对,搜索又不彻底,结果当然不会好到哪里去。所幸的是,计算机领域里有一个莫尔规律(Moore"sLaw),说是计算机的速度(以及别的相关能力)每一年半就会翻倍。几十倍上百倍地翻下去,以前速度和空间不可行的搜索后来就变得可及或可行了。到了一九九七年,IBM的深蓝就硬是用“硬搜索”(Brute Force)打败了人类国际象棋最高手Kasparov。当然深蓝还请了一些国际象棋专家指点判别程序,但主要靠的还是硬搜索。

  讲围棋怎么扯到国际象棋去了?我们现在就回头来讲围棋。

  深蓝的方法可不可以平移到围棋上来?一般的共识是不可以。这里面有两个问题。

  第一个是搜索空间。围棋的变化空间比国际象棋大很多数量级。有人估计围棋的变化空间是10的170次方,相应的国际象棋变化空间是10的120次方,差别是10的50次方。古人在形容很大的数的时候常用的一个词是“恒河沙数”,因为沙是他们知道的最小的东西,而恒河是它们知道的最大的河。有好事者粗略地估计了一下,恒河沙数大概是10的52次方。大至说起来,如果围棋是恒河,国际象棋只不过是100颗沙。100颗沙还不到一勺,而且是挖耳朵用的勺。10的170次方可以与什么来比呢?现代人知道原子当然比沙要小很多,最大的东西也不能大于可观测到的宇宙。有人算过,可观测到的宇宙中的原子个数大约是10的80次方。假设每个原子就是一个宇宙,把这些所有宇宙中的原子个数加起来仍然不够10的170方。有了这些背景,从现实意义来说,我们完全可以把围棋的变化空间10的170次方当成无穷大,可望而不可及。当然,围棋程序并不需要搜索到底,只需要搜索到人类下棋时搜索的深度就可以了。

  如果要让一个围棋程序达到与深蓝同样深度的搜索,对计算机速度的要求是一百万倍以上。这不是一两个莫尔规律可以解决的问题。

  第二个问题,也是更严重的问题,就是判别好坏的问题。国际象棋的好坏可以有比较明显的判别方法,比如吃掉对方的皇后基本上应该算是好棋。事实上深蓝的判别更简单,搜索到几十步以后数子。如果某种走法剩的子数多,这种走法就算好(子数当然是加权过的,比如皇后算九个兵之类的)。可是围棋没有很好的优劣判别方法。一个子的好坏或许要到几十步以后才显示出来,或者与盘上十几格以外的子有关(比如征子的情况)。而且吃子也不见得就一定是好事。

  搜索空间大和判别优劣难这两个问题加起来,几乎就完全否定了深蓝的方法在围棋上的应用。

  由于意识到“硬搜索”在围棋上行不通,几乎所有围棋程序设计者都选择走“人工智能”的路。也就是模仿人类的思维,搞模型识别,算死活,背定式等等。由于没能真正搞清楚人类的思维方法,这些模仿都不是很成功。这些方法产生的最佳程序仍然处于很初等的阶段,以至于我这样的一般围棋爱好者左手让它九子也没有问题。很多人甚至认为有生之年看不到战胜人类最高手的围棋程序了。比如台湾的应昌期先生就没能在他的有生之年看到哪怕是战胜业余初段的围棋程序,他放出的一百万美元大奖至今也没人能领。

  在大家对围棋程序的前途悲观失望的时候,深蓝的主要创造者许峰雄放出话来:十年之内可以看到战胜人类最高手的围棋程序。他的观点半年前发表在IEEE的杂志上。如果是别人放出这种话,我一定把它当成痴人说梦,不去理会。但许峰雄不是一般人,他腰下插着深蓝的金牌,说话还是有份量的。他的文章至少值得一读。
<点评:到底是专家,2007到2016,十年之内产生了阿尔法围棋程序。>

  许峰雄说大家现在对“硬搜索”在围棋程序上不抱希望,就象几十年前大家对国际象棋程序一样。纯“人工智能”的路现在看来效果不是很好,而“硬搜索”却有很大潜力。我们都清楚,只要搜的足够深,“硬搜索”产生出来的程序是可以很强大的,不信可以去问一问Kasparov。深蓝的搜索深度是,普遍搜索12层,特殊搜索40层以上。据他估计,一个围棋程序要达到深蓝的搜索深度必需搜索10的19次方个节点。这看起来是一个可望而不可及的数,但他认为是可以有办法把它拿下的。他的这个结论主要有四个支撑点。

  第一点,用Alaph-Beta搜索。Alpha-Beta不是什么新东西,计算机科学家很早就发明出来。其主要思想是,在搜索某个节点时发现如果继续搜下去最好结果也不会好于到现在为止在别的节点上搜到的最好结果,那就没有必要继续搜下去。比如这一步棋让对方一大块死棋变活,大概就没有搜下去的必要。这个Alpha-Beta搜索可以把搜索空间缩小到平方根,也就是从10的19次方到10的9。5次方。

  第二点,加入零空间搜索。所谓零空间搜索相当于停走一步。我们看围棋比赛,偶尔会听见观战者说这个时候即使白棋停走一步,黑棋也没得下,意思是白棋赢多了。零空间搜索就是这个意思。由于国际象棋的特殊规则(有时停走一步反到有优势),深蓝不能采用零空间搜索。但围棋完全可以采用零空间搜索。如果停走一步还有很大优势,则这一路搜索就有很大价值(或者很没有价值,如果停走的是对方的话)。据他说加入零空间搜索又可以把搜索空间开方。而且这个优势是深蓝没有的。

  第三点,重复利用已有知识。比如一块棋活了,就不用老去算它的死活,除非附近有新情况发生。这个“除非”在国际象棋上出现太多,因为棋盘太小,所以不好用。判断“除非”所用的时间以及上下传递已知信息所花的时间使它的利用得不偿失。但围棋棋盘大,很多时候一块棋的死活与别处无关,如果再用特殊硬件加速已知信息的交流,这个优势在围棋程序上就可以很大。

  最后一点又是莫尔规律。他说深蓝过去十年了。现在的新技术几乎可以把与深蓝有同等能力的计算机放到一个PC上(深蓝用的是480个加有平行结构的超级处理器),再过十年,速度又可以提高100倍。假如再加上几百个平行结构的联接,则又可以提高几百倍。

  把以上几点加在一起,可以消掉在深蓝搜索范围内围棋与国际象棋的一百万倍的差别。十年以后我们将会有一个与深蓝有同等能力的围棋程序。如果假设围棋职业棋手与国际象棋职业棋手搜索的深度一样的话,那么这个程序就可以打败人类最高手。

  许峰雄是高手,他的话应该有一定的可信度。他说他的研究生已经开始着手这方面的工作了。但是他的文章里始终没谈判别好坏问题,而我认为这是一个关键问题。因为没有搜索到底,始终都存在判断好坏的问题。搜索到12步或者40步以后怎样决定结果的好坏。四五十步棋的时候中盘或许刚开始,怎样判断什么是好什么是坏。这个问题大概得输入一些专家知识。相当于当初深蓝让国际象棋大师作顾问。许峰雄现在在中国,找专家当然不是什么难事。

  对这个没搜索到底的问题有疑虑的人还不少。象我这样的人只是问一问,另外有些人就要想法设计四十步以后的判断算法。还有些人更进一步,干脆搜索到底。且慢,你刚才不是说搜到底是无穷大吗?怎么有人可以搜索到底。这又要扯到人工智能的另一个方法:模拟。

  围棋是完全信息游戏。不象桥牌或Poker,总有未知因素。桥牌要考虑牌形分布,大牌的位置等等。Poker的未知因素就更明显,虽说手上的2,7是最烂的牌,但如果Flop出来7,7,2,你的牌马上就变成强牌。围棋没有这个问题,对弈双方可以使用的一切招术以及结果都没有未知成分。可是,虽说没有未知成分,但因为没有人能够算到底,这些公开的信息并不是清楚地摆在双方的面前。想得深的就多一些信息,想得浅的就少一些信息。下棋时对方给你设圈套就是只望你算不到那么深。好象一口井,只有竹杆够长的人才能打到里面的水。有些问题,比如围棋程序问题,深一点或许不够,希望能深入到底。可是太多的路径选择又不允许每条路径都走到底。这时候我们就采用一种叫做随机模拟的方法。其基本思想是,虽然不能每条路都走到底,但选择一些路走到底是可以的。在每个分岔点我们都随机的选一些岔道走下去。走到底以后看结果。如果某个结点后随机选的岔道都显示这是一条好路,从概率上来说这是一条好路的可能信就很大。这种随机模拟的算法在很多方面都有应用,尤其是在物理和工程上。第二次世界大战时美国的一批造原子弹的物理学家(费米,冯。诺曼等)给这种随机模拟方法取了一个响亮的名字叫Monte-Carlo。这是欧洲以赌场闻名的一个城市名字。这种算法和赌场都靠大量的随机结果为其工作原理。

  本文最开始说的围棋程序MOGO就是基于这种原里。MO就是Monte-Carlo的前两个字母,GO就是英文围棋的名字。这个程序不需要背任何定识,做任何模式识别。只是随机地在棋盘上选许多点,走一步以后再随机的选许多点,一直这样把一盘棋下完,然后数子。因为一直走到底,胜负已经很清楚,不需要任何判断。如果某个点以后随机选择的路径以最大胜率结束,这个点就被认为是最有利的点,程序就选这一步。顺便说一句,MOGO的前辈(第一个在这方面有成就的程序)叫做疯棋(CrazyGo),我觉得这个名字恰如其分。这个看似疯狂而且简单的原理居然弄出惊人的结果。首先是在计算机围棋比赛中战胜了所有其它对手。在此之前,计算机围棋程序的冠军几乎一直都是陈志行教授写的[手谈]。陈志行教授自己是围棋高手,又是计算机专家,把自己的许多想法都注入了[手谈],所以,它能打败同类的其它程序。[手谈]可以说是一个典型的“人工智能”程序。没想到这个“人工智能”高手遇到这么一个没有任何“智能”成分的傻瓜程序却无能为力。这一方面说明[手谈]的所谓“人工智能”还有很多缺陷,另一方面也说明MOGO的算法有一定道理。

  不光是对计算机程序,这种完全随机的模拟方法对人类也有优良表现。正规的19路棋盘现在对它们来说还太大,于是从小棋盘开始。中国旅欧职业五段棋手郭娟与MOGO的前身疯棋在小棋盘上下了很多盘。在7X7的棋盘上,疯棋执白从来不输,执黑也偶尔能赢。在9X9的棋盘上与郭娟下了14盘,9胜5负。成绩还是很拿得出手的。MOGO比疯棋又进化了一步,在最近的一次计算机围棋程序比赛上,MOGO与疯棋的新版疯子(CrazyStone)进行冠亚军决赛,MOGO大胜。看来MOGO要比疯棋强很多。所以当另一职业五段2胜一负战胜MOGO时就成了大新闻。

  出于好奇,我把MOGO与疯子的决赛棋谱调出来看了一下,同时发现一些可喜和可忧的部分。可喜的是MOGO似乎能产生有很强的大局观的棋。对方在角上压过来时它居然会脱先去占大场,而且这个大场不是三路或四路,而是在五路上。只看布局,很有武宫正树宇宙流的风格。在对杀时还能走出单立这样的好棋。可忧的是它毕竟没有什么智能,走到后来简直惨不忍睹,或者说愚不可及,比一个刚学棋一天的人都不如。毕竟它们是一点智力都没有。从这一点上看,这条路还有得一阵走。另外,从小棋盘到大棋盘进发的问题,还是由莫尔规律来掌握其进度吧。

  写到这里,正好看到记者采访聂卫平谈到围棋程序,聂卫平说围棋程序不是还处在随便一个人都可以让二十多子的水平吗?看来聂卫平需要有人给他更新一下有关围棋程序水平的认识了。
  <点评:这次聂卫平终于给阿尔法狗的招法脱帽致敬了。>

  MOGO与许峰雄的“硬搜索”都是朝非传统人工智能的方向走。如果有朝一日走出一个没有任何智能却能打败人类最高手的程序,真的是一种悲哀。所以有人在围棋网络上呼吁程序员们不要继续这种程序,要给人类留一块圣地。我想,挡是挡不住的,呼吁也没有用。人们在前进的道路上总是要在不同的路径上进行探索,不同的路都走一走,才知道哪条路好。从某种意义上来说,人类的进步不也正是一种Monte-Carlo过程吗?

  GO,MOGO!  GO,MORE GO。

--万精油--      二零零八年三月二十八日于波士顿西郊

TOP

在Alphago获胜之日重读经典围棋小说《墨绿》



  近日头条无疑是李世石连败阿法狗(Alphago)。“我真的很吃惊自己输掉了,说不出话来。”李世石无法想象,为何在前半盘占优的情况下输掉了比赛,“甚至到现在还找不到AlphaGo的缺点。”3月10日,输掉了第二盘“人机对抗”后,李世石已经从赛前雄心勃勃的5比0,变成了“只求一胜”。

  这无疑是人工智能的骄傲。这不由使人想起多年前一篇经典文章《墨绿》。这篇文章描写主人公如何开发了一款软件,用人工智能赢了围棋世界冠军的故事。《墨绿》的作者是一位“爱好写作并喜欢打羽毛球下围棋的数学家“。他也是《数学文化》的特邀作者。

  “墨绿又闪光了。看来肉体会消失,但作品不会,只要有事件提醒,人们又会想起来。”该文作者如是说。

  《墨绿》当年被看做是科幻文章。人类如果没有了幻想和欲望,那么世界将失去进步的动力。展开想象的翅膀,寻觅逻辑的轨迹,优秀的的科幻小说从来就是科技进步的先导。当年的读者,甚至是当年的作者,虽然相信人工智能取胜只要假以时日,但都没想到这一天来得这么快。


  作者微博选:@万精油墨绿

  刚才看了谷歌深思领军人物Demis Hassabis的最新演讲“人工智能的未来” ,里面有很大一部分在讲AlphaGo。除基本原理之外的几个亮点是:1. 每天昼夜不停都有100个以上不同版本的AlphaGo在互相比赛,随时进步。2. 绝大多数职业棋手觉得李世石会赢,但我们的内部估计表示不同意[哈哈]

  李世石与AlphaGo的比赛正式开始了。不管谁输谁赢,这都是一个划时代的时刻。我准备今天熬夜看了。国外的可以看DeepMind的Youtube频道 , 职业九段MichaelRedmond 解说。国内的可看的就多了。从附图看,国内职业棋手几乎倾巢出动啊。看来都很重视这个划时代的比赛。好好好!

  因为墨绿的渊源,对昨天李世石与AlphaGo的战斗,我把自己放在人工智能一方,希望AlphaGo赢。一方面验证AI的实力,另一方面给那些看不起AI的人敲钟。但真正看到李世石输了,心中却有一点悲哀。虽说是迟早的事,但它还是来的太快,比我以前的预期提早十年。喜悦中带着一丝悲哀[哈哈][泪]

  我的一个朋友是程序员,不是很懂围棋。知道AlphaGo赢了李世石后对我说,太厉害了,Alpha 版就这么厉害,Beta版出来岂不是更不得了。[哈哈][哈哈][哈哈] (注:为不写程序的解释一下:一个程序正版推出以前,先要有一些内部测试版,叫alpha版,推到外部测试就叫Beta版,最后是正版)。
  a (Alpha)是希腊字母的第一个。用到测试版时,当“初”讲。但用到名字里,当“第一”讲。英文里把社会动物里的最强雄性叫Alpha Male。围棋在英文里叫Go,所以,AlphaGo 其实是“棋王”的意思。

  计算机真正要号称战胜人类,或许应该面对人类的整体实力,而不是某一个人。比如,几个人类高手讨论后出招。昨晚的棋如果让高手讨论,右下角绝对不会下成那样,人类说不定就赢了。[哈哈]

  好事提前到来当然是好的。但一件事的好坏往往因为角度不同而看法也不同,所以有悲喜皆有的时候。十多年前我儿子第一次在羽毛球上打赢我时,我就是这种心情。一边看着他满场挥拍绕圈的高兴,一边为自己跨进下一个阶段而悲哀。当然,自然的规律不可抗拒,高兴还是主要的。[哈哈]

TOP

返回列表