聊几句AlphaGo

惯例文不发了,因为今天有更重要的事情。

AlphaGo。

在谷歌的大新闻出来之前,大家普遍认为,围棋程序离顶尖棋手有相当大的差距,虽然在跳棋、黑白棋、中国象棋、国际象棋……人类都被电脑程序打败,但在围棋上,人的智慧仍保持最后的尊严,这么多年的艰辛发展之后,电脑程序要被职业棋手让四子才能有的一拼,人类有理由相信,在围棋盘上,人还可以高枕无忧一段时间——主流估计中最悲观的,也觉得五年内电脑很难赶上人类。

这源于围棋的复杂性,电脑程序能攻克象棋、国际象棋,是因为这些棋当中,棋子的价值是确定的:将是最重要的,车马炮相对重要,卒的重要性比较低;加之,象棋中能走的方案数比较少,电脑程序可以尝试每一种可能性,并算出去很多步,从中找出最好的一步来。而在围棋中,这两点都不成立:首先,围棋棋子都是一样的,并没有谁重要谁不重要一说,而且棋子落在某个位置的价值,是要看跟其他棋子的位置关系来确定的,随着不断落子,棋子的价值也在不断发生变化;而且,围棋的落子选择实在是太多了,平均每一步要有200多种可能性。

所以,即便是1月出了大新闻,说AlphaGo程序已经战胜职业二段、欧洲冠军樊麾,并要在3月以100万奖金约战职业九段选手、世界冠军、顶尖棋手李世石,依旧是很多人表示不屑,认为谷歌是来给李世石送钱的,毕竟,谷歌战胜的只是一个久未在中日韩赛场上历练的二段棋手,只是一个欧洲冠军。棋谱放出来之后,人类似乎信心更强,很多棋手在AlphaGo的棋谱中找到诸多漏洞,在围棋界少有人认为AlphaGo达到了人类最顶尖选手的水平。

然而,被AlphaGo击败的樊麾并不这么认为。在谷歌放出来大新闻的前几天,他回国与少年时一起学围棋的小伙伴们聚餐,席间樊麾并没有老友相聚的兴奋与喜悦,相反,一直是阴沉着脸,少言寡语,几杯酒下肚之后,樊麾终于来了一句“你们知道吗,围棋界要变天了”,之后无论朋友们怎么追问,樊麾也没有透露细节,只是说“过两天新闻出来你们就知道了”。

樊麾的话并没有引起职业圈的重视,据说在职业棋手圈子里私下的盘口是李世石让4.5盘,即便如此,还是很多人下注到了李世石身上。

而另一边,赛前传来AlphaGo方面的消息:谷歌决定在这次比赛中,并不打算使用多台电脑联网计算,而只使用单台机器[1]。又有小道消息说,新版的AlphaGo对战当初战胜樊麾版本的AlphaGo,有着相当高的胜率,由于内部机密的缘故,具体数字无法透露。

虽然我几乎完全不懂围棋,对AlphaGo使用的深度学习也了解不多,但从以上几点场外因素判断,此次李世石凶多吉少,此时说这些并非完全是事后诸葛:在赛前,我在微博上立了贴,预测AlphaGo会取胜。

第一局,李世石显然是有备而来,他了解到AlphaGo的下棋策略是从人类棋谱中学到的,因此下了一个不常见的开局,希望以电脑不熟悉的方式来搅乱节奏,然而这并没有起到什么作用,最终AlphaGo取得了胜利。赛后分析,普遍认为本局李世石有几处失误,而电脑从始至终发挥稳定,导致了最终的失败。[2]

第二局被认为是关键一战,如果此战李世石能够获胜,说明人类与电脑尚可一战,后面鹿死谁手还尤未可知,若电脑获胜,后面李世石恐怕是要0:5溃败了。这一局中李世石采用了常见的开局,整场也没有较大失误[3],最终还是输给了电脑,此局下完,悬念不多了。

我不懂围棋,只说一些场外信息,在第一局中,直播中负责解说的职业棋手们,经常会说电脑哪一步棋下的不太好,到了第二局,解说们低调了很多,把措辞改成了“这步棋下得不太常见,可能是我们理解不到”。从用词上的变化,能看出来,职业圈里已经把电脑当成一个厉害的对手来判断了,赛前认为随便一个九段都可以轻松打败AlphaGo的聂卫平,也说要向电脑脱帽致敬[4]。

至此,已经基本可以宣告围棋的电脑程序已经战胜了人类,虽然,李世石等级分排名并非世界第一,在最近的十盘棋中,也是以2:8的比分输给了等级分第一的中国18岁棋手柯洁。但是,即便柯洁与李世石的差距,要大于电脑与李世石的差距,这也并不重要了:电脑已经有了连胜两盘李世石的能力,而且AlphaGo通过与自己下棋来练习,提高水平,勤奋的职业选手,一年下一千盘棋算是很多了,AlphaGo一天就可以与自己下上千盘棋,柯洁能赢AlphaGo,用不了多久也会被AlphaGo战胜。

甚至,根本不用到2:0的比分出来,在电脑与李世石的第一盘棋,电脑能下出几十手棋而李世石并没能建立明显优势的时候,那场比赛的输赢就已经不重要了,电脑今天能下出几十手棋而不落下风,即便输了,战胜人类棋手就只剩最后一层窗户纸了。

再甚至,根本不需要到与李世石下出几十手的时候,在去年十月,电脑能5:0战胜樊麾的时候,电脑里战胜人类,大概也最多只剩几层窗户纸而已。现在回想起来,樊麾在酒桌上憋出的那句“围棋界要变天了”,并非虚言。

AlphaGo之所以能获胜,是因为它并没有采用中国象棋、国际象棋程序使用的那个套路,而是用了一套新的方法,简单说,它不需要人来告诉它,哪个子的价值是多少,而是通过看历史上的棋谱,自己归纳出一套评价局势的方法,它也不需要去尝试每一步的所有可能性,而是根据学习来的东西,选出一些最有可能的点开始落子。[5]而且,正如前面说的,它除了使用人类下过的棋谱,还会通过自己跟自己下,来产生新的棋谱用来学习。

AlphaGo获胜的意义,远非在围棋上战胜了人类这么简单。

在展开说这点之前,先说两件小事。

第一件,90年代在一本书中,我读到一个故事,说清华大学几个大学生去机械厂车床车间实习,当时那个厂新进口来一台数控车床,可以编程控制操作车床,但是说明书是全英文,厂里没有工人会用,这几个大学生就自己翻译说明书,研究出了使用方法,后来厂里举办了一场比赛,一边是使用数控车床的大学生们,一边是厂里面最有经验的老车工,为了增加难度,老车工设计了一个极复杂的题目,大学生们暗自发笑“越是复杂的零件,用数控车床越有优势”,果然,结果出来之后是一边倒,数控车床出来的零件,几乎没有误差,比老车工做出来的零件准确得多。

第二件,战胜了人类顶尖国际象棋选手的IBM超级电脑深蓝,在战胜人类之后没多久,就宣布退役了,把它强大的计算能力,用于药物设计、模拟核爆炸、全球气候建模、航天设计、汽车碰撞过程等等。当时IBM宣传深蓝时,有一句宣传语大意是说:下国际象棋,只是深蓝的业余爱好。

故事讲完了,如今AlphaGo在与李世石的比赛中2:0领先,不出意外的话,最终应该会下成5:0,以AlphaGo的计算能力,对围棋界会有很深刻的影响:很多人类认为是有问题的下法,很可能是并没有计算清楚;电脑超强的计算能力,可以下上千万盘之后,给出黑先的合理贴目数;让电脑逐渐让子给人类,看看人类顶尖选手离AlphaGo还有多远……

等一下,深蓝的业余爱好是下国际象棋,那么AlphaGo呢?AlphaGo是谷歌旗下专注于深度学习的DeepMind公司出品,其计算能力和深度学习的方法,应用范围远非围棋这一个领域,深度学习的方法刚刚起步,当这一技术逐渐成熟,被用于其他领域之时,势必对人类的生活产生相当深远的影响。

聊回到AlphaGo,Alpha是希腊字母的第一个字母,在软件行业中,Alpha版通常是尚未成熟,需要不断测试检验的版本,而Go是围棋的英文,又有前进的意思,AlphaGo这个名字,构成了一个很好的双关,一方面是谷歌谦虚的说,这是一个尚未完善的围棋程序,另一方面,则代表着深度学习方法,将会从Alpha开始,不断Go Go Go前进。

变革已经来临。[6].

[1]. 当然这种单机并非我们平时用的家用电脑那个级别,而是有上百个处理器的强大单机。后,此单机说被辟谣。

[2]. 围棋我不懂,不敢乱说,关于第一局的分析,可以看知乎讨论帖:如何评价第一局比赛 AlphaGo 战胜李世石? 

[3]. 围棋我不懂,不敢乱说,关于第二局的分析,可以看知乎讨论帖:如何评价第二局比赛 AlphaGo 又战胜李世石? 

[4]. 来源请求

[5]. 大意如此,更具体的原理可以参考:AlphaGo 是怎么下棋的AlphaGo的分析

[6]. 写完已经3月11号了

《聊几句AlphaGo》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注