在与 AlphaGo(包括 Master) 的对局中是否出现了一些人类历史上从未想到过的着法、技巧?

进入圆桌 » 人机对弈终章,参与更多相关讨论。
关注者
1318
被浏览
461105

-

有的,而且还很多,甚至如果我们不断的投入资源让程序继续进化,还会越来越多。但是这个问题的问法是有一定疑问的,现在很多舆论,其实并不清楚AlphaGo带给我们的新东西,到底是哪些。

很多舆论跟风宣称“人类围棋拘泥于定式”,称AlphaGo颠覆了人类理论,人类理论都是错的,这是传讹。“定式”并不是“固定形式”的意思,而是对于合理性变化的研究,人类的研究方式类似于蛮力搜索,而且得到的成果一直在实战的检验中不断的更新换代。

-

俗话说“千古无同局”,围棋的合法局面数在10^170量级,而一整盘棋,是由几百个连续的合法局面组成的,我们姑且称其为一个合法路径,合法路径的总数在10^300量级。也就是说在基础规则的限定下,两两不同的对局可以有10^300盘。

人类自古以来的所有对局数,据我估计在10^11~10^12量级,而职业水平的对局数,我估计在10^6~10^7量级。人类对于前半盘定式变化的研究量,现有成集可查的也在10^6量级,算上淘汰掉的也应该不超过10^7量级。

AlphaGo大概在15年下半年达到了职业水平,此后它的自对弈,显然不止10^7量级。所以在AlphaGo的自对弈中,出现大量人类没有用过、或者虽然用过却没有仔细研究过的变化是很正常的。

-

围棋在基础规则确定之后,其中的规律就已经确定。双方都在最优的下法下,沿着一条“最优路径”,一定会达到一个均衡。现在根据统计得到的数据,我们大多猜测这个均衡数在黑棋184左右。真要细说,可能是183.5、184、184.5其中的一个(出现0.5是奇数个有眼双活、双方平分1目的情况)。

总的合法棋局数,也就是合法路径数在10^300量级,但其中绝大多数的路径都不是最优的。然而,最优路径也肯定不是一条,对于最优路径的研究已经从4路棋盘不断扩张,我所知的最新成果是人类已经穷尽了7路棋盘的最优路径,8路以上还有待进一步研究。

随着棋盘的扩大,最优路径的集合不断变大,这用数学的方式不难证明。到了19路棋盘,这个最优路径集合中的路径数显然已经是一个天文数字。

而这个集合,一方面是我们追求的“客观真理”,另一方面既然我们知道它很大,就可以欣喜的知道围棋的最优下法不是那么单一无趣的,而是有足够大的容纳空间,甚至有可能能容纳不同的“风格”(按照人类的理解方式)。

-

接下来,要想了解AlphaGo已经带给我们的新思路,要想知道AlphaGo到底在已知棋理的什么方向上形成了突破,首先你要知道人类为了解释围棋规律而总结出的理论,大致是个什么样子,建立在什么框架下。

考虑到很可能会有完全不懂棋的朋友看到这里,又考虑到我个人水平的有限,所以请允许我尽量从最基本的东西说起。

人类对于围棋规律的总结,分为两类。第一种可以称为“实路棋”,也就是强逻辑推演得到的规律,从真假眼到两眼成活,从基础吃子到对杀,都属于这一类内容。这种强逻辑的规律,只要你愿意,是可以用数学公式严格的表达出来的。(比如对杀,就可以总结出严格的公式,我以后会在另一个回答中给出)

还有一种,被称为“虚路棋”。围棋归根结底是一个数学问题,所有最优路径,最终一定是可以用强逻辑来解释的。但我们自身的计算能力不足,甚至借助今天的计算机也还是远远不足,所以出于对计算能力不足的妥协,我们总结出了“虚路棋理”,试图用弱逻辑的方式来建立剪枝模型,用自身容易理解的形式来找寻最优路径。

AlphaGo的强大,正在于它在“虚路棋”上的强大。它模拟了人类棋感的形成,但更加精准合理。当然,这一样是对计算能力不足的妥协,但它的高效剪枝的模型,在计算机强大运算能力的支撑下,现在获得的成功是巨大的。

-

人类的虚路棋,最基础的理论基石是“金角银边草肚皮”和“三四线理论”。

所谓“金角银边草肚皮”,是指在效率上,角>边>中腹(一般情况下)。

这种规律的逻辑在于,围棋是一人下一步的回合制,最后要比较谁占的地盘大,自然就要比较双方棋子的效率。所以要找最优路径,就要每一步棋都追求最高效率。

而如果要吃子,在角上吃掉对方一个子只需要两步棋,在边上吃掉对方一个子需要三步棋,而在中腹吃掉对方一个子则需要四步棋(见图1)。

图1. 在角、边、中腹分别吃掉一个白子,黑棋所需要的最少步数示意图

而如果要做眼,在角上围成一个真眼,需要三步棋;在边上围成一个真眼,需要五步棋;而在中腹围成一个真眼,需要七步棋(见图2)。

图2. 在角、边、中腹分别围成一个真眼,黑棋需要的最少步数示意图

同样的收益(分子),根据对于成本(分母)的比较,我们不难比较出,在上面两种情况下,每一步的棋子效率,是角>边>中腹。

这就是“金角银边草肚皮”理论。

这种理论导致的直接结果,是大家在布局之初会先往角部下,然后慢慢扩张到边上,再然后再向中腹进军,这是基本的行棋顺序与方向。

那么,既然要先往角上下,为什么不直接下在最靠外面的角上(也就是一一的位置)呢?这就涉及到“三四线布局理论”了。

“三四线布局理论”是指,在布局阶段,三线和四线是最高效的行棋位置,其中三线位置偏低,侧重边角实空,四线位置偏高,侧重中腹势力(见图3)。

图3. 三四线示意图,标注圆圈的是三线上的点,标注三角的是四线上的点

“三四线理论”,就不是按照强逻辑推演出来的了,而更多的是依靠经验得到的规律。当然,其中的逻辑也不算特别弱,只不过不是死活对杀那种真正的强逻辑就是了。

不懂棋的朋友在看棋的时候只要稍加注意就会发现,开局时大多数的棋子都是走在这两条线上的。实际上在古代,因为研究和棋力的不足,古代棋手大多比较注重三线。四线获得与三线同等的地位,是依赖于吴清源和木谷实掀起的“新布局革命”。

也就是说,吴清源用一系列的下法和理论,最终将古代的“三线为主、四线为辅”,向中腹推进了一小步,变成了“三四线并重”。这是为了更加侧重中腹,更好的形成全局呼应,同时也依赖于更强的计算力、大局观和更多的变化研究。这一小步,是人类围棋理论的一大步,可以说奠定了现代围棋的基础。

AlphaGo在序盘(布局与中盘的衔接阶段)很注重中腹势力和子力呼应,有极好的大局观,甚至经常会很快的从布局进入序盘,但它的行棋方式仍然在“金角银边草肚皮”和“三四线理论”的范畴中。AlphaGo的创新与突破,不在这里。

-

接下来,让我们把目光聚焦到角部,也就是布局最开始要下的地方。我们取出一些三四线在角部交汇处附近的位置,这些位置就是我们在角部行棋的常规开始(见图4)。

图4. 棋盘右上角常规的1级分支点示意图

为了便于观看,我只取出了棋盘右上方的四分之一,图4中的右上角就是棋盘右上角部,而图中的左下角其实是棋盘的中央,相信大家都能看懂。当然,虽然只取了四分之一个棋盘,但实际上棋盘的全局是相互呼应的,这个角上的变化和其他边角上的子会互相产生影响,请大家不要忘记这一点。

对于在一个空角上行棋,第一步我们可以称之为1级分支,第二步是2级分支,以下依此类推。图4中的A叫星位,B和C叫小目,D和E叫目外,F和G叫高目,H叫三三。这些是最常规的1级分支落子点。

我们无法用强逻辑断定这些1级分支点之间的优劣,但是在大多数情况下,人们是下在星和小目的,而少部分情况下,也会下在目外、高目或三三。当然,到目前为止,没有人能够证明星和小目一定比目外、高目或三三更好,甚至都没有人能证明,除了上述字母选点之外的一些非常规1级分支选点,一定比这些点更差。

对于1级分支选点超出这些常规选点而形成的布局,我们可以称之为冷僻布局。对于人类围棋史上出现过的冷僻布局,我曾在职业围棋比赛中有哪些冷僻的开局? - 知乎做过分类介绍。这些冷僻选点形成的布局,可能会让赢棋的可能性降低,但每个时代都有少量求道派棋手去尝试,这些尝试就像是围棋进化中的基因突变,大部分会失败,但少数的成功则有可能为围棋进步带来新的血液。

AlphaGo在角部的1级分支选点非常单调,几乎全部为最常规的星或小目。在我看到的128盘棋谱中,只有一次例外,那就是和柯洁的第二局中,AlphaGo选择了三三作为一个角部的1级分支落子点(柯洁则是在第一局中使用了)。

Master版本的AlphaGo刚问世时,曾在60盘网络对局中多次出现很早“点三三”的手法,但请注意,点三三是已经有星位为1级分支落子点的情况下,2级分支落子点选择三三(图5)。这和1级分支落子点选择三三是截然不同的两回事,实际的差距是巨大的。但在很多舆论宣传中,显然把这两件事搞混了。

图5. 取右上角为例,黑1在1级分支点下星位,而白2在2级分支点下三三,这和黑1直接1级分支就下在2位的三三截然不同

再往下,就出现AlphaGo带来的创新突破了!顺着图5继续往下走,局部的合理变化会下成什么样呢?首先,我们看看过去最常见的一个定式(图6)。

图6. 传统的点三三基础定式之一,从1级分支点一直到13级分支点结束

传统棋理中认为,点三三形成的该定式变化,黑棋中腹的势力过于强大,比白棋得到的角部实空更好,所以白棋不能过早的点三三,而应该在布局后期,当外围的边上已经有子时再下这个变化。

AlphaGo带来的变化是,它把点三三的时机提前了,在布局早期,在边上没有子的时候就可以下。它这么选择,并不是因为它的判断与人类不同,认为图6中黑棋中腹的势力没有那么强,而是它认为可以不让黑棋这么强,只要局部少下几步就行了,也就是按图7来下。

图7. AlphaGo下出的变化,从1级分支点到9级分支点结束,比原定式变化少4步

将图7和图6比较,我们发现只不过少了白10、黑11、白12、黑13的四步棋。也就是说AlphaGo认为白棋只要不下这两个回合的交换,而是直接脱先(脱先的意思就是局部不下了,下别的地方去),黑棋外围就没有这么厚,白棋就不亏了。

当然了,AlphaGo还认为黑5选择其他的分支变化更好,在它自对弈的棋谱中,点三三经常形成另一个常见定式。而在那个定式中,它的判断就与过去人类的常见判断不一样了,人类认为一般情况下过早(边上无子)点三三黑棋外围太厚,应该晚些(边上有子)再点,而它认为黑棋外围没有那么厚,可以早些(边上无子)点三三。

-

接下来,我觉得可以讨论一下1级分支点为星位时,AlphaGo带给我们启迪的一个典型后续变化。首先,我们要顺着星位的1级分支点往下看。(这一小节内容相对较难,不懂棋的朋友不需要纠结,可以直接跳到小节最后,或者只领会大意)

图8. 在黑1以后,现有研究中认为白2可以落子的2级分支点位置

当黑1占据星位,白2在常规情况下可以下的点是A到I等9个点(只取左上方选点,右下方的镜面对称点是相同的)。当然,我们并没有百分之百的把握说其他点一定不行,实际上在外围有子力配合的情况下,白2下在其他位置也不算特别罕见。但普通的来说,现有定式研究的内容,白2的2级分支点大致有这些。

其中,白2在A位小飞挂角最常见,也是人类和AlphaGo在绝大多数情况下会选择的下法。注意,白2如果下在F,就是点三三。

在图8中,我们取白2下在A位,小飞挂角,那么3级分支下,黑3可以下那些位置呢?接下来请看图9。

图9. 在黑1、白2之后,现有研究中认为黑3可以落子的3级分支点位置

在图9中,现有研究认为黑3可行的3级分支落子点大致有从A到R这么多(个别落点不太常规,需要特殊的全局配合)。和图8一样,我们不能100%确定其他的选点一定不行,但这些选点是我们现在认为较好的一些。

其中,人类和AlphaGo最常用的下法都是A和B。然后,我们在图9中取黑3下在A位,继续往下看,AlphaGo的新思路就快来了。

图10. 在黑1、白2、黑3之后,现有研究中认为白4可以落子的4级分支点位置

在图10中,现有研究认为白4可行的4级分支落子点大致有从A到M这么多(个别落点不太常规,需要特殊的全局配合)。和前面一样,我们仍然不能确定其他选点100%不行。

接下来白棋要下第4步,如果要进角,人类通常的下法是A位二路小飞,而AlphaGo却喜欢B位托小目。当然,并不是说人类只下A而不下B,也不是说AlphaGo只下B而不下A,A和B都是常见下法,但人类在绝大多数情况下会选择A,而只有很少的时候会选择B,AlphaGo则在很多的时候都选择B。

图10中A位的二路小飞,没有导致立刻的棋子接触,而B位的托小目,则立刻导致了棋子接触。相对于人类,AlphaGo好像更喜欢较早的棋子接触。A位后续的变化比较松缓(图11),而B位后续的变化则倾向于直接在局部定型。

人类选择B位,经常是在两侧边上有子的时候,想尽快就地做活,才这么下。而AlphaGo则在两侧边上都没子的时候,也喜欢这么下。AlphaGo在布局中选择的下法,不论是否是定式变化的常见研究中的下法,好像都特别偏爱棋子的接触和尽早的定型。也许这是因为尽快定型有利于减少后续分支,也就减少了程序的计算负担。

图11. 白4二路小飞形成的后续变化中,最典型的定式

白4二路小飞则形成图11,而白4托小目则形成图12。

图12. 白4选择托小目后,黑5、白6是现有研究认为几乎是唯一可以选择的5级和6级分支

如图12,白4托小目,黑5挡是现有研究认为唯一的5级分支,而白6几乎是唯一的6级分支。截至6级分支,这个变化最早被人纳入定式研究,据我所知出自“新布局革命”时期的吴清源之手。而AlphaGo,在实战中显然“酷爱”下这个变化。

接下来,对于7级分支点,研究认为黑棋大致可以有三四种选择,但最常见的,也是人类和AlphaGo都最喜欢下的,则是图13中的黑7打吃。

图13. 黑7打吃之后形成的代表性定式之一

我们大多数人第一次见到AlphaGo下图13这个定式,是在它与李世石的第二局棋中(图14)。

图14. 2016年人机大战第二局,AlphaGo(黑)vs李世石(白),AlphaGo黑17、19选择左下托小目、连扳,最终下到白28,也是角部的15级分支定式

如图14,在人机大战第二局中,当AlphaGo下出黑17、19的下法后,形成了图13的定式。有些职业棋手感到很不解,认为在当前局面下,黑棋在左下选择的定式变化太俗,而且这么下太早,白棋外围太厚,和全局配合较好。

事实上,直到今天,很多分析仍然认为此时白棋局面稍好。但当时的AlphaGo还是18.0的版本,比后来的Master版差了不少。

那么Master版的AlphaGo,是怎么处理这个变化的呢?让我们看柯洁和AlphaGo的第二局(图15)。

图15. 2017年人机对弈第二局,AlphaGo(黑)vs柯洁(白),AlphaGo黑11、13选择托小目、连扳,之后下出了黑25的新手

如图15,注意在右上角,截止到白22,都是人类研究中常见的下法,黑棋正常是在A位跟着下的。接下来黑23和白24的交换,也是常见的试探应手的下法,可AlphaGo紧接着没有下A位,而是更进一步下在了黑25跳!

黑25是局部的18级分支,我不知道在人类对局中,有没有人在18级分支时选择这个点,但至少在已有的研究中,应该还没有明确的注意到,因为很多职业棋手当时立刻表明这是新手。

黑25这一步18级分支点,比常规的A好了一点点,在于几步棋后的一个变化中,黑25的位置比A更好,具体变化我不再展开。但这好的一点点,却是一个巨大的进步。

看到黑25时,所有的职业棋手和棋力较高的业余棋手几乎都立刻反应过来了:这是好棋!因为大家都看到了后续变化中黑25位置的好处。这一步18级分支点的新手,成为了这个变化的精华(某职业九段语)。

这个局部双方实战形成的下法(图16),就是哈撒比斯在推特中宣称,AlphaGo认为双方的最佳变化。

图16. AlphaGo与柯洁第二局实战中右上形成的棋型,也是AlphaGo认为的最佳下法

黑29之后,柯洁选择白30脱先,下在下边这个超大飞的点,AlphaGo后台也认为白棋应该从右上角脱先,并且下在白30。

右上这个局部,就是AlphaGo认为的局部最佳变化,自然也就形成了一个暂时的新定式。这个变化比过去的旧定式多了几个回合,而且主要是黑25的18级分支点,是其中的重点。因为有多出的这几个回合,所以AlphaGo在局部早期选择黑11托小目的4级分支点,合理性大为增强。

我们当然不能肯定这个变化就亘古不变了,但至少在当下,AlphaGo给我们提供出了合理的后续下法,为我们判断早期分支点增加了砝码。

好了,AlphaGo在这个定式变化中教给我们的东西我大致说完了,的确有些复杂,不懂棋的朋友可以略去技术内容。我们对比这个变化,还有前一小节说的点三三的2级分支变化,我们发现AlphaGo带给我们的究竟是什么呢?

AlphaGo给我们过去所研究出的定式变化以及具体变化的适用场合,进行了一些调整,点三三的定式少下几步,就可以更早的使用了;托小目的定式多下几步,也可以更早的使用了。

因为对具体的下法进行了调整,增加或者减少,或者发现了后续分支中的更好下法,所以对早期分支适用于什么全盘场景,有了不同的判断。

这就是AlphaGo带给我们的新思路之一。

-

人类对于围棋开局的研究,不论是全局布局还是局部变化,主要内容都是从以星和小目作为1级分支点的角部开始的(图4中的A、B、C)。上一小节讲了AlphaGo在星定式中的表现,其实也是截至现在,它最喜欢的一个星定式,那么这一小节我们来看看它在小目定式中的表现。

大家首先需要知道的是,一手棋是无法完全控制一个空角的。所以在一个空角落下第一个子后,以后有机会需要补一手,才能基本控制这个角部,这叫守角;而对方为了防止你守角,可以来挂角。

对于小目的1分支点,在人类的研究中,常规的守角点有四处(图17)。而对方来挂角的常规位置,也是这四处。

图17. 黑1占据小目作为1级分支点,A、B、C、D之一是未来双方争取落子的常规点

如果白棋下在A、B、C、D之一挂角,那么是2级分支点;如果白棋不在这个角上下,而是黑棋下第二步,那么其实是3级分支点(白棋第二步下在了别处算是隐藏的2级分支点,这听起来似乎很奇怪,但在定式研究中确实是这样判别的)。

在围棋术语中,黑1有子后黑棋第二步下在A,占据“日”字的斜对角,叫做“小飞”;如果第二步下C,占据“目”字的斜对角,叫做“大飞”;第二步下B,中间相隔一个交叉点,叫“小跳”;第二步下D,中间相隔两个交叉点,叫“大跳”

所以黑棋如果接下来下在A、B、C、D守角,我们可以称之为“小飞守角”、“小跳守角”、“大飞守角”、“大跳守角”。当然,我这么说是为了便于不懂棋的朋友们接受,其实更流行的俗称,是把“小飞守角”称为“无忧角”(因为以前很多人认为这种守法最好),把“小跳守角”称为“单关角”。

如果黑棋没有守角,而是白棋抢到了挂角,那么白在A、B、C、D挂角,我们称之为“小飞挂角”(一间低挂)、“一间高挂”、“大飞挂角”(二间低挂)、“二间高挂”

总之,对于1级分支点的小目来说,这四个点是接下来最重要的下级分支点。我们得出这些点更多的是依赖于经验,而用于解释其存在的逻辑是弱逻辑。小目定式的后续变化,如果不考虑与全局套路的配合而只看局部,基本以A、B、C、D四个点为2级分支点向后展开。

虽然我们没有办法确定局部A、B、C、D之间的好坏,但在实战中,人类占据这四个点守角的频次大概是A>BC>D;占据对方的这四个点挂角的频次大概是AB>C>D。

至于AlphaGo,它在此处的判断和选择十分惊人。AlphaGo占据四个点守角的频次是C>D>B>A;占据对方这四个点挂角的频次是AB相当,CD基本没有。

当然,当这个局部的小目被组合进入全局性的成体系布局后,有些时候会出现,先占角的一方会暂时放着不守角,而另一方挂角也不好的特殊情况(中国流体系),那种时候人们也会采取A、B、C、D之外的其他选点进攻角部,而AlphaGo在那种情况下有惊人的新手。

AlphaGo对于守角位置的判断,最初让我们惊讶是在2016年人机大战第5局中(图18)。

图18. 2016年人机大战第5局,李世石(黑)vs AlphaGo(白),黑棋选择错小目无忧角的布局,黑5在右上小飞守角,局部形成无忧角

在图18中黑棋的布局,黑1、3形成错小目布局,意思是错开了方向的小目,该布局是围棋史上最早被系统研究的全局性布局,出自19世纪的日本本因坊秀策之手,所以也被称为“秀策流”。

在黑先要贴5.5目的小贴目时代,这个布局极为流行,在黑棋不需要贴目的时代甚至更为流行,因为这种开局占据实空很快,而围棋正是一个比围空(空为四声,名词,可以理解为空着的地盘)的游戏。黑5的无忧角,虽然不能说一定优于其他守角,但在此布局中,黑5下这里最多。

进入大贴目时代后,有一段时间,因为研究中暂时找到了白棋压制黑棋布局的方法,所以一度有观点认为该布局过于缓慢,不适合有大贴目负担的黑棋了。那段时间,有很多人为了反制白棋的压制手段,会选择将黑5下在图18中的A位,形成大飞守角,但始终没有人能说A的大飞守角一定比小飞守无忧角要好。

可是在图18的这一局中,据AlphaGo后台显示,当李世石落下黑5后,AlphaGo认为黑棋的胜率降低了!也就是说,AlphaGo认为在当前局面下,黑5守无忧角不好!虽然那是18.0的旧版AlphaGo,但在Master的版本中,AlphaGo可能还是这么认为的,因为当AlphaGo以黑1、3的错小目布局开局时,它绝大多数时候都会下在图18中的A位大飞守角,少数时候会下在B位的大跳守角。(除了该布局外,对于常规的小目守角,AlphaGo也是这样的)

AlphaGo认为小飞守角不好?应该宽一路守?人类几百年都不敢做出的判断,只能凭个人喜好选择,而AlphaGo替我们做出了判断。当然这种判断是否100%正确,现在我们可以持保留意见,因为还没有看到它后续变化的逻辑,但胜率的变化可以作为我们的重要参考。(这判断基于18.0版本,Master版本重新出现了小飞守角)

需要多提一句的是,吴清源就不喜欢下小飞守角,而在绝大多数时候会下在大飞守角。小飞守角扎实、稳健,大飞守角围的更大,却较为松散薄弱,两者各有利弊。吴清源在黑棋不贴目的时代经常下白棋,其实也就是经常要让别人先,所以执白时棋风非常激进,如此形成的选择习惯中,就包括喜欢大飞守角。

这和AlphaGo喜欢大飞守角,似乎是一个巧合,因为其他酷爱大飞守角的棋手,也是有的。但吴清源这种选择的逻辑,可以帮助我们来解读AlphaGo的判断。

-

小目的四种守角,一般不被称为定式,但一样是常识性的下法。而对于小目的四种挂角,则是小目定式的2级分支,也是整个小目体系的开始。

图19. AlphaGo在小目小飞挂时,最喜欢下的3级分支点就是黑3侧面小飞

在图19中,当黑1在1级分支点占据小目,白2在2级分支点小飞挂角之后,人类现有研究中,常规的3级分支点,有A到L再加上黑3这13种左右。但是经过了长时间训练的AlphaGo,好像就喜欢下黑3侧小飞这么一种......当然,偶尔,只是偶尔,它也下过K位的尖顶,但频次相对少一些。

图20. 2017人机对弈第二局,AlphaGo(黑)vs柯洁(白),AlphaGo第7步在右下选择侧小飞定式

图20中,AlphaGo在右下选择的定式是它最喜欢下的小目小飞挂定式(没有之一),而在右上选择的定式就是我们前面提过的,它最喜欢下的星定式(仍然没有之一)。接下来我们还将看到,对于小目一间高挂(图21),它最喜欢下的定式(还是没有之一)。

图21. 白2在2级分支点选择一间高挂时,黑3在3级分支点选择下托

对于白2一间高挂,已有研究中黑棋在3级分支时可选择的着点有从A到P,外加黑3,这总共17处,可AlphaGo几乎在所有情况下都会选择黑3下托......

从星定式到小目两种挂角的定式选择,它似乎都在说:弱水三千,我只取一瓢。你们研究了30万定式变化,我就下这么3个。当然,我只摆到了3级分支点,但后续的几个分支点,AlphaGo的选择也基本都是一本道(一条路)(图22)。

AlphaGo就像一个三斧子的程咬金,角部起手就这么几招,但你千万别以为别的它都不会。在自对弈中,它一般只下这么几个变化,但当它和人类棋手对局时,面对人类棋手花样繁多的各路变化,它应对自如,甚至它自己后台都能推算出后续变化中,它认为的双方最佳变化(围棋中叫两分变化、也即势均力敌)。

图22. 图21的后续变化

在图22中,黑3下托之后,白4在4级分支点上大致有3、4种左右的选择,如果AlphaGo自己下,它只下白4扳。当然,这一步白4也是人类棋手最常见的下法。然后黑5在5级分支点选择退,保证黑1、3之间的联络。

这时候,来到了一个关键节点:白2、4没有连在一起,出现了一个断点A,如果白棋不下,则黑棋下一步在A位将白2、4断开,白棋两边被攻,局部不好。所以白6的6级分支点,基本围绕着如何补A位这个断点做文章。

在人类理论中,虽然有多种补断手法,但大家认为可行的只有A位粘上和B位虎(将A位围成虎口状,你下进来就被我吃掉,故而这一步叫虎)。可是到底选择哪一个呢?

图23. 白6在6级分支点选择虎,而后形成的典型传统定式

图24. 白6在6级分支点选择粘,而后形成的典型传统定式

在常规的变化研究中,图23是虎的后续,下到白8拆边为止;图24是粘的后续,也是下到白8拆边为止。当然,两图中的黑7和白8都可以有一些别的选择,但含义大致不变。图23中,黑7和白8都可以脱先,而图24中,黑7不能脱先,否则白棋后续手段严厉。

要补断,到底选虎还是粘,固然要看全局配合,但大多数时候当棋局较为空旷时,以我们的能力是看不出两种下法对于全局影响的不同的。记得最早版本的定式大全中,说白6虎比粘稍好,也就是图23的白棋比图24中稍好,因为虎棋型更好,子效更高,眼位丰富,还能拆的更远一路。但是,解说又说两个都可以下。

问题来了,既然围棋要追求每一手棋的最佳,而虎比粘稍好,那么你为什么说两个都能下呢?如果两个确实都是最佳,那你凭什么说虎比粘好呢?这个问题困扰了我接近20年。

那么AlphaGo是怎么处理这个问题的呢?其实AlphaGo在不同版本的进化过程中,对待虎和粘的态度发生了激烈的变化。18.0的版本它几乎全下虎, 可Master的版本它又几乎全下粘了。

图25. 2016年人机大战第二局,AlphaGo(黑)vs李世石(白),黑11在右下定式中的6级分支点选择用虎的手法来补断,然后黑15刺和白16交换之后脱先

我们第一次见到AlphaGo对此定式的态度,仍然是在2016 人机大战的第二局(图25)。AlphaGo在右下黑11虎,然后黑15刺之后脱先,这当时让人类大为震惊。

就局部定式变化而论,过去认为黑11虎、白12拆之后是可以脱先的(虽然在这个开局下一般不会脱先,而会在下边拆边),但黑15和白16的交换则是需要保留的后续手段。

图26. 黑7在7级分支点拆一以后,白棋留下的将来的手段有A、B、C、D、E

如图26,在常规研究中,从A到E,都是白棋将来可能有的手段,但人类棋手一般不会立刻就下,而是会脱先下别的地方,在此处对各种可能性进行保留。

“保留”,是人类围棋的重要理念,其逻辑是,如果局部的下一级分支点,有两种看起来都不错的选择(不能是必须立刻下的强逻辑棋,而必须是可以暂时不下的弱逻辑棋),而两种选择会导致完全不同的全局配合,我们因为计算能力的不足,暂时又不能确定将来的局面会发展成什么样,那我们选择保留,给未来的棋局留下更多可能性,避免自己过早的选择将来称为错误。

可是AlphaGo很多时候完全不喜欢保留,因为保留过多变化会给它后续行棋带来很大的计算负担,所以AlphaGo的行棋风格一直倾向于尽快定型、少留变化。在图26中也是一样,它直接在选择B,别的选择就不再看了。

最早的时候大家很惊讶,认为难道它认为B最好吗?其他几个下法就不行?现在局面很早,程序的计算能力得到这种结果,一定是对的吗?

当时,我对此曾有一个猜想。根据Deepmind的论文,AlphaGo的模型,会在有多个选点胜率相同时,随机选择一个。所以我想,会不会在AlphaGo的训练中存在某一盘棋,它面临这些选点,然后认为胜率一样,它不喜欢保留变化,决定立刻下掉,所以随机选择了B。此后,B的胜率就高过了其他选点,所以它以后就只下B了,当然也就不需要保留了。

一年过去,看了AlphaGo这么多盘棋谱,看到了它单调的布局和定式选择,我越来越相信我的这个猜想接近事实。说白了,AlphaGo的模型建立,就是以赢棋为目的,“只要我有一条路能赢棋,我不在乎还有没有其他的路”。所以AlphaGo经过长期的自对弈训练,布局和定式选择都很简单,变化不多,然后快速推进序盘,之后序盘与中盘的强大实力才是关键。

AlphaGo没有下的棋,我们不能确定一定不好,人类棋手对它使出各种它不常下的变化时,它经常也没有判定胜率下降。而且我们通过对正解路径数量级的判断,也能用数学的方式证明开局一定步数内的正解路径,远远不可能只是AlphaGo喜欢下的那些那么少。这再次证明了,AlphaGo仅仅是用自己在训练中找到的最顺手的路去赢棋,而不会在意更多正解可能性。

在图26中,AlphaGo就认为有一步棋不好,那就是黑7。老版的AlphaGo认为黑7应该脱先,局部下到白6就是最佳。正是黑7没有脱先,所以导致被白棋抢到了先手,黑棋胜率下降。这和过去的研究结论有何不同呢?过去人类认为黑7可以脱先,可老版AlphaGo认为黑7必须脱先,这就是区别所在。

然而,这只是老版的AlphaGo,在Master的版本中,AlphaGo所认为的最佳变化不同了......

图27. Master版本的AlphaGo,在小目一间高挂后下的最多(接近全部)的定式

回顾图23和图24,AlphaGo最早在6级分支点认为虎好,并且认为人类的老定式应该少下两步(虽然人类也认为可以少下两步,但AlphaGo认为暂时必须少下两步,最后两步棋没有先手价值更高)。

可到了Master,它在6级分支点清一色选择粘(图27)......并且,和人类理论一致,它认为白6粘的时候,黑7在7级分支点不能脱先,所以它100%的选择把这手棋下掉。(道理不复杂,白6粘的时候如果黑7脱先,白棋下一步A位靠下严厉,而如果白6处在B位虎的位置上,那么A位靠下就不严厉了)

从18.0到Master,AlphaGo对待虎和粘的态度出现了180度的大转弯,如果它继续进化下去,会不会再转回来呢?我觉得真不好说。AlphaGo就像一个喜欢糖果而不加自制的孩子,今天喜欢吃草莓糖,就全吃草莓糖;明天要是觉得巧克力更好吃,它就一定会全吃巧克力。

但我们从AlphaGo处理这个定式的方式中可以学到什么呢?

AlphaGo的行棋方式,显示出对于先手的价值判断极高,虽然人们都知道先手价值高,但AlphaGo对先手的判断还是要更高一线,所以动不动就比人类更早脱先。因为更加注重子力的全局配合,所以传统布局理论中的局部拆边,在AlphaGo的眼中分量较低,它经常会暂时不拆边,或用更高效的手法代替局部拆边。

不管是自己孤棋需要拆边围眼位,还是要抢双方阵营中的边空,它都很少拆边,而用一些更加激进的手法加以代替。而后一种情况下,涉及到它快速推进序盘的手法,我们将在最后一小节讨论。

-

AlphaGo在星定式和小目定式中的表现说完,我们可以看看它对于布局套路的态度了。

AlphaGo在左右互搏的训练中,形成的布局也是相当单调的。在公开的128盘棋谱中,除了和柯洁的第二局,AlphaGo模仿了柯洁第一局的小目配三三的开局(这种开局还没有经过深入研究并成为大规模的全局套路),在几乎全部的其他时候,AlphaGo只会选用几种人类最流行的布局。

人类现有布局研究,常规布局是根据角部5种常规1级分支点的不同,进行全局组合后进行分类的(超出这个范围为冷僻布局职业围棋比赛中有哪些冷僻的开局? - 知乎)。

而在常规布局中,现在已经经过全局性深入研究的套路主要有6种(最常见的),基本框架全部是以星小目加一定位置的拆边组合而成的。分为错小目类、中国流类、迷你中国流类、星配守角类、小林流类、二三连星类。

AlphaGo的对局,执黑大部分时候都会用中国流和迷你中国流(图19),有时候会使用错小目、二三连星和星配守角(重新统计所有棋谱后我发现,这几种布局的出现频次其实比中国流类也没有低多少,大致比较均匀),偶尔也有小林流,但其他的基本就没有了。当然中国流体系的合理性很强,半个世纪以来一直也是棋坛主流研究的共识。AlphaGo训练的结果,也对此表示了支持。

图28. 已公开的AlphaGo自对弈第50局,黑1、3、5、7形成迷你中国流的一种变体

在图28中,黑7没有守角而是直接拆边(占边),就是中国流布局的精髓。意思是如果你来挂角,就陷入了我已经摆好的两面夹击,你会十分被动;如果你不来挂角,那么我的布局速度就变快了(常规布局顺序是先守角再拆边)。

迷你中国流,最初是中国流的一种变体,黑7下在A位是最常见的迷你中国流。而将黑7从A位右移一路,最早被系统研究并使用,据说是中国棋手刘星七段(被誉为求道派)。所以该布局一度也被称为“刘星流”

为了帮助白棋对付黑棋的中国流类结构,人们进行了大量的研究,找到了大量挂角之外的方式。这其中被研究过的变化和不同的实战是海量的。但是,这种海量显然不能和AlphaGo的高水平自对弈的数量相比。AlphaGo在这个体系中真正的贡献,就是在大量自对弈之后,找到了对付中国流结构的新的手段。而这新的手段,就涉及到AlphaGo在序盘常用的大局型处理手法了。

-

我们前面已经说到,AlphaGo对于布局和定式的选择非常简单,喜欢快速简明的定型,不喜欢太过复杂的变化。

在布局的基本框架立下来之后,AlphaGo喜欢用一些手法快速进入序盘乃至中盘,然后在中盘中发挥强大的大局观控制全场,获得优势后稳健的将优势保持到最后。

所以,AlphaGo的序盘和中盘其实有很多值得我们学习的地方。但这些内容,越往后讲越复杂,观众也越不容易看懂,我也越容易讲错。所以,我在此处只试图讲一些AlphaGo在序盘中带给我们的新思路中,最简单最容易判别,也最容易理解的东西。

最后有关序盘的这一部分内容,我会着重讲AlphaGo在序盘中对两种手法的使用:肩冲和靠。而为了让不懂棋的朋友看懂,我仍然从最初级的内容说起。

图29. 围棋中最开始接近对方棋子的常规距离举例

在人类总结的虚路棋理中,认为“一子勿靠”,也就是说你要接近对方的一个棋子,那最好不要直接靠到对方身上去,而是先保持一点距离。

比如图29中白2挂角,就是对黑1的接近,白2没有直接下在A,靠到黑1的身上,而是和黑1保持了一路的距离。白4在三线拆边之后,黑5也从三线逼住(拦住)白棋,也是一样的道理,黑5接近白4,没有直接下在B位,贴到白4身上去,而是也先保持了一路的距离。

棋理上的解释是,围棋是回合制的,如果直接贴身肉搏,对方掌握先手,瞬间就变成了二打一,于是和对方距离越近就越危险。所以应该先保持距离的接近,然后下一步再贴身肉搏。这就好比两人搏斗,正常情况下都是先摆出架势,保持一臂到一臂半左右的距离,然后再找机会出拳出腿或擒拿扑倒。

当然,任何棋理都是有适用条件的,在特殊的周围子力配合下,直接靠到别人身上去也不是不行。就像你趁人不备,直接从人后面把人扑倒也是有可能的。话说的很糙,而且不够准确,围棋中实战情况千变万化,有些情况下可能很复杂,但大致是这个意思。

肩冲和靠,其实是在特定的局部棋型下的下法名称,招数本身不特别,关键是看你使用的场合与时机,以及和全局子力的配合。说白了,人还是这个人,但如果你能在关键的时间,出现在关键的地点,并和其他人保持较好的人际关系,那你就高明了。

-

我想先讲肩冲,后面再讲靠。我们先看一个AlphaGo使用肩冲的常规例子。

图30. 2016年人机大战第4局,AlphaGo(黑)vs李世石(白),AlphaGo声东击西的肩冲

见图30,这就是李世石用“神之一手”战胜AlphaGoV18.0的那一盘,虽然AlphaGo最后输了,但它的前半盘其实下的非常好。而此时的局面,就是AlphaGo在前半盘的一次“肩冲”。

白46,上边孤棋向中腹逃跑,此时黑棋如果要在只看右边局部,下在B位,从三线逼近白A子,好像是个不错的下法,但这只是局部。如果从三线上的另一边,在C位打入,将白A子和下方白棋割开,以攻为守,也是局部不错的下法。

但这时候,如果通看全局,高手会认为应该在白A子的上方(围棋以靠近中央为上,以靠近四周为下,所以从图中看是白A子的左侧)行棋,一边压迫白A子,一边远远的瞄着白46一带中间的孤棋。这在围棋中叫“靠压战术”,也就是声东击西的意思。只不过,围棋是完全信息博弈,这声东击西是光明正大的声东击西,让你左右无法兼顾。

通过战略目标,我们在方向上确定了,然后具体下在什么位置,就是战术上的手法问题了。下在D叫肩冲(像是从白A的肩膀上冲击白A一样),E叫上靠,F叫吊,G叫镇。具体手法各有利弊,适用于不同场合,但此时D位肩冲最好。

AlphaGo,也是这么下的。

图31. 2016年人机大战第4局,AlphaGo(黑)vs李世石(白),AlphaGo肩冲后的实战

实战中,AlphaGo压迫右边白棋,在中间形成厚势,意图吃掉上方白棋。实际上后来它也确实吃掉了,从而确立了胜势,所以它的肩冲很成功。只不过李世石在中间发现了妙手,而AlphaGo算漏了后续变化中反制妙手的更妙手,从而崩盘,被李世石逆转。

肩冲只是围棋中的一种手法,和其他具体手法一样,人人都会下,关键是看如何使用。AlphaGo特别喜欢肩冲,下的非常多,而且用的非常好。

但上面这个例子,之所以说是常规例子,是因为以人类的眼光看也应该这么下,这不算是AlphaGo的创新。实际上在当时的实战直播时,很多解说的职业棋手都预计到了AlphaGo会肩冲,并给出了后续图31的变化。当时甚至连我都猜到了AlphaGo黑47的肩冲。

那我为什么还要特意说AlphaGo的肩冲呢?AlphaGo在什么场合下对肩冲的使用给我们带来了启发呢?

图32. 2017年元旦期间,AlphaGo Master(白)在弈城平台上与中国职业棋手(黑)的对局

按照常规的布局理论,布局时抢占大场先后顺序是:占空角>守角和挂角>拆边,而在这三步之后,根据双方形成的格局,或者向中腹扩张,或者在局部形成战斗,或者打入对方的阵营,或者浅消对方的阵营。而其中向中腹扩张和浅消对方阵营,都可能用到肩冲的手法。

看图32,双方黑1、白2、黑3、白4,属于占大场第一步的占空角;然后黑5、白6、黑7、白8,属于占大场第二步的守角(我前面说AlphaGo喜欢大飞守角而极少小飞守角,但这盘棋却是例外之一,AlphaGo用了俩小飞守角......呃......)。

下到这里,似乎AlphaGo和人类棋手的表现都很常规,四个空角都占了,然后又把四个角都守了,接下来该占大场第三步,占据四条边了吧?于是执黑的人类棋手黑9拆边,同时将上方一带连成大片。

接下来,按照当下格局的具体配置,从虚路棋理的大场大小方向来说,一般认为白棋应该在左边行棋。如果是常规的拆边,A、B、C、D是常见的落子点,A、B比较稳健,C、D离己方阵营远一路,离对方阵营近一路,所以相对激进。

实战中,AlphaGo确实是在左边行棋了,但它比C、D更激进,白10选择了直接肩冲黑棋左上的小飞守角!

如果白棋先占据左边,接下来再在10位肩冲,一边扩张自己一边压缩对方,也是好点,可是AlphaGo省去了拆边,直接进入了下一阶段,将布局提速。

图33. 图32对局的实战后续,AlphaGo两次省去拆边,连续肩冲黑棋左上和右上的小飞守角

白10肩冲后白12向中腹跳,局部常见下法,不多解释。然后黑13抢占下边,在白棋两个角中间的边上下棋叫分投,白14三线逼住(注意,是隔一路的距离)。然后,按照棋理方向AlphaGo应该在右边行棋,可它的具体手法是再次省去拆边,白16直接肩冲右上黑棋的小飞守角!

这盘棋开局AlphaGo的两个肩冲,当时引起了广泛的注意,并且立刻就开始被人类棋手大量的模仿和研究。

说句实话,肩冲小飞守角本身是人类研究充分的下法,不算创新,甚至省去拆边直接肩冲小飞守角,也不是AlphaGo第一个下出来的。但是,过去人类棋手对待这种下法的看法,基本是作为“趣向”(意思是有趣的尝试),认为可能是未来发展的方向,但仅仅是可能,因为没有人真的能提出充分的道理,说省去拆边一定就更好。

很多棋手偶尔也会尝试这些下法,但大多数时候还是按常规思路先拆边。少数棋手特别喜欢这种下法,但他们的实战效果并没有这么好,所以也没有形成足够的说服力。吴清源在晚年时,多次着重提倡这种下法,认为这是“21世纪围棋”的方向,也并不是得不到大家的任可,甚至很多人都进行了大量实战尝试,只是并没有如AlphaGo这样引起大家这么强烈的重视。

这当然不是因为什么传统棋理是什么权威我们不能推翻,要知道人类对围棋棋理的研究一直在进化变动中。这是因为,围棋是靠实战结果说话的,实战是检验一切棋理的唯一标准。没有得到大量实战效果的支持并在研究中得到确认,那就不会得到广泛的认同。

现在,AlphaGo在实战中不是偶尔,而是大量使用了这种下法,而且它的实战后续证明了这种下法效果不错,这就形成了实战支持。AlphaGo在实战谱中、在后台计算中,给出了后续下法并判断了胜率,这就是相当于初步的研究确认。所以,大家开始重视起了这种思路。

图34. 吴清源提出的“21世纪围棋理论”中,推荐白棋在布局之初直接肩冲小飞守角的例子

吴清源在生命的最后10几年里,提出了一系列对传统布局理论的改进,包括推荐在布局早期大量肩冲对方的小飞守角。图34就是一例,黑1、3、5星配无忧角的布局,白6直接肩冲。对于星位小飞守角,也是一样。

事实上,吴清源在年轻时的巅峰时期,实战中就特别喜欢肩冲的手法,所以AlphaGoV18.0与李世石对局时,引起过一些人的惊讶:这个AI对肩冲的频繁使用怎么和吴清源这么像?

吴清源晚年提出的这些理念,有些内容不过是比他年轻时的下法和认识更进了一步。只不过耄耋白发,垂垂老矣,他已无力用实战去验证这些想法并证明自己。

AlphaGo从V18.0到Master,类似的下法越来越多,越来越明确。很多人感叹到,吴清源生前说自己“一百岁后要到宇宙中下棋”,他似乎真的去了。

的确,就算吴清源复生,就算吴清源回到巅峰时期,甚至就算让巅峰时期的吴清源生长在我们这个时代,他也不可能比AlphaGo表现出的棋力更强,但他确实可能是解读AlphaGo的最佳人选。

惜乎哉,君老我未生,我生君已故。

-

说完了肩冲,最后我们需要说说AlphaGo在布局与序盘中的靠的手法。

看完全面的内容,想必你已经知道,下围棋要每步棋抢最大,所以布局要尽量按照从大到小的顺序下。按照普通的大场大小,常规的布局顺序是占空角>守角和挂角>拆边。

但是实际上,一盘棋是很复杂的,布局很多时候不是简单的把所有局部大场加和起来,有时候会在局部出现不能脱身的战斗,有时候必须让各个局部的子力形成更高效率的配合。

因此,人类开发出的全局性布局套路中,有很多是不符合常规布局顺序的。中国流布局,就是其中的代表。

图35. 最基本的(低)中国流,黑5没有在A、B、C、D等位守角,而是直接拆边

前面我们说过,中国流的精髓就是小目先不守角,而是直接拆边,省略了布局顺序中的第二步,直接从第一步跳到第三步。

这种将布局提速的手段,是不是和AlphaGo的省略拆边直接肩冲很像?只不过一个是跳过了布局第二步,一个是跳过了布局第三步。

因为首先深入研究该布局体系并用于实战的,是中国棋手(集体),所以该布局被日本棋手誉为“中国流”,而后该布局风靡棋坛半世纪直到今天。AlphaGo的对局中,使用最多的也是该体系。毕竟是全局性子效配合上佳,可以让布局提速的布局,AlphaGo当然不会错过的。

中国流体系用起来舒心,对付起来烦心,所以几十年来棋坛一直也在研究破法。AlphaGo不仅喜欢下中国流,它还找到一个对付中国流的“先进武器”。

图36. 2016年公布的AlphaGoV18.0自对弈第3局,白20靠星位,单刀杀入中国流结构核心

中国流之所以不守角直接拆边,就是不怕你来挂角,你来了正好被我夹击,我借助攻击取得布局主动权。人们最早发现,常规挂角中,三线上的A位小飞挂和B位大飞挂,都不好。四线上的C位一间高挂和D位二间高挂,稍微好一点,毕竟位置高一线,容易向中腹逃跑。再后来,大家甚至觉得不要从小目的正面挂入,从侧面的E、F、G、H位接近也行,还把这种下法命名为侧挂。有时候也可以不挂角,那干脆从五线的I、J位吊,浅消一下了事。再有,还可以从K位内靠三三,以试应手的方式留下活角。

人们绞尽脑汁,自以为已经想尽了办法去找路子破坏中国流的核心结构,可AlphaGo还是在大量的自对弈训练中找到了新的下法,那就是图36中的白20,直接靠星位!

这一步白20的靠三三,不是没有人类下过,但以前的研究没有深入的研究过,而是简单的略过了这个分支点。刚看到AlphaGo这步棋的时候,棋坛一片震惊。

虽然也有爱好者找出了职业对局中同样下法的棋谱,但经我查验,那是在对角有征子时的引征。引征属于强逻辑的棋,而我们在此处讨论的只是局部的弱逻辑的虚路棋,所以局部棋型一样,但实质上截然不同。(我不知道有没有不是引征的先例,但我肯定人类不曾对此进行深入研究)

AlphaGo不仅在常规的低中国流中选择靠星位,在低中国流的变体中也靠星位,在迷你中国流中还是靠星位,在迷你中国流的变体中仍然靠星位。真是只喜欢一种糖果的直脾气孩子。

而人们在观察了AlphaGo的后续下法并进行了深入研究后发现,这一招真的很有效,确实是“先进武器”。

图37. 2017年公布的AlphaGo Master自对弈第1局,白10以靠星位对抗黑棋迷你中国流

图37便是前几日公布的50局AlphaGo自对弈中的第1局,黑棋3、5、7构成迷你中国流,然后白10靠在星位。这盘棋中,AlphaGo不仅展示了用靠来接近中国流结构的小目,接下来还展示了用上靠来压迫拆边。

图38. 图37对局的后续,继白10靠之后,白12上靠(在上面靠)压迫黑7的拆边

白10一靠,交换一招后白12继续靠!在人类常见的下法里,角部定型后压迫黑7的拆边,常用A位的镇和B位的肩冲,而很少有人下白12的上靠。白12这种上靠的手法最常用于腾挪(以弱打强时的一种手法),而适于压迫的场合(图39)通常与图38中的局面有所不同。

图39. 人类常见对局(错小目秀策流形成的开局)中,以上靠压迫三线拆边的手法举例

见图39,黑15上靠压迫白14的三线拆边,这是过去的常见手法,但不同之处在哪里呢?请大家仔细观察图38,其中三线上,黑7和左边黑5间隔四路,黑7和右边的黑3也是间隔四路,再观察图39,其中三线上,白14和上面的白12间隔两路,白14和下面的白8间隔三路。

看出区别了吗?同样是三线的拆边,图39中的白14距离自己两侧的友军,比图38中黑7距离自己两侧友军更近!而用上靠压迫对方密集排布的阵营,我方的风险比较小。因为上靠本身容易把对方撞厚,如果对方的阵营排布密集,那么厚上加厚,只会让对方的棋子更加拥挤,效率变低;如果对方的阵营排布松散,本来可以直接打入进去将对方打散的,现在你让人家变厚,就可能是帮对方补棋了。

当然,道理是这么说,但到底对方的三线棋子,隔着多宽,上靠压迫才合适,这个就难说了。AlphaGo告诉我们,像图38中这么宽,是可以直接压迫上去的!并且效果不错:

图40. 图37和图38中的AlphaGo自对弈棋局后续实战

回头看AlphaGo的实战,白10和白12相继靠之后,白14和白16相继连扳,使出常见的腾挪手法,然后脱先抢到白18的拆边。看到这里,大家都觉得,黑棋右下角两个弯三角明显速度缓慢,白棋布局不错。

布局架势刚摆下来,AlphaGo就开始一通乱靠的定型了,根本不想留变化,然后你还没反应过来,它布局就领先了。这盘棋中白棋的这一串手法确实给我们上了一课。

前面说了,人类也会用上靠去压迫对方拆边,但通常是对方阵营紧密的时候。在越空旷的时候使用这种手法,风险也就越高。所以不是没有人用,但用了也是冒险,你算不清楚那么多的后续变化,也就不敢轻易下判断。可AlphaGo能,所以在AlphaGo的自对弈中,这种在很空旷的情况下上靠压迫对方三线拆边棋子的手法,出现的很多。

人类判断出类似下法有多难呢?我给大家看一个人类找到类似下法的例子,仍然来自吴清源。

图41. 吴清源讲解实战中以四线的上靠压迫对手三线拆边的例子

图41是吴清源的一盘实战,他在自己的著作《吴清源围棋全集》之《中盘战术死活和收官》中讲解了这盘棋中的黑33上靠,说白32压迫黑棋右边时,黑棋正面迎战不好,黑33反过去以上靠压迫对方的三线拆边,是此时的最佳下法。注意,黑33靠住的这个白子,距离左右友军的间隔也是很宽的。

吴清源进行了大量计算,在讲解中给出了12个(他算过的更多)代表性的后续变化图,最复杂的变化图后续变化有30步左右(局部来说这种深度的计算已经足够),来论证黑33是最佳的。

当然,两盘棋的全局情况差别不小,但我说的关键手法却很很神似。对比之下,人类的顶尖棋手经过仔细思考和精密计算,计算几十个高效的变化图、几千步较强逻辑的棋,如果思考过程中没有犯明显的错误,那么最终也许能确定这一步棋是(候选)最佳,可AlphaGo能对20亿个后续变化下成的棋局统计结果,告诉你这一步上靠胜率最高。

......

当然,在这里吴清源所计算的每个变化图的有效性,应该是比AlphaGo的每个经过剪枝的变化图更高的,可是在量级上却差了太多,深度和广度都远远不及。

人类棋手在这种情况下如果还能得到同样的判断,那思考的效率简直就达到人类巅峰的脑力了。柯洁在对AlphaGo的第2局比赛中前半盘的表现,就是这样。

而且,并不是每个棋手都是吴清源或柯洁,他们也不可能在每盘棋的每步棋上都做到这程度的计算和判断。

AlphaGo能。

......

-

对于AlphaGo自对弈的棋谱,因为它喜欢下的变化很少,而且还大多是简明定型的变化,所以能给我们提供参考的信息其实是不多的。

如果要利用AlphaGo研究前半盘,我们需要多多关注它与人类的对局棋谱,甚至必须将它彻底化为工具,对前半盘的变化进行拆棋。那样的话,相信人类对于布局、定式变化、序盘战斗等内容的研究会爆炸式提速。如果只看AlphaGo的自对弈,这懒孩子只挑几个最喜欢下的变化使劲儿下,实在是不够学的。

从序盘手法开始,AlphaGo就开始展示强大的大局观了。到了中盘,AlphaGo对实力的展示越来越明显,可以说是AlphaGo的精华。但内容也越来越复杂,超出了我的能力范围了。

人类也许永远都无法像AlphaGo那样在实战中跑出大量棋局得到高胜率下法,但如果对其中盘表现进行深入研究,我认为将来不是没有可能,研究出人脑可以承受的简化版决策模型,来贴近AlphaGo的决策。所以对于中盘的研究,一样是很有意义的。

-

经过两日的笔耕不辍,我终于完成了这份初步的总结。其中的很多部分,其实是我很早就开始思考的内容。而为了便于大家接受,我也尽量避免犯错,我只挑出了我的思考中相对简单并自认为考虑较为成熟的内容。

我致力于尽量用最浅显的语言来描述,并尽量从涉及到的最基本的内容开始讲起,尽量将难以意会的名词加以解释。但回头来看,这个回答对于初学者甚至不懂棋的外行,可能还是稍嫌不够友好,望谅解。

最后,我认为未来AlphaGo对于围棋的帮助,与其说是我们对其进行研究,不如说我们将之化为工具来研究围棋。自对弈棋谱的价值可能没有我们想象的那么高,人机对弈的必要性却可能超出大家的想象,而利用AlphaGo进行拆棋,是不能错过的光明的未来。

-