2017年5月25日,三番棋中以0:1落后的柯洁执白与AlphaGo再次对局,155手中盘告负。虽然第三局还要下(柯洁执白的请求得到同意),但三番棋已经0:2告负。 但是本局令人激动,柯洁成功将棋局导向特别复杂混乱的局面(正如笔者上篇预期)。柯洁自己与不少职业解说都感觉有胜机了,棋迷们更是热血沸腾,希望看到战胜AlphaGo的奇迹出现。虽然没有透露更多数据细节,哈萨比斯也两次发信息,说柯洁表现非常好,前面表现完美,后面将AlphaGo逼到了极限。赛后发布会上,哈萨比斯说“前100手双方差距非常小”,从来没有其它棋手做到过这一点。这说明柯洁确实是人类最强棋手。 柯洁 VS AlphaGo第二局(中新网) 前两局中间的的研讨会上,Deepmind公布了AlphaGo的升级版本Master的一些研发思路,而且说在6月份会像上次的《自然》论文一样公布细节,帮助其它公司做出和Master一样强大的围棋AI。我根据这些信息,写了一些分析发给了应氏杯冠军唐韦星,希望对柯洁,以及唐韦星参加的对AlphaGo的五人相谈棋有帮助。唐韦星认为有道理,是要将局面导向复杂,但感觉很难做到。他将我们的对话公布在了微博上,柯洁也看到了,引发了热烈讨论。 由于之前Master的60局,它都能简单地控制局面,所以职业棋手们虽然知道不能这么简单地输,要制造复杂局面,但确实不知道怎么下才行。但是本局柯洁前半盘的完美表现说明,这是可以做到的!100手之后,黑白双方一度有九块棋不安定,还有一个天下大劫,即使与人类棋手的激烈对局相比,都算是很复杂的。 本文我先根据研讨会上Deepmind团队透露的信息,解释Master的技术秘密,为什么它居然能让李世石版本的AlphaGo三子。然后再介绍本局的精彩之处。 一.Master强大的秘密在于它是“复盘大师” 其实Deepmind用策略与价值两个网络构造围棋AI,并让它不断自我对弈学习进步的思想,与人类高手群体下棋时的思维以及棋艺进步的过程是相通的。抛开计算机术语,AlphaGo的研发思路并不难理解。 人类高手下围棋时,脑子里更多是把整个棋盘当作一幅图像在进行“图像处理”,而不是象国际象棋高手那样主要在逻辑推理。AlphaGo就引入在图像识别领域的神器“深度学习”,构造了“策略网络”来模仿人类高手看到棋局时的直觉选点。有了深度学习,这其实是很自然的一步。 人类高手还要进行局势评估,其实也是盯着棋局图像看。因此,同样做一个“价值网络”让AI可以直接对一个局面进行胜率评估,也容易理解。但这很有难度,因为训练策略网络时,一局棋机器可以学习上百手,但价值网络为了独立性,一局最好只学习一个局面。深度学习是需要上百万个样本的,对策略网络人类高手下的十来万局棋足够了。Deepmind创新地让众多服务器暴力自我对弈生成了3000万棋局,用于价值网络的训练。这个暴力一开始难以想到,但有这个条件了,这么想也是自然的。腾讯开发绝艺时,也这么办了,机器自我对弈了30亿局。 有了策略与价值网络,再加上以前就有的蒙特卡洛搜索,机器就能以很高的水平下棋了。然后机器疯狂地自我对弈,产生棋局,用这些棋局回头去改善策略与价值网络,一代代循环改善,这就是“强化学习”。 但是按《自然》论文,AlphaGo自我对弈的训练框架其实是比较简单的。就是自我对弈出了结果,然后用这局的结果当一个数据项,回头修改策略与价值网络的系数。由于系数多达几百M,这种反复自我对弈来回改进需要很多局才告一段落出一个新版,一次需要一个月。 这有点象是人类高手在网上互相下。下完出了结果,有一方输了,然后就散伙走人了。输的人想,我换点着法吧,又去下,有进步觉得自己换对了,没进步就否了再想别的招算了。这输的人进步也就比较慢。 实际上人类高手是很崇尚复盘的,一般正式对局结束了不会立刻走人,而是细细总结下双方哪里下得不好,败招胜招都是些啥。有时复盘甚至会搞两三个小时,旁观的高手也来。有时人类高手还会搞“研究会”或者“国家队”,组团研究新型,研究“秘密武器”。如果棋手能积极参与这些复盘,或者有渠道了解到集体复盘得出的有价值信息,再去网上演练与实战对局,进步速度会比较快。 有时低手付钱,或者和高手关系好,高手也会给低手复下盘。但由于低手基本是犯了些基本功之类的简单错误,这类复盘对高手意义不大。但是,高手们的对局是很有价值的。虽然为了后面的比赛说下完了要忘掉,那是说把结果忘掉,对局过程不能就忘掉,应该去好好研究总结这种双方拼脑子下出来的宝贵棋局。复盘是很关键的,对于人类高手群体一起进步作用是很大的。当初李昌镐保守避战拼官子的下法,让棋界很震惊。高手们集体研究,也慢慢知道了他的技术秘密,所有高手官子水平都有进步,不然就没法当高手了。 Master相比与李世石对战的AlphaGo,进步就在复盘这里。李世石版的AlphaGo后来自我对局提升,已经进入瓶颈了,下再多盘改进系数棋力也进步不大。Deepmind团队决定,推出新的架构升级成Master,将两个多层神经网络的层数从13增加到40,进行更有价值的“复盘学习”。 Master自我对弈学习的时候,就不是只用对局结果这个数据项了。它会回过头来,考察对局过程中每一步棋。两个程序自我对弈时,它每一步都是有由策略网络、价值网络、MCTS三者“火力全开”搜索后,再决定下哪一步,这一步往往和策略网络的第一直觉不一样。理论上来说,三者结合搜索出来的点,应该比一眼直觉出来的好。这时,就可以重新训练策略网络,让它第一直觉就落到那个点。一局棋,有上百步都可以这么做,策略网络美滋滋地吸收了一局棋的全部营养。 同样,价值网络会对一个局面直接计算出一个“直觉胜率”,但这个直觉未必正确。三结合的“火力全开”搜索会报告各选点最终的胜率,甚至可以输出给人作决策。5月26日古力与连笑各带一个AlphaGo对战,相信就是这样的,AlphaGo推荐多个选点,并报告每个点的胜率,人类高手参考作出最终决策。算法耗时很长算出的胜率,理论上应该比价值网络直接算出的胜率更准确,所以可以用这个胜率回头对价值网络系数进行修改。这同样可以一局进行上百次,而不是之前那样一局只能挑一个局面用于价值网络的训练。 这种对策略网络与价值网络直觉进行训练的办法其实很管用。柯洁从排名一百多飞速爬升到排名第一,主要就是刻苦进行了数千盘网络快棋对战。对战中柯洁积极把自己脑子里的“策略网络”与“价值网络”修改得越来越好,越来越能够第一直觉就下对、评估对。柯洁实战表现得思维敏捷、判断清楚,这可能就是柯洁强大的秘密。 而且这个框架就很自由了,自我对弈有了胜者败者,双方会有胜率曲线的变化。开始都是50左右,最后胜率是一方极高一方极低,这个变化是怎么产生的,有哪些是败招胜着是可以研究的。例如第一局柯洁执黑与AlphaGo下,后来说黑51手抱吃是败招,白54手是出乎意料的好手胜招,之后柯洁的胜率就不行了,这个局面值得高手们好好品味学习。但人类高手们自己下,其实也学不了多少这种高水平的好招,正式对局不能太密,一年80局就很多了。即使正式对局也不一定水平极高,可能是学习意义不大的中低级败招输掉的。象AlphaGo白54这种好招,不太容易碰到。 但是Master就不同了,它反正就整天不休息自己下,有AlphaGo战胜李世石那么高的水平对局质量很高。出了结果就复盘,一盘就能学到很多。每天复盘的,可能比人一辈子下的高水平棋局还多。所以Master学习速度极快,一周时间就能出一个新版。 人类高手虽然重视复盘,但其实也有麻烦。高手之前很容易意见不统一。围棋很复杂,局部定型以后,谁好谁坏很难说清楚。对局面理解有独到之处的孟泰龄就经常复盘时与人意见不一样,甚至吵起来。 2016年12月3日围甲主将战孟泰龄执白负周睿羊 虽然孟泰龄输了,但这个局面他认为是自己好,后面没下好输了。周睿羊胜了当然不同意,这也确实说不清楚。 对Master来说这不是问题,局面好不好不用废话,直接开一盘下不就知道了?训练完了就再下,有效果就证明是好的。一切都是自动编程进行的,两个程序对聊的不是废话,而是对局。但人就不太好办,意见不一样,一般也不会就开战实践。就算意气上头了开战,对局质量也难以保证。所以人的学习速度,即使有集体复盘这种机制,也不会进步太快。 所以,众多东方高手集体研究积极网上演练,还是比不上Deepmind的研发团队让机器快速自我对弈学习,原理上就比不了。Deepmind透漏说,Master进步不需要人类棋谱,只要自我对弈就可以了。这正是因为Master是“复盘大师”,可以充分学习自己的高水平对局反复循环前进。当然这并不是说Master脱离了人类棋谱,它一开始还是需要靠人类棋谱训练出高水平的程序版本来开始这种“复盘学习”。所以这次AlphaGo对柯洁下的还是象人,一开始是下在角上的。 靠这种强大的复盘学习,Master实力迅速增长,甚至能让李世石版AlaphGo三子了!这个差距是大得令人难以置信。但这其实是因为,Master针对性地复盘总结,清楚地知道AlphaGo的缺陷在哪,把自己的网络系数训练得抓这些缺陷特别准。AlphaGo版本就停在那了,缺陷一直会是缺陷。而人类高手不会这样,如果有那种模式化的缺陷,在对局中早就自我改进了,所以Master不可能让人类高的三子。 Master能让AlphaGo三子,是不是它仍然有缺陷,可能后面的Master版本也能让现在这个三子?这不好说,但是与柯洁对局的AlphaGo应该不是没有破绽的。人类棋手们与AI对局也很多局了,对绝艺、DeepZenGo等程序知道要造复杂的bug局面才好获胜。但与Master的60盘对局确实没有造出复杂局面。下面我们看柯洁是如何成功做到的。 二.柯洁与AlphaGo第二局的精彩之处 AlphaGo开局没有按礼仪下左上,这可能是对称性造成的编程小疏忽。前四手重复了第一局,AlphaGo也下三三,很有意思。柯洁第6和第8手模仿了AlphaGo,但星位和三三不一样,显然没法一直模仿。 右上角到24手都是人类下过的,AlphaGo第25手是新手。这一手让职业解说们很推崇,因为白如果吃角上四子,黑虎在L18外面形状很不错,比之前的变化好。 柯洁26反击。AlphaGo继续下出了27打的好手,白28不得不跑,提吃会被闷回去。有了这个交换,黑29就可以长了。这时解说都认为这个局面AlphaGo得分了,又教了人类一招。 但柯洁发挥很好,想出了脱先的应对,甚至30这一手都与AlphaGo给出的双方预想图一致。右上角这个图,正是AlphaGo第9手挂的时候设想的变化图,也就是AlphaGo自我对弈会这么走。柯洁能与AlphaGo经过20多手的进程,重现了这个对于人类来说全新的变化图,确实是棋感与逻辑的奇迹。也就是说,下到这时,柯洁的表现和AlphaGo完全一样。 柯洁30脱先后,32手分隔黑棋,36手再次分隔。到47手,已经有局面复杂化的雏形了,包括右上未结束的定型在内,全局出现了多处头绪,很多地方要处理。因为黑棋要贴7.5目大贴目,应该说白棋把局面打散让黑棋围不到大块空是好的,引入复杂局面也有基础了。 由于局面紧绷,AlphaGo也没有办法拿出“控制流绝技”,只能和柯洁开战,双方在左下角形成了一个劫争。这个劫白不需要立刻打,因为黑提一手消不干净,而白动手就是天下大劫。所以白可以在外面先造劫材,把局面搞得更加混乱复杂。这时,柯洁已经制造了Master前面60局都没有碰到过的局面。哈萨比斯也在此时发推说,AlphaGo的胜率评估分数说明,柯洁的表现完美。 柯洁先吃住右上,再在左下跑出一块棋,用这块棋与左边的大劫作头绪,第100手终于开劫。此时局面非常复杂,解说的棋手与棋迷都很兴奋。哈萨比斯在发布会上说,前100手双方差距非常小,此时柯洁应该是有不小机会的。Deepmind介绍说,Master的60多局棋里,从来没有一个棋手能在100手的时候还能势均力敌。柯洁这局的表现已经是极大的突破,也让职业棋手们很服气,确实是世界第一人的风采。 柯洁右边102手找劫后提劫,AlphaGo只得105粘上。柯洁再108连根跑出这块棋,再114将黑棋切断。到这个局面,在职业高手与棋迷看来,棋局的复杂与混乱到了前所未有的程度。双方共有九块棋没有安定,右下角还有一个天下大劫要开。即使与人类棋手的激烈对局相比,这个局面也是很复杂的。 但是这时也可能柯洁已经犯了错误了,AlphaGo的119手并是难以察觉的好手。它威胁了白中下的一块棋,接下来又要吃白右下的大块。这里变化太复杂,职业高手也一时给不出结论,也可能白114切断过于激烈。 柯洁走到这里时122手可能犯了错。有评论认为122手应该在左下开劫,以122这里的劫材展开激烈的对杀,后面局势非常复杂,进程会更白热化。 行棋至此,柯洁128手终于开了天下大劫。白如果劫胜,左中的黑棋也完了,价值无比巨大。但此时白棋右下一块已经被吃。这时局面应该是明朗化了,就看劫材。一些职业解说与观众直呼精彩,期待柯洁在这个局面下一举打爆AlphaGo创造奇迹。 在整个激烈的对局过程中,柯洁真实地意识到自己的胜机来了,心跳非常剧烈,甚至需要用手抚胸平复心情。但是128开劫应该是误算,白实际是差一枚劫材的。 白130找劫后,黑133找劫!有评论说这手可能柯洁没想到,多造了一个劫材,但是不是如此要看复盘。柯洁发现劫材不利,136找个小劫,AlphaGo果断137消劫,其实已经宣告了本局的结果。白右下全死,左边却没有得到多少利益,形势已经大差。后面继续到155手意义不大了。 三.全局综述与展望 本局柯洁与AlphaGo的表现精彩纷呈,Deepmind团队也对柯洁表示了敬意。柯洁能够把棋局导入这么复杂有胜机的局面,让棋迷们看棋时非常振奋,表现已经很好了,比第一局还要好,基本是人类最高水平的发挥了。由于人类的弱点,在复杂局面中出现误算,瞬间输掉棋局,也在所难免。但这一局说明,人类棋手面对如此强大的AlphaGo,真可能是有机会的。 柯洁前半盘逆天的发挥,也逼出了AlphaGo从未展示过的精彩表现。到底有多精彩,由于局面太过复杂,需要等高手们甚至Deepmind公布的细节信息。对本局的解读应该不是一天能做完的。 正因为柯洁前半盘发挥的这么好,他后面才非常遗憾,觉得自己的失误太大了。如果他发挥得再好一些,棋局后面不知会出现怎么热血的场面。但他与AlphaGo可以相比(至少在前100手)的高超围棋技艺在本局已经得到充分展示,发挥是人类生理心理问题,与机器没法相比。 后面还有唐韦星等五个高手与AlphaGo的相谈棋,以及柯洁的第三局。职业高手们认为,很难制造复杂局面。这一局应该能说明,和AlphaGo杀个昏天黑地是有可能的。围棋足够复杂,并不是只能和AlphaGo在各种定型中比判断,也可能将局面导向计算主导。当然也许AlphaGo强到到复杂局面还是比人强,但这至少是比别的下法更有机会的。 也许我们应该放下胜负,并不一定要追求战胜AlphaGo。如果能象柯洁本局前100手一样,发挥出人类对围棋理解的最高水平,无论胜负,都是与水平超高发挥稳定的AlphaGo共同演绎出精彩的棋局。本局说明,棋局精彩到一定程度,真的是可以超越胜负的。
|