热点 | 机器的胜利还是人的胜利?
5月23日,围棋界和人工智能界都翘首以盼的柯洁对阿法狗(AlphaGo)的比赛在浙江的乌镇正式开战。与去年 3 月份开战的韩国棋手李世石对阿法狗相比,这次比赛的热度有所下降。这个好理解,毕竟失去了首次的意义。柯洁对阿法狗的首场比赛我全程看了,毕竟我也算是个围棋迷,虽然我的围棋水平最多只有业余初段的水平。像我这种水平,想独立看懂职业棋手的比赛是不可能的,但是借助高手的讲解,完全可以感受到比赛的那种紧张气氛,也会在比赛进行到最关键的时刻悬着心等待棋手的出招,忍不住发一些感慨和评论。今天让我以一个科普人和围棋迷的双重身份带大家深度了解一下人机大战。
图片来源网络
一年多前,也就是2016年3月9日,举世瞩目的人机大战开打,由史上围棋冠军头衔最多的韩国棋手李世石对阵谷歌研发的人工智能阿法狗。说举世瞩目,一点都不夸张,据说全球有 2.6 亿人次观看了首场比赛,有至少几十个国家直播。在韩国,那更是万人空巷。其实,全世界会下围棋的人,把只要是能看懂最基本的围棋死活的人都算上,乐观估计也不会超过 4000 万人,大多数人是看不懂屏幕上那些黑白棋子到底在干什么的。但即便如此,依然有两三亿人看了比赛。
为什么这场人机大战会受到这么大的关注?人机大战不是早已有之吗?我们都知道,1997年,IBM的“深蓝”就战胜了人类的国际象棋冠军卡斯帕罗夫,计算机下棋并不是什么新鲜事。原因就在于,围棋号称人类第一智力游戏。象棋是越下棋子越少,而围棋刚好反过来,越下棋子越多,可能的变化也越多,只有过了中盘以后,复杂度才会又降下来。如果按照深蓝下象棋的算法来下围棋的话,那么深蓝可能几百年也算不完一步棋,因为围棋不可能穷举所有可能的走法,计算量是天文数字。所以,在深蓝战胜人类的国际象棋冠军之后的十多年,计算机在围棋上的水平始终只能算是业余级的,根本不入流,甚至有人豪言计算机想在围棋上战胜人类,恐怕还需要 100 年。这个人就是 10 多年前的我,自以为懂一点编程和围棋。不过,棋圣聂卫平说过,在大局观上,计算机不可能胜过人类,因为思考的模式不一样。因此,在深蓝战胜卡斯帕罗夫之后,围棋成了人类捍卫自己智力尊严的最后一块领地。现在,谷歌的阿法狗居然要攻陷人类的这最后一块领地,你说这能不让我们人类捉急吗?
图片来源网络
在阿法狗跟李世石比赛之前,阿法狗已经战胜了欧洲围棋冠军樊麾。其实樊麾是个中国人,只不过在欧洲下棋,他的棋力也就是职业二段的水平,在职业棋手中只能算是个三流棋手。但这毕竟是计算机第一次战胜了人类的职业棋手,这在 10 年前几乎是不可以想象的。于是围棋界开始关注这个横空出世的阿法狗。在看了阿法狗与樊麾的棋谱后,职业棋手普遍的评价是,阿法狗确实很厉害,都已经看不出是电脑了,但也就是比樊麾的脑子好了这么一点点,与一流的人脑相比还差得远。你看,那时候的人类是多么自恋,对电脑的最高评价是“你不像是电脑”,就好像余秋雨说过去对上海人的最高评价是你不像是上海人一样。但是,仅仅过了一年多后的今天,对人类棋手的最高评价恐怕已经要改为“你怎么像电脑一样”了。阿法狗为什么会变得这么厉害,关键原因在于,它与深蓝的下棋算法有本质的不同,深蓝从本质上说就是穷举所有的可能,从而选出一个最优下法,但阿法狗采用的是另外一种完全不同的算法。这个我们一会儿详细说,先卖个关子。我们先来回顾一下首场人机大战的比赛情况。
第一场比赛是最受瞩目的,我当然也看了直播。开局没什么好多说的,中规中矩,进行到80多手棋的时候,也就是进入中盘阶段的时候,李世石围住了一大片地,这个“地”指的就是棋盘上的交叉点。围棋之所以取名叫围棋,就是看谁能围住更多的地,它不像象棋,是以吃掉对方的棋子为最终目标,围棋的目标是争夺地盘,所以,高手对局很少吃别人的子。这就是为什么往往下围棋的人会看不起下象棋的人,因为他们觉得自己的境界不一样,已经脱离了打打杀杀,比的是大局观。这就跟小偷看不起强盗,诈骗犯看不起小偷差不多一个道理,用葛大爷的话来说就是“抢劫一点技术含量都没有”。到了中盘的时候,李世石围住了一片哪怕是在我们这种业余棋手比赛的时候也很罕见的大空地,所以,当时几乎所有人,不论是职业棋手还是业余棋手,都认为李世石赢定了,连我这样的业余水平也认为这棋下到这样已经没必要再看下去,于是我就关了窗口忙工作去了。这就好像看奥运会的乒乓球比赛,中国队已经 10 比 0 领先美国队,看不看都无所谓了,没有悬念了。谁知过了一个多小时,我突然收到一个棋友发来的微信:李世石要输了!我当时的第一反应是“玩我的吧?”但我还是忍不住又打开直播,一看之下,大吃一惊,李世石果然已经被连追 10 个球,打平了!
图片来源网络
李世石在这场比赛中执的是黑棋。围棋的规则是黑棋先下,先下有优势,因此也要在最后数地盘的时候倒贴一些空地给白棋,这在围棋术语中被称之为“贴目”。如果考虑贴目的话,李世石实际上已经落后了。在最后的收官阶段,计算机强大的算力发挥得淋漓尽致,每一手棋都是最优解,滴水不漏。下到差不多第 180 手的时候,观战解说的柯洁和古力已经给李世石判死刑了。果然,下到第 186 手,李世石投子认负。人机大战的第一局,阿法狗就上演了令人惊叹的惊天大逆转。这里面最令人震惊的是,李世石在中盘获得巨大优势后,并不是因为心理波动,下出了什么昏招被一举翻盘的,而是真的就像打乒乓一样,每一个球都争夺的非常激烈,但每一个球都丢了,就这样被阿法狗一点一点追回来。
这次人机大战一共要下五局,后面四局每一局也都有些看点,尤其是李世石唯一战胜阿法狗的第四局,李世石下出了被古力评价为神之一手的第78手。但最终的比分锁定在了1:4,人类完败。
李世石失败后,第一个跳出来高调表示人类不服的就是柯洁,他在比赛结束后立即在微博上写道:就算阿法狗战胜了李世石,但是他赢不了我。这个狂人柯洁又是谁呢?他确实有狂妄的资本。就在他写下这篇微博的过去一年,接连获得了三个世界冠军,成为了世界上最年轻的围棋三冠王,年仅19岁。而就在李世石对战阿法狗的四天前,在农心杯上,柯洁刚刚战胜了李世石,正是如日中天的时候,围棋等级分排名世界第一。跟所有的少年人一样,柯洁是好胜的。我想,他对谷歌选择了李世石而没有选择他作为人类棋手最高水平的代表与阿法狗一战,心里一定是有些怨念的。所以,这篇微博也可以看作是柯洁向阿法狗的挑战书。但是,谷歌没有对柯洁的挑战做出回应,而是默默地关机,收拾电源线,回到研发中心,销声匿迹。
时间走到了2016年12月29日晚上 7 点多,此时人机大战的硝烟早已消散,人们天天谈论的都是刚刚当选的美国总统特朗普,早已将阿法狗忘记了。国内最著名的围棋对战平台弈城上突然出现了一个新注册的神秘人,这位神秘人的昵称叫 master,中文就是大师的意思。在网上下围棋的规则是新人进来都必须从较低的级别开始,高段位的棋手往往不会搭理低级棋手。master 在遭到几个高手的拒绝后,只得向一些中级棋手挑战,结果全都轻松取胜,这才引起了高手们的注意。前来应战的高手一个接一个,名气越来越响,可是,所有的高手在 master 面前都显得不堪一击,一个晚上,master 取得了十连胜的战绩。当第二天 master 再度现身弈城的时候,号称韩国围棋第一人的朴廷桓已经在等着他了,结果仍是惨败。突然网友们惊呼,“吻别”来了!“吻别”正是柯洁的昵称。30 日下午 4 点 15 分,master 与吻别的第一场较量落子,这是一场快棋赛,仅仅半小时,柯洁落败。围棋少年不服,立即要求再次对弈,半个多小时后,再次落败。到了 31 日,master 已经连胜 30 场,他的手下败将还包括号称日本围棋第一人的井山裕太。此时,人们突然醒悟过来了,这绝不可能是人类棋手能达到的高度。而那位几个月前还发出“他赢不了我”的豪言的围棋冠军也猜到了什么,他在 12 月 31 日晚上 11 点 28 分发布了一条微博,上面写道:
我从 3 月份开始到现在研究了大半年围棋软件,无数次的理论、实践,就是想知道计算机究竟强在哪里。昨晚辗转反侧,不想竟一夜无眠。人类千年的实战演练进化,计算机却告诉我们,人类全都是错的。我觉得,甚至没有一个人沾到围棋真理的边。但我想说,从现在开始,我们棋手将会结合计算机,迈进全新的领域达到全新的境界。新的风暴即将来袭,我将尽我所有的智慧终极一战。
在此后的几天中,master 继续所向披靡,取得了不可思议的 60 连胜。相信你已经猜出来了,这个神秘人 master 正是升级后的阿法狗2.0。
世界围棋排名第一的柯洁与阿法狗的正式比赛终于敲定,将在 2017 年 5 月 23、25、27 日进行三番棋决战。尚未满 20 岁的围棋少年,将再次代表人类,与人工智能进行较量。有意思的是,我们如果按照时间线把柯洁的言论罗列一下,可以看到他心态的悄悄变化。
去年 3 月,柯洁说:“就算阿法狗战胜了李世石,但它赢不了我。来吧!管你是阿法狗还是阿法猫!我柯洁在棋上什么大风大浪没见过?让风暴再来的猛烈点吧!”
今年初,柯洁说:“它颠覆了我们对围棋的认知,所以说它的出现是我们的幸运。”
而赛前最后一次接受采访,柯洁说:“我将尽全力争胜,一决胜负,抱有必胜的信念和必死的决心,不轻易言败。”
图片来源网络
再看这一次柯洁与阿法狗的人机大战,世人的观点已经和一年多前发生了180度的大转弯,李开复的话最有代表性,他说:这次比赛已无科学意义,人类的胜率是零。
5月23日上午10点半,柯洁执黑,在围棋盘上右下角点“三三”。在围棋中,开局点三三是一种非常强烈的信号,表明自己这盘棋要采用的是相对保守的步步为营的下法,这已经不是人不轻狂枉少年的柯洁了,他采用了最为稳妥的下法。柯洁这招是以其人之道还治其人之身,他显然是经过了经心的备战,选择这种策略是经过深思熟虑的,因为这个下法正式过去阿法狗最常用的下法。不过,阿法狗毫不示弱。在人类对局中,一般来说,一方如果是保守捞实地派,那么另一方就会自然地选择取外势,构建大模样的走法。但是,阿法狗却跟柯洁对着干:你不是想捞实地嘛,那我也捞实地,看谁捞得过谁。结果,还是阿法狗技高一筹,连柯洁第一个三三所占据的角都不得不拱手相让给阿法狗。柯洁的战略意图被打乱。当走到54手的时候,阿法狗下出了一手让柯洁冷汗直冒的棋,柯洁赛后说,当他看到这手棋的时候,非常震惊,因为那手棋在人类的对局中几乎是不可能下出来的,看上去是步臭棋,实际却越下越觉得精妙无比。
图片来源网络
随着棋招的增加,整个局面越来越进入阿法狗的节奏,柯洁已经被牵着鼻子走,虽然每次交战,黑棋似乎都不落下风,但白棋总能稍稍多那么一点点优势,这种优势在慢慢地累积,黑棋从来就没有找到机会。在这种局面下,如果是人类之间的对弈,落后的一方想要获得胜利,只有两种情况,一是对手出昏招,二是强行跟对方绞杀搏命。显然,阿法狗是不可能出昏招的,柯洁唯一剩下的出路就是绞杀搏命了。我之前曾经说过,高手下围棋,都不是以吃掉对方的子为目的的,一旦要拼命去吃子,这时候其实已经是强弩之末了。柯洁瞄准了白棋上边几颗字,想要彻底歼灭,这在围棋术语中叫做“屠龙”,屠杀大龙的意思。很遗憾,柯洁没有屠龙刀,阿法狗是狗不是龙。屠龙不成,黑棋盘面更加落后。
到了最后的收官阶段,阿法狗突然全部采用了最为保守稳妥的下法,看似黑棋在一点一点的与白棋缩小差距,其实,柯洁的心中满是苦水,因为,他很清楚,在阿法狗的芯片中,这局棋已经结束,此后的每一步都在它的算计中,因为,阿法狗不需要最大的胜果,只需要最大的胜率。最终,阿法狗以四分之一子的优势取胜,这是在中国围棋规则下,优势最小的胜利。
图片来源网络
看完这局棋,我发了一条微博:阿发狗胜四分之一子,这是围棋中的最小胜利。我在猜想,会不会这次三盘棋全都是同样胜四分之一子的结果,以此显示阿法狗的真正强大,就好像《2001太空漫游》中土星黑石板一样的存在,精确到不差分毫。我想,或许在阿法狗的后台设置中可以调节胜多少子。
当然,这是我的一个玩笑,但如果真如我所说,我也不会再感到惊讶,因为,人工智能新的一页已经被翻开。
阿法狗到底是怎么下期的呢?这不是秘密,阿法狗的算法原理都是公开的。围棋棋盘上一共有 361 个交叉点。围棋子一落,占掉一个点,还剩下 360 个点。对手就有 360 种可能性可以下。当然啦,很多地方对手根本不可能落子,那是臭棋,所以,落在每个点的概率是不一样的。平均下来,每一步棋大约有 200 种可能性。一盘棋下来,棋盘上可能出现的局面总数到了远大于宇宙中原子总数的地步。所以深蓝对付卡斯帕罗夫的办法就不好使了。卡斯帕罗夫倒是这么被计算器暴力穷举给逼死的。
阿法狗必须另辟蹊径,它择了别的下棋方式。“秘诀”有三个:深度神经网络、监督/强化学习、蒙特卡罗树搜索。
深度神经网络是包含超过一个认知层的计算机神经网络。人们将人工智能设计出不同的“层”,来解决不同层级的认知任务。这种具备许多“层”的神经网络,被称为深度神经网络。这话说的太学术了,大家难免犯晕。简而言之,阿法狗还是跟人学了两招,第一是大局观。利用一种价值网络算法来明晰局势的判断,从全局“战略”着眼,抛弃不合适的路线;第二招是微操作,利用策略网络算法优化每一步落子,优化具体的“战术”,减少失误。两者结合在一起,使得阿法狗不需要过于庞大的计算也能够走出精妙的棋局。单凭一招是难以应付复杂局面的。
图片来源网络
卡斯帕罗夫败给深蓝,那是因为深蓝输入了能找到的所有国际象棋的棋谱。但是对于围棋,这远远不够。因为围棋的可能性太多了,全部棋谱也不够冰山一角,恐怕还有好多种下法,人类还没碰到过。阿法狗使用了监督学习和强化学习。这是机器学习方式的不同种类。监督学习是指机器通过人类输入的信息进行学习,而加强学习是指机器自身收集环境中的相关信息作出判断,并综合成自己的“经验”。在初始阶段,阿法狗收集研究者输入的大量棋局数据,学习人类棋手的下法,形成自己独特的判断方式。之后,阿法狗就如双手互搏一样自己跟自己下棋,每一次都能总结经验获得提高。它一天可以自己跟自己下 100 万局棋,而人类棋手终其一生也下不过 3 万局。当然啦,也不乏人类给他陪练,阿法狗在网络上和众多顶尖高手下快棋,这并不是闲得无聊之举。可以这么说,阿法狗见到过的走法很可能大部分围棋高手都没见过。谁知道这家伙半夜不关机,通着电自己跟自己对练走过哪些稀奇古怪的棋啊。
说到底,一步棋到底该怎么走,其实还是有很多种走法。哪种办法是最合算的,赢面最大呢?那就必须从庞大的可能性里面去搜索出来。蒙特卡洛搜索树就是一种高效率的搜索算法。蒙特卡洛方法在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算、核工程)等领域应用非常得广泛。当年计算机之父冯·诺依曼参与核弹研究的时候和乌拉姆一起搞出了这个办法。因为涉及到随机概率,就用了蒙特卡洛这个名字,源于摩纳哥的蒙特卡洛赌博业极其出名。概率最开始就是赌徒发明的数学嘛。不过上溯上去最早想到类似办法的不是冯·诺依曼,而是法国的博物学家布丰。
布丰投针是个很有意思的东西,一张白纸,上面画上几条平行线,间隔宽度为 a。然后找一根小棍,棍子的长度是平行线的间隔的一半,即 a/2。然后你就扔吧,最后统计一下总共投掷了 n 次,有 m 次小棍和平行线相交。那么相交概率就是 m/n 。布丰计算了,这个概率就是 π 的倒数,也就是你把它倒过来,n/m 应该就趋近于 π。有兴趣的朋友不防自己去试试。1901年,有个意大利人扔小棍扔了三千多次,最后计算出来的 π 精确到了小数点后面的 6 位 3.1415929,你看还是蛮准的。投掷的次数越多,计算精度就越高。虽然扔了 3000 次得到的圆周率 π 值,还不如祖冲之的计算精度高,这可能是传统蒙特卡洛方法长期得不到推广的主要原因,但是这种算法省掉了繁复的数学推导和演算过程。这个特点碰到了计算机这种傻快的家伙,缺点就立刻转变成了巨大的优势。
蒙特卡洛算法有个好处,那就是精确度和时间正相关。你要精确,那么多花点时间慢慢算;你要急着要结果,那就能快速算个大概。下围棋很大程度上不需要那么精确,只要知道赢面比较大就行了,但是算得快是必须的。
具体到阿法狗怎么应用蒙特卡洛算法呢?我们还是打个比方,一个不透明的罐子里面有大大小小各种各样的苹果。现在要你把最大的挑出来。当然你不准全倒出来,那不行。你也不知道里面的状况,你甚至也不知道里面多大的算大。那么只能先摸摸看,一只一只摸出来,假如比上一个大,那就留下,反正你摸的时间越长就越有可能找到那个最大的。假如你时间来不及了,看看大小也还满意,那就不摸了。阿法狗也是这个办法。当它挑选出来的这步棋足够用了,赢面足够大了,它就不必再费力气搜索了。所以你看,柯洁反而被他逼的长考。阿法狗很实际,能赢你一点点就不用再花那个电费去算了。
柯洁还剩下两场比赛,现在已经几乎没有人认为柯洁能获胜了。第一场比赛我在弈城看直播的时候,看到还有 20% 的人押柯洁赢,我估计下一场会低于 10%。但是,柯洁的失败是人类的失败吗?
不,恰恰相反,我认为,柯洁的失败是人类智力的又一次辉煌展示,这是数学的胜利,这是算法的胜利,这是人类对自然规律又一次深刻洞见后的胜利。阿法狗所采用的一切方法,归根到底是我们人想出来的数学方法,阿法狗的研发工程师大多数甚至都不会下围棋,他们只需要知道围棋的基本规则,然后,赋予阿法狗通用的算法。这个算法不仅仅可以用来下围棋,还可以用来做人脸识别、医疗诊断,甚至可以用来生产法律文书、新闻稿件等等。阿法狗代表的是人工智能的新高度,而人工智能其实代表的是人类智慧的新高度。
图片来源网络
我们完全没有必要为柯洁的失败感到沮丧,相反,我们应该为算法的胜利而欢呼。