人类下棋需要理由——AI下棋只靠机制产生
作者:王铭琬
认识AI(人工智慧)最前线,王铭琬为你做最佳向导!2016年3月韩国棋王李世乭与AlphaGo的一战,人类败北後,世界开始认真面对AI(人工智慧)时代的来临!AI可能提高生活品质,也将可能挤压人类的生存空间,认识AI最前线的围棋AI,是思考人类如何面对AI的第一站!
一位顶尖职业棋士全力挥棒的报告书:王铭琬是世界唯一参与围棋AI开发的一流棋士,详尽叙述围棋AI的过去丶现在,并以职业棋士观点提示人类如何因应与AI共存的未来,因为此刻「未来还掌握在人类自己的手里!」
死活,围棋最基本认识之一
下围棋最基本的认识或技术,可以说就是「死活」吧!众所周知,围棋吃子的规则是把对手包围起来後,可以吃掉,从棋盘上提取(如图一丶图二) 。
这可以说是围棋唯一的规则 ,决定胜负的方法,跟象棋或日本将棋只要擒王就胜利不同。围棋是以「最後在棋盘上剩下的子较多的一方胜利」,也就是以棋盘盘面全体的总数来分胜负。
围棋虽如前所说明的是「围地更多的一方赢」,但是为了「比对手留下更多子」在棋盘上,则必须「比对方围得更大」才行,都是同样的一回事。
围棋的「围」有围对方的棋子跟围地两个意思;围棋的棋子是不会动的,自己的棋子在棋盘上越多越好,棋子在棋盘上,形成不被吃掉的形状,叫做「活」。
图三:下黑1,就做了「活」的形状。
图四:因为A跟B两个地方都被黑子所包围,根据「围住就能提取」的规则,白A丶B两个点都不能下,这样的点叫作黑棋的「眼」;黑下1确保两眼的话,白棋不可能吃到黑棋,黑棋数子到最後就可以留在盘上。
图五:要是反被下白1,黑棋最後就会遭被提取的命运。
图六:此後白1之後,黑下2围住白二子时,虽黑也同时被白包围,能提取对方的棋子时,就可以下,也就是下黑2的话,可以提掉白2子。
图七:但接下来,白再将1扑进去,黑也只好2提。
图八:到最後下白1,就能把黑子全部提掉。
图九:结果黑子全部被提掉了。图五下了白1的状况,在围棋称为「死」;必须先知道什麽是「活」,否则最後会被提掉,也无法获胜。所以「两眼活」不是规则,而是不被提取的技术。
棋子的死活,是最基本而重要的认识,图四是「活」之中,最单纯的形状。
围棋的变化非常多,关於死活也可以有无限的变化与外观;就像日本将棋有所谓「诘将棋」一样,围棋也有以「死活」为问题形式的「诘棋」,会下棋的人都知道,做诘棋题是提高棋力不可或缺的训练。
在日本将棋,电脑最擅长将死对手,对局时绝对没有看走眼的。
因此围棋AI常被认为很擅长死活,但事实上如前所介绍的,围棋AI对死活并不拿手;人脑的话,很简单地能在棋盘中认识「局部」,然後判断是「活」还是「死」,但是就算是厉害的Master,也还无法做到。
围棋AI对自己的孤子也会做活,但它不像人一般,心想「这样下就活了」,而是因为「下那里就不会输」的计算结果,并非和人一样具备「活」的概念,若硬要教它「活」,它反而没办法下得的那麽好;如果在序盘出现诘棋般的棋形的话,人类会比Master更能正确地把握状况,但这跟比赛的输赢是两回事。
电脑并非不会做诘棋,从几年前起,就有解答诘棋的电脑软体商品,不管多难的诘棋都能瞬间得出正解(只有一个问题是,围棋有所谓「劫」的现象,「劫」又有各式各样的种类,电脑还无法判别「劫」的种类,但将来大概是能解决的)。但这是专门解答诘棋的软体,诘棋是「局部问题」,也只能用局部去解决;对局用的AI是没有「局部」概念的。
从刚才一路在介绍棋子的死活,都是单方被包围的情况,实战不只单方遭到包围;也会出现双方都有危险,哪方都可能被提掉的局面,叫做「攻杀」。围棋的实战,比起单方的「死活」,「攻杀」的场面出现的次数更多,「攻杀」在实战其实比「死活」更为重要。
如第三章Crazy Stone对多贺战时所说明的,「攻杀」也是局部问题,AI至今还没完全解决不擅长攻杀的毛病,人想要胜过Mastr的话,把它诱导到难解而没有转馀地的攻杀局面,大概就有机会吧!
大小,围棋最基本认识之二
围棋的基本认识还有一个,就是「大小」。
围棋最终的目的是取得较多的「地」(阵地),自己下的一手棋能确保多少地,或是能破坏对手多少地,这是能用数字明白表示出来的;计算方法是「自己在一处着手後,与该处被对方下到後的差距」。
图十:下到黑1的话,可以确保A的1个空点(1目)。
图十一:如果被反过来下了白1的话,则谁也没能确保A的空点,A成为没有意义的点「单官」,日文里说「没意义丶不行」的用语「駄目」,就是「单官」一词的日语。
图十与图十一的差是A的一点之差,因此图十的黑1与图十一的白1叫做「一目棋」,围棋的所谓大小是这样得来的;但在实战,还要兼顾全局的「死活」的状况,许多局面无法单纯换算成数字,但若能很明显地呈现「大小」的数字的话,对於下棋的人而言,就求之不得。例如:
如图十二般的局面,A是後手三四目大的棋,已告确定,但其他着手的价值却未能确定;从经验上来看,这个局面的三四目,被认为是比其他的手还要「大」。
几乎所有下棋的人都会下A。
但在实战时,很少像这样在局部就完结的例子,大小无法很明白地用数字表现出来的情形比较多;但职业棋士事实上在脑里有个约略评估的数字,然後继续下下去的;围棋除了死活成为问题的局面以外,大半对弈的局面是以「大小」占思考的中心;以明白的数字来呈现的大小,跟死活一样,是局部完结的问题。
人类下棋需要理由——AI下棋只靠机制产生
人类常以「这手是○目」丶「这手是○○目」为理由来着手,但是AI从来不作这样的计算,和死活同样,AI的道理只有一个——因为这样下比较容易赢。
拿死活来比喻现实生活的话,是「生命安全」,而大小则可以说是「劳动代价」。没有救生索,又不知时薪多少的话,谁也不会去做打扫大厦窗户的工作。就像我们平时最在乎安全跟薪资一般,下棋的人是以死活与大小问题为中心在下棋。
死活与大小可以说是围棋最基本的单字与文法,而电脑围棋却无法认知,我一直认为这是围棋AI最大的弱点,当然也是最需改善的罩门。
AlphaGo在跟李世乭之战前,公开的棋谱的综合能力,的确非常厉害,但若还在用蒙地卡罗法的话,局部认识的机能的弱点是无法解消的,一百万美元的奖金不用说是李世乭的吧!无法辨认死活及大小,怎麽可能赢李世乭呢?我的棋士生涯,让我只能作这样的判断。
形势判断的重要性远大於「算棋」
就如前面所介绍的一样,结果深层学习带着AlphaGo飞越人类的头顶。
围棋比想像的还要宽广,AlphaGo拥有游刃有馀的计算能力,棋盘广大到让它即使怀着缺陷,却依然能悠悠踏步,有转圜馀地,回避自己的缺陷。
Master看来对算棋更有信心,棋风比AlphaGo更为强悍,AlphaGo尽量不去踩自己的弱点而造成陷阱;Master对付自己的弱点,像是随便踢开脚边的小石头,一点都不会令人担心。
原来下棋必须要有「死活」与「大小」的概念,这个前提是错误的;「死活」与「大小」若是人类下棋的语言,如果能「以心传心」的话,就不需要多说话;我终於想通了,围棋AI并非无法认识「死活」与「大小」,而是没有必要用局部的概念去认识而已!
图十三:Master持白棋,对於黑1,白棋放着右上七子不管,2丶4丶6埋着头连下上边,接着8丶10低位渡过,对黑棋也不是具有威胁性的手段,黑11罩,白七子被吃了,但从结果而言,形势其实白棋并不坏,这虽不能说是到了惊异的判断程度,但要是我,因为无法正确地算出大小,也就无法这麽简单地舍弃这七子。
经过长期深层学习训练後,累积三千万局数据收集对局(现在说不定又多好几倍)与无数自我对战学习的经验,作每秒一百万局的高度模拟;当电脑拥有这样的能力时,把棋盘当作一个整体来处理,其实正是非常符合围棋的本质的方法。
人类因为无法这样处理,只能就解析「局部」得到的资讯,再根据这些资讯来作综合判断,除此之外别无其他方法。今後围棋AI下的棋,对人类而言,虽然非常具有参考价值,但人类遭遇未知局面时,必须对於各个「局部」赋予意义後,再作全体的判断,人类的这种思考倾向是无从改变的。
以人类可能达到的围棋水平而言,AI的表现告诉我们,比起堆积意义的「算棋」,无从捉摸的「形势判断」是重要太多了,而从棋盘全体直接判断形势,正好成了AI的最强项,其正确性与速度,把人类远远抛在後面。
就像有人相信世界是以有理数(算棋)来构筑的,但後来发现丶有理数不过是浮在无理数(形势判断)之海上的藻屑而已,而人类终究无法测量海有多深,只能对着眼前的藻屑望洋兴叹。
7,018 total views, 2 views today