第1幕
因果
悬搁宁静
难以计算的计算
有些奋死一搏,可能是悄无声息的。
1939年,二战爆发。随后的六年,将有近一亿人死于这场有史以来最残酷的世界大战。同年9月,另一场看不见硝烟的战争静静拉开了帷幕。这场战争像是一次武林高手的围殴事件:江湖排名前十的日本顶尖围棋高手轮番上阵,欲置一名弱不禁风的华裔青年于死地。那是吴清源孤身一人来到日本的第十一个年头,他大病初愈,在家国恩仇的缝隙间苦苦求活。
决斗规则,是残酷的“擂争十番棋”,好比武士之间真刀真枪的生死对决。这绝非打比方,历史上的十番棋,败者真的会家破人亡:
• 正保年间,为争夺名人棋所之位,二世本因坊算悦与二世安井算知赌上生死,呕心沥血,耗时九年而只下了六局;
• 宽文年间,为了挑战当时的名人棋所,三世本因坊道悦做好输了就受流放远岛之刑的准备;
• 元文年间,七世本因坊秀伯与井上因硕决斗,秀伯中途吐血倒下;
• 天保年间,赤星因彻挑战十二世本因坊丈和,吐血,死于26岁;
• 十四世本因坊秀和大战幻庵因硕,第一局耗时九天,因硕两度吐血;
• 水谷缝治和高桥杵三郎擂争较量,水谷折寿而亡。
面对“悬崖上的决斗”,背后万丈深渊的吴清源别无选择。
1939年9月,第一场十番棋决斗拉开帷幕,由木谷实对吴清源,史称“镰仓十番棋”。第一局。木谷实执黑,不贴目。50年后,初三暑假自学围棋的我,在凉席上摆下这盘棋,仿佛凭吊了一场古老的战役。
面对黑棋的两个小目,吴清源起手两个(白4和白6)二间高挂,相当罕见。黑9挺起时,白4相当于开局肩冲无忧角,亦不寻常。当黑13三路拐时,白14居然置之不理,在左下大飞守角。当时我对此开局颇感疑惑,因为白棋的着法与我学的完全不一样,按理说,挂完角,要拆边。
如果说这是因为棋谱来自50年前,那么为什么我又会感受到一股强烈的来自未来的气息?又过了27年,时间来到2016年,围棋AI(人工智能)阿尔法狗横空出世,碾轧人类,彻底重新定义了围棋。
有人用AI研究了这盘古老的对局。强大的AI如何评判近80年前的着法呢?结果令人震撼:上图中奇怪的“白14”脱先守角,是AI的第一推荐!其后的关键几手,也与AI的着法吻合。而最耀眼的,当数如下一手。
如上图所示,白棋又在下方肩冲,在右侧觑,快速展开,步调飘逸,是浓浓的AI风格。这时,吴清源走下了白16。少年的我摆下这一手时,愣了好一会儿。这一手棋,你很难说它是虚还是实,是厚还是薄,是攻还是守,是连还是围。总之,白16就像宇宙间的一颗行星,悬搁于宁静的夜空,轻盈却刺痛,缥缈而夺目。这一手,又是AI的第一推荐!
就这样,开局不过五十余手,吴清源执白棋,在黑棋不用贴目的巨大劣势下(现在比赛中黑棋需要贴六目半),没有吃对方一个子(甚至木谷实也没走错什么棋),就神不知鬼不觉地反超了强大的敌手。孤独探索棋艺的吴清源仿佛是AI穿越回近百年前,下出了天才般的妙局。
围棋被视为人类完美博弈游戏的巅峰,其早期发明或是为了研究宇宙(占星术),或是为了演练排兵布阵。围棋既有传统意义上“东方思维”的感觉,又有所谓西方思维的计算。在东亚以外,作为最聪明的智力游戏,围棋是著名大学教授们的最爱,例如电影《美丽心灵》里的纳什。
西方人更感兴趣的是围棋“难以计算的计算”之魅力。如何教会计算机下围棋,成为科学家们一个里程碑式的超级目标。《未来终章》将围棋AI的发展分为四个阶段。
第一阶段:黎明时代(1969—1984年)
人们开始设计最基本的围棋软件,棋力只有38级(“级”是越大水平越低,“段”是越大水平越高)。
第二阶段:手工业时代(1985—2005年)
这时的围棋软件有点儿像填鸭式教育,既要靠开发者对围棋的理解,又要输入大量内容。这一阶段的两个关键算法与国际象棋程序的原理接近:(1)极小化极大算法,意思是一步“最大化自身利益”,下一步“最小化对手利益”,如此循环;(2)评估函数,用计算机评估局面,判断优劣,需要一个量化的评估函数来代替人类“感觉”的输赢。
上述方法对于国际象棋非常管用,对于围棋却很难,因为围棋的“评估函数”非常复杂。人们甚至认为,围棋里无法感觉的部分,是很难被量化的,所以计算机下围棋不靠谱。
第三阶段:蒙特卡洛时代(2006—2015年)
蒙特卡洛法也被称为统计模拟法、统计试验法,把概率现象作为研究对象的数值模拟方法,是按抽样调查法求取统计值来推定未知特性量的计算方法。最常见的例子是测圆周率。如下图所示,在这个正方形内部,随机产生10000个点[即10000个坐标对(x, y)]。什么叫随机产生?简化的说法就是,胡乱在该正方形的上方扔10000粒沙子,任其随机地落在正方形上。听起来像赌徒扔色子?没错,这就是其名字的由来——蒙特卡洛赌场。
随后,计算它们与中心点的距离,从而判断是否落在圆的内部。如果这些点均匀分布,那么沙子的数量应该与面积成正比。因为图中圆形与正方形的面积比例是π/4,所以圆内的点应该占到所有点的 π/4。于是,我们数一下沙子的数量,就能得出π的数值。我喜欢把蒙特卡洛法称为“聪明的笨方法”。厉害的人或者机构,很多是因为找到了自己的“聪明的笨方法”。
计算机如何用蒙特卡洛法下围棋?听起来非常不靠谱:在当前局面,让计算机“随机”地“试下模拟”到终局,得到一个胜败的数据;重复以上模拟很多次;根据统计数据,选择获胜概率最大的那一手棋。
是不是像上面的扔沙子行为?这就怪了,明明是地球上最聪明的智力游戏,怎么能用随机模拟出来的概率去“蒙”呢?看似是用“近似解”替代了“最优解”,蒙特卡洛法透露了这样一种智慧:模糊的精确,好过精确的模糊。
然而,蒙特卡洛法也有如下致命弱点:看不清复杂死活和对杀;后盘容易出错;当胜率低于50%时易“自暴自弃”。
第四阶段:阿尔法狗时代(2016年以后)
围棋AI战胜人类,靠的是模仿人类的直觉。阿尔法狗是深度学习的杰作。深度学习是机器学习的一种。深度学习的概念源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表达。研究深度学习的动机在于建立模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如,图像、声音和文本等。
阿尔法狗起初的版本,还使用了数百万人类围棋专家的棋谱,并通过强化学习进行自我训练。而到了阿尔法元这个版本,它已经不再需要人类的数据了。有种说法是:深度学习是“小孩子的AI”,因为其看上去像小孩子学习,看起来漫不经心、乱七八糟,效率却相当惊人。想想看,孩子学说话,或者玩儿玩具,是不是像学习天才?阿尔法狗将深度学习和蒙特卡洛树搜索做了巧妙结合,从而夺下了人类最后一个(完美博弈)智力游戏高地。2016年,阿尔法狗以碾轧优势战胜世界冠军李世石。这一时刻,此前人们预测还需要20~50年才能到来。