经上说,人是按着神的形象造的。书上说,机器是按着人的形象造的。那么如果机器的智能叫做“人工智能”,这意味着我们就理当承认,人的智能,应该叫做“神工智能”。
最近几天,这场从妇女节刷屏到打假日,从科技版横扫到体育版的人机大战,赚足了眼球,引爆了舆论,并且以4:1的醒目比分和荡气回肠的棋局铺陈证明,似乎“人工智能”已经胜过了“神工智能”。于是从不屑一顾到当头一棒,最后黯然神伤的,远不仅仅是职业棋手。
因为被称作AlphaGo的这套软件,五个月前才刚刚能击败职业二段欧洲冠军樊麾(虽然这也已经是AI(Artificial Intelligence,人工智能)领域的突破性成就),但无人能想到,它在五个月间就能够“进化”到可以在分先的五番棋中完胜过去十年围棋界的唯一天王李世乭。莫非“进化”真的是可能的吗?AlphaGo真的具备了自我学习、自我成长的能力吗?
虽然国际象棋世界冠军卡斯帕罗夫早在1997年就倒在了IBM“Deep Blue”冰冷的键盘下,然而被认为是人类智力领域最后高地的围棋,能在这么短的时间内就被谷歌的“Deep Mind”如此高冷地攻克,恐怕还是出乎了绝大多数人的预料,除了谷歌自己。这个坚持不作恶的公司,再一次证明了,他们也不作秀。既然敢来挑战,就已经有把握必胜。此次AlphaGo在人类代表李世乭九段面前表现出的实力,完全是碾压性质的,除了一会要提到的第四盘后半段。故此,如今已是韩国棋院名誉九段的AlphaGo,至少在围棋领域完全有资格被称作阿尔法老师。是的,“阿老师”恐怕才是恰当的称呼,而不是什么莫名其妙的“阿法狗”。(注:围棋是上世纪20年代从日本传到西方去的,而日文的围棋(写作“碁”)的英文音译就是“Go”。不过中文的“阿法狗”这个译名,恰好代表了大战未开之前人类对机器的轻蔑态度,犹如《三体》当中地球舰队观测水滴时的态度。)
第一盘,李九段显然没把阿老师放在眼里,上来就以近乎戏谑的方式不按棋谱布局,但结果却恰好证明了阿老师本来就不背谱。但不背谱不等于不靠谱,调戏Crazy Stone、Zen等比较Low的围棋软件的手段,在阿老师面前只能是自取其辱,阿尔法实在比人类多了些真诚,少了些套路,于是李九段中盘脆败。
第二盘,当头反挨了一打狗棒的李九段再也不敢大意,如临大敌,如履薄冰,坚壁清野,步步为营。但这实在并不是他的风格,于是局面便如同小李飞刀扎上坦克,步步为营成了步步惊心,琅琊榜再挨狼牙棒,加之天外飞仙般的“神之一手”已经成了阿老师的日常,于是李世乭再次中盘崩溃。
第三盘,其实已经近乎魂飞魄散的李世乭贾起余勇,以貌似恢复了常态的招法展开了凶猛攻击,然而曾以此风纵横江湖十几年的天王,却在疏而不漏的天网面前无处发力,处处受窘,招招受限,出手就上当,当当都一样。最后李世乭在绝境中根据各界群众意见奋力制造劫争,却在阿老师的完美应对面前帮助谷歌粉碎了外界所谓“人工智能不会打劫”的谣言。李天王终于中盘愤死,轰然倒下。
至此,五局三胜的比赛,大局已定。这是分析后两盘战况的大前提。忽略了这一前提的任何逻辑,中项都不周延。
阿老师在前三盘和第五盘中体现出的风格,迥异于人类惯性思维中的“人工智能一定计算强策略弱、局部强全局弱”的刻板印象,反倒呈现出一种深不可测、高不可攀、妙不可言、美不胜收的“大围棋”风骨,有如全盛期吴清源与巅峰期李昌镐的合体,不时弈出仿佛来自更高维度的佐为式棋魂妙手,繁花似锦同时清要简约,冲淡疏阔却又气象万千。若说它是“围棋上帝”固属僭妄,但若称它“围棋天使”恐怕恰如其分。它在围棋的雅博渡口和人类代表李世乭连番搏斗,终于以它妙到毫巅的手筋拧断了人类貌似强健的腿筋。
同样被天使拧断腿筋的雅各曾拉住天使说:“你不给我祝福,我就不容你去(创32:26)。”之后果然得了祝福,开创了神圣选民的万世千秋。那么,2016年拧断了人类腿筋的阿尔法,究竟会给人类带来祝福还是诅咒?
为了探讨此问题,恐怕还是要从阿老师的运行机理说起。
DeepMind与DeepBlue的区别,恰如智能与体能的区别。国际商用机器(即:IBM)公司的深蓝,的确是一台基于严格规则的暴力穷举“机器”,它遍历8×8的国象棋盘,严格给出每种局面下的最优应对,从第一步开始就抢占先机,并就此冷酷到底,让对手彻底绝望。但这种方法,面对19×19的棋盘就不再有效,因为后者的变化至少是10的600次方,而全宇宙的原子数目也不过才有10的70次方。面对浩渺的围棋宇宙,任何暴力方法都会被这张有361个节点的天元巨网无情镇压。于是谷歌另辟蹊径,不再尝试毫无意义的穷举法,而是祭出了“深度学习神经网络”的最先进人工智能体系,以“归纳”和“概率”这些貌似不够精密不够冷血的方式,迂回逼近了围棋之道的终极真相。落实在阿尔法系统的这一体系,由四大子系统组成,即:“策略网络”(policy network),“估值网络”(value network),快速走子系统,以及蒙特卡洛树搜索(MCTS)。
所谓蒙特卡洛树搜索,以下给出一个相对来说已经算是简短的强行科普:
诸位大都知道我在计算机科学方面的工作主要聚焦于计算方法,也就是称为“算法”的那方面。如果有谁问我,过去十年中在算法研究方面最重要的趋势是什么,我就不得不说,随机算法的显著增长已经证明了它是优胜者。
早在40年代,人们就已经发明了蒙特卡洛算法,这一算法被大量应用于诸如核物理方面的计算工作。一种称为“散列法”(hashing)的技术在50年代开始出现,这一技术提高了信息检索的速度。60年代我们开始研究数据的随机化(randomization)。70年代,我们开始将随机化方法应用于因数分解之类的问题。然后,突然之间随机化方法的理念取得了巨大的进展,因为有一系列的发现在80年代出现了,这得益于随机化方法在组合问题、几何问题、负载均衡问题以及近似值计算问题等方面的应用。
现在我们来到了一个节点,教科书开始对这门科目有所贡献,大学课程多数已将随机算法研究作为了计算机科学课程体系的一部分,通常会开半年到一年。现在我们可以证明,随机化算法让我们在解决某些特定问题时远远快于那些不使用随机数的方法。任何试图解决此类问题的确定性方法都要比采用了随机化算法的方法慢得多。
今天,我会把重点放在一个很不同的方面,主要基于我个人在随机化算法方面的一些体会。1975年我发表了一篇论文,解释了我在60年代大量使用的一个用于估算回溯程序运行时间的方法。今天在座的计算机科学家都明白我所说的回溯意味着什么,因为这是我们在计算机课程中使用的一个典型练习,它主要是为了解决一个经典问题:八皇后问题,这问题是说,如何把八个皇后放在棋盘上并让它们两两之间都不能互相攻击。换句话说,就是任意两个皇后都不能处于同一行、列和斜线。更基本的,我们会要求学生写一个程序,找出在N x N大小的棋盘上放置N个不互相攻击的皇后的所有方法。一个相当好的解法是——如果N不是极大或极小——采用试错法:首先你随便在棋盘上放一个皇后,之后你随便找一个位置放第二个,只要不攻击到第一个就好,如此继续。如果你卡住了,你就回溯一步,然后重新考虑摆法。
如果你用了一个类似这样的试错法算法,经验证明回溯进程有时会运行的惊人的快,大概会在一到两秒中完成。但有时你也会打开程序,然后就等啊等啊等,并且承认最终运行完恐怕需要好些个世纪。想要说清楚这两种极其不同的现象之间的区别不是件容易的事。
所以我搞了一个方法用来预告回溯程序的效率。这是个极其简单的方法,基于掷骰子和随机路径跟随。举例来说,在N皇后问题中,这个理念就体现为要把第一个皇后放在一个随机位置,然后写下你可能的选择的数量。然后如法炮制放下第二个皇后,然后再次写下你有多少种选择。如此下去直到卡住。最后,你得把你写下来的所有数字相乘,然后把得数用某种特定方法加起来。这就得出了要解决N皇后问题所需的计算量的期望值。
如我所说,在1975年我发表这篇论文之前我已经有了很多使用它的经验。实际上它的工作效率好得难以置信。1976年,我在美国科学进步协会的一次会议上做了一个报告,那次会议是在波士顿开的。在题为“应对有限性”的报告中,我在下面这个问题里使用了这种预估方法:在一个11×11格的图形中,有多少种方法能从一角走到对角并且路径不会穿过自身?
如果你在格子上随机走一步,有时你的下一步会有三种选择,有时是两种,但有时你只有一种选择。你可以把这些数字乘起来然后把得数加在一个适当的位置用来得出全部路径数量的预估值。我用计算机这么算了几千次,当我在1976年做那个报告时,我估计角到角的全部路径数量是(1.6±0.3)×10^24
我不认为在我有生之年我能知道这个问题的精确答案。看起来这个数字对我而言太大了。计算机正在变得越来越快,但是10^24 条路径摆在那。在计算机能够搞定10^24这种东西之前,世界还会经历许多次千年虫危机呢(顺便说说,如果你认为千年虫问题很糟糕,那么想象9999年的时候吧,那会糟糕得多——而999,999年将会是个真正的大麻烦!但是即便我们每纳秒能算出一条路径,我们也得花至少三千六百万年去算出所有10^24条路径)。
不过我错了。两年后,Richard Schroeppel,诸位应该都知道的一位杰出的麻省理工校友,用一种可行的方法可以精确算出全部路径。今天我们知道他的发现是一个重要的普遍原则的特例,这种简化之所以可能是因为这个问题的“树宽(treewidth)”很小。事实上现在我们可以在电脑上用两到三秒把这个精确数字算出来,也就是:
1,568,758,030,464,750,013,214,100
让我很大安慰的是,这个数字的确符合(1.6±0.3)×10^24。我不知道,或许我只是比较幸运。但无论如何这就是我研究随机化方法的起点。
(以上内容摘自高德纳(Donald Ervin Knuth)著、郭暮云译《神机漏算》一书第二章(未出版稿)。本书作者高德纳先生是虔诚的基督徒,计算机科学的泰山北斗。)
这便是蒙特卡洛树搜索算法的威力,此次人机大战中的阿尔法系统,用的便是改进了几十年的这同一个算法,所以能够处理大得多的树宽。
而阿尔法系统的另一个重要基础,是“贝叶斯网络”:
“贝叶斯网络是一个加权的有向图,是马尔可夫链的拓展。马尔可夫链保证了网络中的每一个状态只跟与其直接相连的状态有关,而跟与它间接相连的状态没有关系,那么这就是贝叶斯网络。在这个网络中,每个节点的概率,都可以用贝叶斯公式来计算,贝叶斯网络因此得名。
贝叶斯网络极大地克服了20世纪60年代和70年代概率推理系统的很多问题,它目前主导着不确定推理和专家系统中的人工智能研究。而且这种方法允许根据经验进行学习,并且结合了经典人工智能和神经网络最好的部分。所以极大的推动的人工智能领域走向现在我们正处的这个巅峰时代。”
(以上内容引自@沐阳浸月的《从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?》一文)
而所谓贝叶斯网络,其理论体系来自18世纪英国的一位长老会牧师兼数学家,托马斯·贝叶斯。以下为再次强行科普:
贝叶斯在为其论文《论机遇理论屮一个问题的解决》的引言中说:他的目的是“发现一个方法,借此我们能够确定某事件在给定环境下发生的概率,对此环境我们一无所知,仅知在这个环境下,该事件曾经成功了几次,又失败了几次”。严格地说,贝叶斯提的问题是;已知事件M在n=p g次试验屮成功了p次,失败了g次,求M的未知槪率位于给定数a、b之间的概率。他要求解的是关于概率的槪率。在身为牧师的贝叶斯看来,问题中M的概率确定而不能确知,它似乎是上帝的箧中秘珍,人们只能以某种方式接近它。
后人常常把未作任何试验时事件M的概率叫作“先验槪率”,相应地把已有经验证据条件下推算的槪率叫作“后验概率”。其实,在贝叶斯的思想中,并没有这种能与“先验概率”相提并论的“后验槪率”。只有“先验概率”是存在的,确定的,但只是对无限的神而言。有限的人充其量只能根据经验作出某种推测,因此,“后验槪率”并非对“先验概率”的修正,而是人在无可解脱的束缚下追求先验概率唯一可行的方式,是对先验概率的后验测算。这种追求永远达不到目的,因此,人只能限于了解先验槪率位于某一区间的可能性有多大。
贝叶斯的好友普赖斯指出贝叶斯定理能直接用于“从最终因论证神的存在”,他写道:“它(指贝叶斯定理)直截了当并且毫不含糊地向我们表明,事件不管以怎样的次序或周期发生,都有理由认为是来自自然界的稳定原因或规則性,而非源于无规则的机遇。”这里明显地透露出牛顿世界观的髟响,但也在扩大着牛顿的世界观,因为“先验概率”并非由于无知,也并不象征无知,相反它倒是只能属于神的知识。
(引自陈克艰著《上帝怎样掷骰子:因果性、概率与归纳》)
毫不夸张地说,贝叶斯的思想,便是如今阿尔法系统,甚至绝大多数人工智能系统的核心思想。这一核心思想的实质,便是首先承认,那个只属于神的知识(无论叫做“先验概率”还是围棋中的“必胜策略”)只属于神,人类只能采用迂回方法,用统计手段(即MCTS等手段)尽可能逼近它。具体到阿尔法,它的核心运作过程就是:
用MCTS展开全局搜索,为下一步落点进行全局判断,给出估值,然后去繁就简,选择预估胜率最高的分支,修正参数,进行进一步估算,最后借助快速走子系统的帮助,在规定时间内选择全局胜率最高的落点。
这也就解释了为何在与李世乭的对弈中,阿尔法表现出一种惊人的全局观而似乎全不在意一城一地之得失。因为它的设计原则如前所述,本就是为了全局获胜而不是在局部战斗中获胜。这同时是一个有意无意的,对于近年来围棋界重计算、轻格局的功利主义思潮的意味深长的提醒。
因此,同样是为了全局获胜,阿尔法对某些局部不仅是不在意,它有时甚至会在某些局部走出可以被逻辑证明是严格亏损的招法(例如它在第一局中的136手和142手)。但这些招法却又绝对不会影响全局胜负,而是能将局势尽快简明化,以减少计算负担。所以基于同样理由,阿尔法也不保留变化,并尽量避免劫争,虽然这不代表它在这些方面做的不好。
这也是对阿尔法在这五个月中进行的据说三千万盘所谓“左右互搏”式的自我对弈、自我学习过程的描摹。借着不断模拟对弈,对其四大子系统的众多参数进行反复精校,这一过程就叫做深度学习。非要以“进化”来形容,实在是当今语境下一种将错就错的附会。
围棋天使阿尔法,在某些方面、以某种程度,的确体现出了围棋上帝的风范。比如那些貌似业余、失败、愚拙的手段,最终却证明是人类并不能理解的妙着,正如同历史中的上帝及其作为,也常常被人类认作愚拙、失败,但终于在上帝的笑声中,映照出人类理性的轻薄。
不过围棋天使当然并非围棋上帝,如果它非要如此自以为或被以为,就会立刻堕落为魔鬼。阿尔法并非围棋上帝的理由至少有三。
第一,它仍有漏算。而若是上帝来下围棋,祂显然会在每一个局部都做到完美。而这样的完美策略,目前在跳棋、五子棋、国际象棋等完全博弈游戏中已经在策梅洛定理的意义上找到(注:策梅洛定理(英语:Zermelo’s theorem)是博弈论的一条定理,以恩斯特·策梅洛命名。定理表示在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。若运用至国际象棋,则策梅洛定理表示“要么黑方有必胜之策略、要么白方有必胜之策略、要么双方也有必不败之策略”)。
第二,它仍得下棋。这是说,如果上帝来下围棋,祂根本不会给人类具体展开棋局的机会。意思就是:只要贴目规则一确定(比如黑贴7.5目),上帝就可以根据策梅洛定理意义上的理论极限贴目值(这个值目前只有上帝知道,并且在有限的将来很难得出精确解析值)立刻判定棋局胜负,而无需具体展开。
第三,它仍然有限。阿尔法虽然可以借着不断改进算法和升级硬件,将它对人类的领先优势不断扩大,最终绝尘而去,但它的全部境界仍在有限界,即仍和人有可比性。而再大的有限也不是无限,如同再有能力的天使也不是上帝。
所以,此次人机大战的实质,其实是人类几千年围棋历史所积累的经验,与阿尔法的深度学习神经网络,在逼近围棋真相方面的一次精度竞赛。目前来看,胜负已分,并且极可能是人类最后一次能够战胜顶尖AI。
这“最后一次”,我指的当然就是这次对弈的第四局。
MCTS的算法决定了它不是全局穷举系统,而只是根据全局胜率进行的最优决断系统。因此从理论上来说它就有局限,这台神奇的机器在它名副其实的神机妙算之余,的确也有可能神机“漏”算。而李世乭竟真的把握住了这么一次,他在第四局的白78手,犹如武当山下的令狐冲毅然刺向冲虚道长的那一剑,并且就效果而言也同样成了决定胜负的破阵子。事后据Deepmind负责人哈比萨斯说,阿尔法出现这种漏算的几率,是万分之一。也就是说,李世乭捕捉住了这万分之一的获胜机会。对此,人类理应向李九段脱帽致敬。
所以,这个阿尔法击败李世乭的2016年,并非《终结者》和《黑客帝国》中所展现的机器纪元的元年,而应该比作历史上火车第一次击败骏马、火枪第一次击败弓箭之类事件发生的年份。它只是证明,并且淋漓尽致地向人类展示了,通往围棋之道和围棋上帝的路,究竟该是什么方向。职业棋手和围棋爱好者们理应痛定思痛,如痛苦的雅比斯般祈求上帝:“扩张我的境界(代上4:10)”,从此升华棋道,定睛胜负却又超越胜负。这可算是祝福之一。
并且,阿尔法系统暂时还掌握在一个不作恶的良心公司手中,而不是卖贴吧的外卖公司手中。并且前者打算将用在阿尔法中的人工智能,在未来部署在医疗等领域。这可算是祝福之二。因为这所谓的医疗领域,应该不是指莆田系之类。
最后,上帝曾在经上说:“我是阿尔法,我是俄梅戛;我是首先的,我是末后的;我是初,我是终。(启 22:13)”。“我是阿尔法”,这个的确可被牵强附会的说法相信已经由本文得到了部分澄清。但在不致引起歧义的意义上,我们倒可以说,上帝的意志与本性,上帝的无限与权能,借着这台叫做阿尔法的机器,借着这位总结了人类千百年经验、又预告了未来千百年路径的围棋大师,再次向人展示了一次。这便是祝福之三。阿尔法是“始”的意思,而我们还远远看不到“终”在哪里。不过正如常话所说,人的尽头就是神的开头,又如经上所说“敬畏耶和华,是智慧的开端;认识至圣者,便是聪明(箴 9:10)”,人类若真能借着这一次在围棋天使面前的失败,认识到究竟应当如何敬畏和认识围棋的上帝并万有的上帝,这便是最大的祝福了。
郭暮云
2016年3月16日星期三,谷李人机大战五番棋结束次日