扫码关注我们

招生咨询/免费预约体验

4000511115

陈经:中国AI进步神速 围棋“机机大战”不远了?

文章来源:观察者网专栏 作者 陈经

  一、消失的Master,挣扎的DeepZenGo

  最近围棋圈里又出现一件值得注意的新鲜事,3月4日晚,绝艺对“世界冠军及全国冠军”们取得了18胜2负的战绩,成为网络对弈世界里第一个10段。回顾 2016年末至2017年初,围棋AI“群狗闹新年”,Master对人类顶尖高手华丽60连胜。现出真身后,Master飘然而去。大师已不在江湖,江湖上还流传着大师的棋谱。

  职业高手们纷纷推出了对Master棋局的解析,或感性、或深入。业余棋友们则利用ZEN6、LeeLa等市面上流传的围棋AI,对这60局棋的走势进行分析。人类从未在这60局中取得领先,这个结论得到了一致公认。


	Master执黑对孟泰龄,107手怪异地没有F7位提吃白四子
Master执黑对孟泰龄,107手怪异地没有F7位提吃白四子
 

  Master执黑对孟泰龄,白吃掉黑7子后的局面

  之前认为孟泰龄在Master打吃不应后提吃Master七子,局势可能领先。如上图所示,黑99冲白100挡之后,白的102、104、106三子都还 在棋盘上,黑下的101、103、105却没有出现在棋盘上,因为被108这手全提掉了。与黑第101手直接下107相比,白相当于108一手就同时下了 102、104、106、108四个子到棋盘上,Master的亏损一望可知。但是Master的人肉机械臂Aja Huang发贴说这是他摆错了一招棋,电脑107这手是想在F7提吃白四子的,这样仍然是黑棋优势。虽然黑方摆错棋,但孟泰龄时间紧张后面错得更厉害,还 是输了。

  分析越深,Master的实力越是让人觉得深不可测。但Master在2017年1月4日之后,是真的不出来下棋了,正式消息都极少。之后数次爆出柯洁和 AlphaGo第二次人机大战的消息,甚至有和人类高手组团对战的说法,都没有得到官方确认。无论如何,以谷歌的行事风格,应该不会让AlphaGo和人 类高手战个痛快。

  Master出来下了60局棋看似不少,但是对局者、对局用时都是挑选的。职业棋手们虽然对Master的水平全都服气了,但显然很不过瘾。和 Master下得最多的朴廷桓也只下了5局,中国棋手里孟泰龄下了4局最多。网络对弈时代,勤奋的棋手一年要下上千盘,60局远远不够。

  日本的Zen是AI勤奋对弈的典范,长年在业余棋迷为主的KGS上公开测试,受到棋迷的拥护。在学习AlphaGo的论文后升级为DeepZenGo之 后,Zen在KGS上打到了第一名,并在与赵治勋的三番棋中胜了一局,首次有了正式比赛战胜职业棋手的记录。2016年12月29日几乎和Master同 时,DeepZenGo来到弈城接受业余高手和职业棋手们的检验。到2017年2月15日退出,DeepZenGo下了上千盘棋,多次升级版本不断调试。

  这应该是为DeepZenGo在两个日本举办的正式大赛作准备。一个是3月21-23日的首届世界围棋锦标赛,冠军奖金额高达3000万日元(约180万人民币)。DeepZenGo作为AI代表,与三个分别来自中日韩的人类代表各下一局。

  另一个是3月18-19日的传统赛事第10届UEC杯计算机围棋赛,由于一年来多个围棋AI水平突飞猛进,今年的赛事得到了空前的关注。之前UEC杯的冠 亚军得主,会与日本职业棋手进行让五子、四子、三子的比赛,今年将分先与一力辽对弈。因为AI的水平已经追上人类,这个比赛也是最后一期,之后停办。 Zen是这个比赛的多次冠军,当然希望再次取得好成绩。

  但是从弈城上的表现来看,DeepZenGo这两个比赛都会碰到不小的麻烦。不出意外,它对中日韩的芈昱廷、朴廷桓、井山裕太三局棋都会输掉。而UEC杯上DeepZenGo也只能争亚军。

  从上千局对局结果来看,DeepZenGo对业余棋手几乎可以保证胜利,对10个最高水平的业余高手(业余四大天王其实有职业水平)的10番棋只输了2 局。对一般职业棋手胜率还可以,但也经常输。对一线高手是输面大,虽然有时也能胜。顶尖高手一般自重身份,不会与DeepZenGo交手,只有陈耀烨、连 笑等人下过几局。这并非顶尖高手们无礼,而是DeepZenGo的水平无法得到足够的认可。想和高手下,总得先稳定地战胜不那么高的选手,或者高手愿意给 机会时能抓住。

  有一段时间,DeepZenGo在弈城上的挣扎让人感觉有些悲壮,开发明显到了瓶颈,版本升了战绩却反而降了,不得不回退。总是没办法突破,陷在职业棋手 们布下的阶梯中举步维艰。从Zen的开发历程来看,过去是人工写搜索代码、植入围棋开局与棋形知识,这个开发风格不易转型到靠多个服务器暴力机器学习强化 学习的路线上来。将策略网强、价值网络等先进武器加进来后,Zen的实力提升很快。但之后再要提升,之前的代码反而变成拖累。

  围棋的江湖,跟红顶白,弱肉强食,输赢一清二楚。实力不行,高手就没有兴趣,这有点残酷,其实是公平的。高手陪低手下棋,给点面子可以下一两盘,下很多盘 等于是帮低手涨棋,高手收获不多,和低手下多了棋力甚至可能降低,不愿意可以理解。虽然日本棋手对DeepZenGo的评价高些,认为它对顶尖高手有胜 机,但这更象是一种鼓劲。

  面对围棋AI的震撼冲击,职业高手们有过恐惧,其实更多的是兴奋,仿佛来到了棋艺的新天地,不少职业棋手努力和AI对局提升技艺的动力十足。但是 Master不下棋了,勤奋的DeepZenGo实力又还不行。幸好,还有一个围棋AI能够对人类高手取得压倒性战绩,而且愿意每天出来下棋,那就是腾讯 开发的绝艺。

  二、绝艺与人类高手的混战历程

  和DeepZenGo没有多少顶尖高手愿意对局不同,对绝艺,这一切都不是问题。

  “绝艺如君天下少,闲人似我世间无”,带着这首应景好诗在野狐围棋上一出山,绝艺就受了极大的关注。它迅速完成了爬阶梯的过程,没多久就直接面对柯洁、朴廷桓等人类最顶尖高手,并且能战而胜之。2016年11月1日,绝艺下了第一盘棋。到11月19日,绝艺战胜了柯洁一次,11月28日,绝艺连胜朴廷桓五盘。之后,绝艺(以及不同的版本刑天、骊龙)对阵的棋手几乎都是等级分靠前的世界冠军或者全国冠军,一直互有胜负,杀得难解难分。从这个意义上来说,绝艺几乎一出来,就完成了对DeepZenGo的超越。

  Master是教人类如何下棋,顶尖高手们排着队等一个上阵被抬走的机会。而对于绝艺,高手们同样乐于出手,积极进行测试,共同提高。绝艺的测试者群体,和Master几乎是一样的。在众多学习AlphaGo的围棋AI开发团队中,目前只有绝艺达到了这个成就。

  和Master一出来就天下无敌不同,绝艺有着明显的棋力上升轨迹,经过数次下线开发升级。Master忽然出来对高手们排队密集敲闷棍,能提升神秘感, 但未免显得重保密、轻交流,是围棋局外人的做法。AlphaGo的开发思想是,棋力提升靠人类棋谱以及海量自我对局就可以了,不需要真和人下。和人类高手 对战,只是确认机器的棋力,不是用来提升机器实力,也不是帮高手涨棋。

  而绝艺却明显走了另外一个技术路线,积极和人类高手对战。无论是胜多还是败多,尽量从中发现问题,快速解决后又出来下棋,循环开发。这个路线显然更为亲民,也给高手们更多观察的机会,自身弱点暴露得更充分,神秘感不多。如果以后绝艺有机会与AlphaGo进行“机机大战”,它将以“围棋界自己人”的身份,与“局外人”AlphaGo对战,而且感觉这一天的到来并不遥远。我肯定希望绝艺获胜,相信这也是多数棋界人士的愿望。

  此前从未有这样高水平的AI与高手们持续作战数月,绝艺清晰的战绩轨迹,有助于我们理解围棋AI的特性,甚至人类高手自己的特性,也可以让我们对Master的无敌战绩加深理解。

  绝艺最初打出名头,是靠20秒的快棋。这是高手们在弈城、野狐等网站上练习时的标准时间配置,三次20秒读秒。高手们认为20秒时间足够思考了,绝大多数 棋都在20秒内下出,关键时候才会用掉一次读秒。有的高手甚至认为20秒长了,下15秒甚至10秒的快棋。棋手们普遍认为自己快棋水平不比慢棋差多少,就 差一先,有的甚至感觉实力差不多。孟泰龄在下棋的同时还能清楚地录制解说,大多数是20秒的对局,中间还跑去收快递盒饭。高手们20秒对战搞得有模有样, 有时还战得很精彩。

  但是绝艺的20秒,早在2016年12月高手们就挡不住了,基本可以肯定不是绝艺的对手,硬来就是朴廷桓式的五连败。绝艺证明了高手们的20秒是充满了错误的低质量对局。中国棋院院长王汝南说:“腾讯搞的人工智能围棋,20秒一步,职业高手们不好对付”,就是这个意思。

  20秒还是更长时间,对绝艺以及Master的棋力毫无影响,因为它们都会在10秒内出手没有区别。但是对人类来说,20秒是绝对不够用的,真正能用于思 考的时间很少。对方落子以后,人先要理解对方下的棋。预料之中的可能花个2秒就够了,出乎预料的,就要花更长时间去建立棋感。20秒的棋,到10秒就开始 有读秒声,其实并不能怎么专注思考,一不小心就要超时,需要早点想好招确认。真正有效思考推理的时间可能就是10秒左右,推不了多深,多半是凭感觉拍。之 所以下得有模有样,是因为下套路棋很熟。套路完了,后面会犯很多错。

  但双方水平差不多用时都不够,出错未必能抓住,抓住了下一个局面又送回去,概率性地互相翻盘,围观的人也没时间发现这些错误。即使是网棋水平最高的柯洁、 朴廷桓、范廷钰等人,也不过是七成胜率,经常犯错,水平高主要体现在胜率高一些。有时说不清是棋更熟,还是真的对围棋理解更深。20秒的对局,主要培养的 是棋感,以及快速计算的能力,但计算的深度广度就谈不上了,本质上是和业余棋手差不多的“感觉行棋”。业余棋手是没有计算的能力,高手们下20秒就是主动 搞极限运动了。

  高手们面对绝艺,这个弱点暴露无疑。绝艺不用Master那么高水平,但是发挥也足够稳定,不会出简单的错招。高手们顿时显得压力极大,一出明显的错招一 局可能就断送了,而绝艺会毫不留情地抓住,“感觉行棋”明显不行。绝艺虽然下得更快,但是计算机出身速度是本行,每招的计算都可以保证基本的水准。

  2016年12月开始,绝艺主要和高手们下30秒的快棋。多出来的10秒时间很关键,相当于实质思考时间翻倍还多,时间多了心态也会好,能够进行一些稳定 计算了。高手们30秒的实力相比20秒明显提高,在“感觉行棋”上也加入了相当多的计算验证,能够设计一些手段。这一段时间,柯洁对绝艺战绩明显占优,曾 连续获胜,显得对付AI很有办法,高手们也经常能杀掉绝艺的大龙或者吃掉局部一块棋获胜。绝艺的弱点也暴露出来,局部死活搞不清,大龙的死活掉以轻心。柯 洁在野狐看棋时透露了对付绝艺的心得:做大模样,等它进来犯错。

  春节期间,绝艺也过年去了。假期结束后,绝艺似乎修复bug得力,棋力明显上升,对高手们30秒战绩提升明显。从2 月14日开始到3月5日,柯洁对绝艺惨遭13连败,对局时心态明显变异,经常很快就输掉了。这也可能是柯洁在试一些特殊招法,但绝艺对高手们的30秒战 绩显然是压倒性的。绝艺的进步,让高手们的30秒又显得时间不够了。

  看到绝艺的出色战绩,可能是出于宣传目的,野狐适时地推出了升10段的规则。

  成为10段后,绝艺又与高手们下了一阵子30秒,仍然是9成胜率。因此3月5日之后,绝艺与高手们都是下60秒的对局。每步棋60秒,这给高手们相当大的 时间自由,能够进行的思考要深入多了。在高手们的正式对局中,这是常见的情形。有些喜欢长考的高手早早进入1分钟读秒,但面对时间充裕的对手一直能顶住, 对局质量很高。

  60秒的棋,人类高手算是拿出真本事和AI对局了。Master的60连胜基本是20、30秒的,只有对聂卫平给了60秒。面对Master的不拘一格的 新手,高手们根本没有时间反应,往往一个局部就吃大亏,整局再无机会。看到新手,心里本来就有压力,又只有30秒,还不知道对手要干啥。应对的选择会有几 个,根本没时间细算,连感觉一下时间都不够,多半是胡乱蒙一招了,很容易吃亏。

  Master对人类高手的压迫主要就是两个,一是时间攻势,二是新手攻势。事实证明,几乎没有高手能顶住。我认为人类高手输得其实有些冤,因为平时正式对 局有1-3个小时思考时间,Master式的新手肯定出现在开局,人类高手会有充足时间去仔细琢磨,不可能象网上对局这样20、30秒就得下。人类高手正 式对局也不时下出新手,但对方一看是新手,就会仔细琢磨,一般能找出妥善应对,很少被新手击溃。如果也是20、30秒就被逼下子,新手多半会很成功。

  可以承认Master的思维方式和人类高手不一样,把围棋布局与局面评估艺术带到了人类高手不曾想到的新境界。在职业棋手开局严重套路化千篇一律之时,这 一股新风无比珍贵。但是不能说Master的新手,或者截然不同的布局风格,人类就无法应对。如果给人类高手多一些时间应对新手,同时主观上提升对布局的 思考,不再机械地摆“常形”,那么人的表现会好得多。不说战胜Master,至少能逼出Master更多本事。现在Master就靠“新思维”,在布局阶 段就打败了人类高手,这是很遗憾的。因为这是人类的思考时间不够,太可惜了。如果能看到Master在复杂死活、复杂劫争、大对杀、耍大龙等局面的表现, 无疑会更为精彩,这也是围棋艺术必不可少的精华。

  如果再大胆一点,或者说为了人类棋手鼓劲,可以提出一个猜想:

  AlphaGo比人类主要强在思考速度快、布局理念创新、局面评估准确、水平稳定。但是一些复杂死活、复杂劫争、大对杀局面,AI搜索算法有本质困难,人 类却能发挥逻辑推理的优势,比AI表现更好。可能的情况是,AlphaGo团队尚未给出解决复杂死活、复杂劫争、大对杀问题的可信算法,但把局面评估上的 优势做到远超人类的程度(还通过把对局时间限制在20、30秒极度放大了这些优势),成功掩盖了这些弱点。

  而绝艺和高手们60秒对局的表现,似乎能对这个猜想提供一些证据。60秒对局,绝艺的胜率从30秒时的90%下降到60-70%,经常连输。相当于人类高手的胜率从10%升到了30%-40%,胜局数增加两三倍,表现大为好转。

  三、绝艺与围棋AI的典型弱点

  经常看绝艺下棋的棋友会知道,它主要是死活与对杀会出大问题。人类明显能判断对的问题,AI却搞不清楚,忽然就显得很笨。

  这些弱点从算法上可以解释。现在的高水平围棋AI都是靠价值网络与海量模拟至终局判断局势,优点是着眼于全局,评估比人类精确。但它的搜索框架中没有“搞清楚局部死活”、“算清大龙死活”这种概念,也很难改良放进这些概念。

  局部死活与对杀问题是,搜索树展开时,有可能漏掉了局部死活与对杀的关键点,发生漏算,以为是活的其实是死的。而人类高手训练有素,局部死活优劣会有感觉,能聚焦于局部集中计算去弄清楚。


	2017年2月5日,绝艺执白对北海的早晨(范蕴若)
2017年2月5日,绝艺执白对北海的早晨(范蕴若)

  如上图,范蕴若黑91挡住,绝艺认为白棋右边一块死活没问题,脱先占了92位大棋。对黑97又应在98,导致黑99出手,做成了打劫杀。局部变化复杂,但是绝艺肯定应错了。


	2017年3月10日,绝艺执黑对clover77(尹峻相)
2017年3月10日,绝艺执黑对clover77(尹峻相)

  如上图,绝艺黑45长出,白46飞。黑49封锁,局部对杀黑死。虽然黑勉强算是弃子封锁,但是主动送死这么大一块,还是有点过于慷慨了,而且51封锁还是后手,黑棋形势大差。这更象是绝艺局部误算了。


	2017年3月10日,绝艺执白对天选(柁嘉熹)
2017年3月10日,绝艺执白对天选(柁嘉熹)

  白右边大块与黑对杀,这个局面人类高手一眼就知道白棋对杀不利。但可能是手数比较多,白可以在外围搞事,内部收气次序也不简单,绝艺算不清楚,还是走进了这个必输的大对杀。

  绝艺碰到的常见大龙死活的问题有两种。一是大龙很长,“棋长一尺无眼自活”,虽然没有明确两眼,但杀棋要经过很多步,做活头绪很多,杀棋容易失败。二是开 始只是局部的一小块棋,杀死它需要放出来跑成大龙,要经过非常多手。这两种棋绝艺都倾向于认为是活棋,失去警惕,因为绝艺的策略网络是学人类棋谱的,而棋 谱中这种棋确实都是活的,谱中也不急于做活。

  出现这种局面,人类高手会暗中布子增加杀棋可能性,绝艺却没有发现危险最后被杀。这种杀棋步数远超AI搜索展开树的深度,展开完了之后靠快速走子终局也发 现不了危险。模拟至终局是直线往下走,会忽略对手的杀着,对手围杀时稍一松软,大龙就做活了。人类高手会主动关注大龙的死活,远处自己对于杀棋的帮助的势 力会有意去规划,杀棋条件成不成熟有阴险的盘算。一旦人类高手判断杀龙时机成熟,而AI却没有察觉,大龙被杀就会发生。绝艺的败局中不少是大龙被杀,远多 于局部死活问题。


	2017年3月8日,绝艺执黑对炼心(时越)
2017年3月8日,绝艺执黑对炼心(时越)

  再如上图,绝艺执黑左边大块被“场均一条龙”时越102点眼硬杀。最后大龙被杀的惨状如下图。

  过过50多手的追杀,绝艺才确定大龙死掉的结局,上面中间黑白是双活。但是时越在前面点眼的时候,就已经对杀棋有把握了。至少不会明显漏算,发动追杀是时机比较成熟时才会做。而绝艺却明显对这类局势判断不清楚。


	2017年3月10日,绝艺执白对北海的早晨(范蕴若)
2017年3月10日,绝艺执白对北海的早晨(范蕴若)

  如图,右边白棋其实已经被杀了。但是由于黑外围看似有很多弱点,白棋R11长再O9长,能够到处冲击,虽然最后还是被杀,但手数特别多,所以绝艺还是这么下了。


	2017年3月8日,绝艺执白对maker(朴廷桓)
2017年3月8日,绝艺执白对maker(朴廷桓)

  绝艺90长出,被黑凌空一断,下面到中间的一条大龙已经死了。但是要吃掉它也要经过很多手,还有打劫,中间黑的大龙也要跑,变化还是很多的。这种局面人类高手能判断出白棋很危险,绝艺却无知觉地陷入了绝境了。

  绝艺60秒对人类高手的棋,很容易就找到不少出bug的例子。当人思考时间相对充分的时候,这类局面发生的概率大增。这说明绝艺还是有很多bug。之前因 为绝艺在20-30秒对人类高手的压倒性战绩,人们认为它已经有AlphaGo战胜李世石的V18版本的水平。现在看来人类高手思考时间一长,绝艺的 Bug概率明显上升。绝艺还不一定有V18的水平,因为V18下的是慢棋。另一方面,对Master的60局棋,人类高手的表现要重新评估,20-30秒 人实力降了非常多,Master的压倒性胜利可能更多是时间因素。

申请免费试听名额 X
提交申请