围棋之神隐退江湖

随着 AlphaGo 大胜柯洁,我想围棋这个曾经被认为是 AI 短板的智力游戏已经不再成为一个问题。不过似乎从哲学上来看,这个问题远远没有被解决。通常的棋类博弈都可以看成一个 graph 上的搜索问题,棋盘的状态对应图的顶点,而棋手选择的 move 作为连接两个顶点的边。对于象棋之类的,合法的移动较少(每个类型的子都会有不同的约束),棋盘也比较小,在往常博弈的过程中简单的评价方式已经比较准确的反应了每种子的重要程度,因此可以比较容易根据己方对方剩余棋子的价值来评估每一个 move 之后的损失或者收益。而常见的搜索方法也就是在图上进行“有限”深度的遍历,寻求一条“理性”博弈后己方收益最大的路径。

这种人类理性思维的延拓以及程序实现成为了早期 AI 的基本原理。但是很显然面对围棋这种棋子无差异,棋盘巨大,最终也并不是按照某颗子是否存活断定输赢的游戏,它导致了两个传统算法的核心问题:

  • 搜索空间过于巨大,如果不进行有效的剪枝,是不可能在有限的比赛时间里完成有意义的搜索工作的
  • 评估本身的困难,如果看职业棋手的评估,往往也只出现在某些局部逐步的明朗后,根据规则计数才成为可能,而对于早期的评估基本上没有太大的意义

本质上 AlphaGo 的成功也正是寻找到了对于这两个问题的解决方案。然而实际上这种方案的出现仍然植根于职业棋手的思维方式。与一般的棋类活动不同的是,围棋选手通常用比较“虚”的东西来描述棋局的优劣,这些东西往往来自他们过去的经验,有的可以定量化,更多的似乎是“直觉”。AlphaGo 比较有意思的做法大概也就在于使用 deep learning 这套“玄学”来复制人类的“玄学”吧。

比较有意思的大概是人类棋手对于 AlphaGo 的认知。他们经常会用情感色彩的东西来描述这个高深莫测的对手,从“棋力”的角度来看,人类在短短几小时里能够推演出来的 variations 与计算机相比还是少了太多太多,因此输棋几乎已经是必然。人类的唯一希望只是在于对于“价值”的评估上,李世石唯一赢得的那局也是因为这个;但是现在的 AlphaGo 通过自我博弈探索自己的弱点修正了“评估”上的“瑕疵”(或者还有别的瑕疵,这大概也是 DeepMind 为何年初 60 大胜之后还要再来寻找柯洁比试一次)。其实如果说 DeepMind 真希望做一次更为合理的比试的话,应该给棋手看到 AlphaGo 的评估网络的输出,这才是人类真正能够发挥自己优势的地方。至于那 50 局的棋谱怕是杯水车薪反而误导职业选手了吧。

最后说一点关于围棋本身的哲学。评判输赢在于最终占有目数多少却不在于多多少目,这与 SVM 当年给人的感觉何曾相似,与常见的最大似然不同,要的仅仅是两类的 margin。目标函数的选择往往是哲学上的区别,而哲学的区别表现为行为方式的不同,造成理解上的隔阂。不少人抱怨 AlphaGo 在收官的阶段通常下一些不那么犀利的行棋方式,特别 pair match 时落后一方古力配对的 AlphaGo 甚至被认为在自杀,其实理解了哲学上的区别就很容易理解。收官阶段很多棋尽管仍然有一定的活动空间,但是前期的差距基本已经定型,如果 AlphaGo 已经计算出来无论怎么折腾它有应对的策略,即便损失一定的优势,但是避免了更加激进策略下可能翻盘的可能性,那么选择更为稳妥的落子当然是不违背本身的哲学的;在已经知道必输无疑的情况下,避免使用激进的策略无非也是出于同一哲学思想。

人在与人的博弈策略的转换是一个额外的因素。不是每一个人在针对不同对手的时候都会使用相同的策略的。哲学决定了目标函数,策略只是实现哲学的手段。人类能够透过策略看到哲学,进而把握对方根基上的弱点而调整自己的哲学与其相抗衡。对于简单的棋局,也许只有唯一合适的哲学。有没有一个问题本身是不存在最优哲学而要求参与者必须转换自己的策略来增强自己的胜算的呢?石头剪刀布?还是说任何问题都一定存在一个最优的目标函数,只是我们无法 formulate 出来。

围棋之神隐退江湖