上帝移动棋手,棋手移动棋子。 但是,超越上帝的上帝又开始了哪一轮尘土、时间、睡眠和痛苦?
—豪尔赫·路易斯·博尔赫斯
在我撰写这篇专栏文章时,一个名为AlphaGo的计算机程序正在首尔一场备受瞩目的比赛中击败职业围棋棋手李世乭。 李世乭是世界排名前三的棋手之一,拥有最高段位九段。 在这场古老而传统的棋类游戏中,战胜了人类最杰出的代表之一,以压倒性的3比1获胜,还有一场比赛尚未进行。 随着这场失利,计算机在最后一种经典棋类游戏中也超越了人类,围棋以其深度和简洁性而闻名。 一个时代结束了,一个新的时代开始了。 AlphaGo及其最近的胜利所依据的方法,对机器智能的未来具有惊人的意义。
关于支持科学新闻
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻事业: 订阅。 通过购买订阅,您将帮助确保未来能够继续报道有关塑造我们当今世界的发现和想法的具有影响力的故事。
横空出世
AlphaGo登上围棋世界之巅令人震惊,并且与机器下国际象棋的轨迹截然不同。 在10年多的时间里,一个由硬件和软件工程师组成的专业团队(最终被IBM聘用)构建并编程了一台专用超级计算机,名为“深蓝”,它只做一件事——通过每秒评估2亿个棋盘位置来下国际象棋。 在一个广为预期的发展中,IBM团队挑战了当时的国际象棋世界冠军加里·卡斯帕罗夫。 在1996年进行的六场比赛中,卡斯帕罗夫以三胜两平一负的战绩战胜了深蓝,但在一年后的历史性复赛中以2-1/2比3-1/2失利。
国际象棋是一种经典的策略游戏,类似于井字棋、跳棋、黑白棋(奥赛罗)、西洋双陆棋和围棋,玩家轮流放置或移动棋子。 与纸牌游戏(参与者只能看到自己的牌以及所有人的弃牌)不同,玩家可以完全访问所有相关信息,机会不发挥任何作用。
围棋的规则比国际象棋简单得多。 黑方和白方各有装有黑白棋子的碗,并且轮流在19x19的棋盘上放置一枚棋子。 一旦放置,棋子就不会移动。 这种起源于2500多年前中国游戏的目的是完全包围对方的棋子。 这种被包围的棋子被认为是已被俘获,并从棋盘上移除。 从这种纯粹的简单性中产生了伟大的美——黑白双方军队之间从棋盘的角落到中心展开的复杂战斗。
严格的逻辑游戏,例如国际象棋和围棋,可以用可能出现的位置数量来表征,这限制了它们的复杂性。 根据游戏的阶段,玩家必须从少量可能的走法中选择一个,这称为游戏的广度或分支因子b。 如果轮到白方走棋,她需要从b种可能的走法中选择一种; 黑方可以用他自己的b种应对走法来回应其中的每一种。 也就是说,经过一回合后,白方在制定策略时已经需要考虑b乘以b或b²种走法。 假设一场国际象棋游戏平均持续d步(称为游戏的深度),从任何一个起始位置开始的完整博弈树(所有走法、应对走法、再应对走法等等,直到一方获胜)包含大约b乘以b乘以b...,d次连续相乘,或bᵈ个结束位置(所谓的终端节点或搜索树的叶子)。 鉴于典型的国际象棋游戏的分支因子约为35,持续80步,可能的走法数量是巨大的,约为35⁸⁰(或10¹²³),又名“香农数”,以贝尔实验室先驱克劳德·香农的名字命名,他不仅发明了信息论,还在1950年撰写了第一篇关于如何编程机器下国际象棋的论文。 香农数,10¹²³,是巨大的,特别是考虑到在整个可观测宇宙的星系、恒星、行星、狗、树木和人类中只有大约10⁸⁰个原子。 但围棋的复杂性更大,远大于国际象棋。 围棋每回合有250种可能的走法(围棋在19x19的棋盘上下,而国际象棋棋盘小得多,为8x8),典型的游戏深度为150步,因此大约有250¹⁵⁰或10³⁶⁰种可能的走法。 这是一个超乎想象的数字,使得详尽评估所有可能的走法的想法变得完全不切实际。
鉴于这种几乎无限的复杂性,围棋比国际象棋更侧重于识别当成堆的棋子包围空白空间时出现的模式。 玩家有意识或无意识地感知棋子组之间的关系,并谈论诸如棋子的“轻”和“重”形状以及“aji”(日语,意味着潜在的可能性)等看似模糊的概念。 然而,与游戏的正式规则相比,这些概念更难通过算法捕捉。 因此,与国际象棋程序相比,计算机围棋程序举步维艰,并且在常规比赛条件下,没有一个程序能够击败专业的围棋人类棋手。 这种事件被预测至少还需要十年才能发生。
然后,AlphaGo通过今年1月28日发表在世界上最受尊敬的科学杂志之一《自然》杂志上的一篇文章,进入了公众意识。 它的软件由一个20人组成的团队开发,该团队由前国际象棋神童和神经科学家、后来的AI先驱德米斯·哈萨比斯领导,出自他在伦敦的公司DeepMind Technologies,该公司于2014年被谷歌收购。 最令人感兴趣的是,《自然》杂志的文章透露,AlphaGo在2015年10月与欧洲围棋锦标赛冠军樊麾对弈,并以5比0获胜,而且没有让对手人类棋手,这在当时是闻所未闻的。[《大众科学》是施普林格·自然的组成部分。]
揭秘幕后
值得注意的是,AlphaGo的算法不包含任何真正新颖的见解或突破。 该软件结合了良好的传统神经网络算法和机器学习技术,以及出色的软件工程,这些工程运行在功能强大但相当标准的硬件上——48个中央处理器 (CPU) 加上八个图形处理器 (GPU),后者是为游戏社区渲染3D图形而开发的,并且在运行某些数学运算时非常强大。
计算的核心是神经网络,它是生物大脑中神经元回路的远亲。 排列在重叠层中的神经元层处理输入(19x19围棋棋盘上棋子的位置),并使用称为卷积网络的技术,得出游戏中各个方面越来越抽象的表示。 相同的技术使自动图像识别方面的最新突破成为可能——例如,自动标记发布到Facebook的所有图像。
对于任何特定的棋盘位置,两个神经网络协同运行以优化性能。 “价值网络”通过估计给定棋盘位置将导致胜利的可能性来减少搜索的有效深度,而无需追溯搜索树的每个节点,“策略网络”则减少游戏的广度,通过学习为特定位置选择最佳走法,来限制网络为该特定棋盘位置考虑的走法数量。 策略网络生成可能的走法,然后价值网络根据这些走法击败对手的可能性来判断它们。
具有讽刺意味的是,对于这种完全确定性的游戏(其中每一步走法完全由之前的走法决定),最强大的技术是概率性的,这是基于这样的认识:由于树的大部分分支无法实际探索,因此最好几乎随机地选择一些最有希望的分支,并将它们一直评估到最后——即,评估到一方或另一方获胜的棋盘位置。 然后,博弈树中的各个节点可以根据它们最有可能导致胜利的程度进行加权。 像这样一遍又一遍地进行,这种伪随机抽样(称为蒙特卡洛树搜索)即使只探索了完整博弈树的一小部分,也能导致最佳行为。 蒙特卡洛技术——在20世纪40年代后期于洛斯阿拉莫斯国家实验室为设计第一批核武器而诞生——在物理学中得到广泛应用。 蒙特卡洛树技术已成功应用于Crazy Stone,这是最早以相当不错的业余水平下围棋的程序之一。
然而,仅靠蒙特卡洛树搜索本身不足以让这些程序在世界级水平上竞争。 这需要赋予AlphaGo学习能力,最初是通过让它接触以前专业围棋棋手下过的棋局,随后通过使程序能够与自己对弈数百万局,从而在此过程中不断提高其性能。
在第一阶段,一个13层策略神经网络最初是一张白纸——以前没有接触过围棋。 然后,它在从围棋数据库中提取的160,000个真实对局的3000万个棋盘位置上进行了训练。 这个数字代表了任何职业棋手一生中遇到的对局数量还要多得多。 每个棋盘位置都与棋手选择的实际走法配对(这就是为什么这种技术被称为监督学习),并且网络之间的连接通过所谓的标准深度机器学习技术进行调整,以使网络下次更有可能选择更好的走法。 然后,通过给网络一个它以前从未见过的对局中的棋盘位置来测试该网络。 它准确地(虽然远非完美)预测了职业棋手选择的走法。
在第二阶段,策略网络使用强化学习进行了自我训练。 这项技术是行为主义的持久遗产——行为主义是上个世纪上半叶在心理学和生物学中占主导地位的一种思想流派。 它宣称这样一种观点,即生物体(从蠕虫、苍蝇和海蛞蝓到老鼠和人)通过将特定行为与先前的特定刺激联系起来来学习。 当它们一遍又一遍地这样做时,生物体就会在刺激和反应之间建立联系。 这可以完全无意识地完成,使用死记硬背的学习方法。
考虑训练你的狗在听到命令后翻身并“装死”。 你可以通过将这种复杂的行为分解为较小的动作来实现——躺在地上、翻身、将爪子伸向空中。 一旦该动作自发发生,或者因为你向你的狗展示了如何做,并且它试图模仿你,它就会通过赞扬或一小块食物的组合来获得奖励(或在行话中称为“强化”)。 这样做足够多次后,狗最终会在听到命令后装死。
强化学习在多年前已在神经网络中实施,以模仿动物行为和训练机器人。 DeepMind去年以惊人的方式展示了这一点,当时网络被教会如何玩49种不同的Atari 2600视频游戏,包括视频弹球、星际枪手、坦克机器人、公路赛跑者、Pong、太空侵略者、吃豆小姐、异形和蒙特祖玛的复仇。 (预示未来的一件事是,“atari”是一个日语围棋术语,表示即将吃掉一个或多个棋子。)
每次玩游戏时,DeepMind网络都会“看到”相同的视频游戏屏幕,包括任何人类玩家都会看到的当前分数。 网络的输出是操纵杆的命令,用于移动屏幕上的光标。 遵循程序员最大化游戏分数的指令,该算法这样做了,并在成千上万次的试验中弄清楚了游戏规则。 它学会了移动、击中外星飞船并避免被它们摧毁。 对于某些游戏,它实现了超人的性能。 相同的强大强化学习算法被AlphaGo用于围棋,从监督学习步骤后策略网络的配置开始。
在训练的第三个也是最后一个阶段,价值网络(它估计给定棋盘位置可能导致获胜的可能性)使用策略网络选择的3000万个自我生成的位置进行训练。 正是这种自我对弈的功能(人类无法复制,因为它需要棋手的思维分裂成两个),使算法能够不断改进。
AlphaGo的一个特点是,它会选择一种最大化获胜概率的策略,而不管赢多少。 例如,AlphaGo宁愿选择以90%的概率赢两子,也不愿选择以85%的概率赢50子。 很少有人会为了获得微弱但更确定的胜利而放弃稍微冒险的机会来击溃对手。
最终的结果是一个程序,它的性能优于任何竞争对手,并击败了围棋大师樊麾。 然而,樊麾并未跻身世界排名前300名之列——而在顶尖棋手中,他们的能力差异如此之大,以至于即使是毕生的训练也无法使樊麾击败像李世乭这样的人。 因此,根据AlphaGo和樊麾之间公开的五场比赛,李世乭自信地预测他将统治AlphaGo,以五比零或在状态不佳时以四比一获胜。 他没有料到的是,他在首尔面对的程序是樊麾六个月前遇到的程序的改进版本,并通过不懈的自我对弈进行了优化。
深蓝和AlphaGo之间一个有趣的差异是,前者的评估引擎(为任何一个棋盘位置分配正(好)值或负(坏)值)是明确编程的。 这种区别使深蓝的程序员能够在其战术库中添加明确的规则,例如“如果出现这种情况,就执行该操作”。 这对于深蓝的神经网络后代AlphaGo来说是不可能的,在AlphaGo中,所有知识都隐式地编码在网络的“权重”中。
下一步是什么?
深蓝代表了机器的强大力量战胜了人类大脑的胜利。 它的成功几乎完全取决于为此目的而构建的非常快速的处理器。 尽管它战胜卡斯帕罗夫是一件历史性事件,但这场胜利并未带来任何实际应用或衍生产品。 事实上,IBM很快就退役了这台机器。
同样的情况不太可能发生在AlphaGo身上。 该程序运行在现成的处理器上。 为其提供更多的计算能力(通过将其分布在1,200个CPU和GPU的网络上)只会略微提高其性能。 使其与众不同的特点是AlphaGo能够将自身分裂成两个,与自己对弈并不断提高其整体性能。 目前尚不清楚AlphaGo的改进能力是否受到任何限制。 (但愿我们的老式大脑也能如此。) 这可能构成了任何智能系统的核心,研究人员正在追求的圣杯——通用人工智能,在力量和灵活性方面与人类智能相媲美。
哈萨比斯的DeepMind团队很可能正在考虑设计更强大的程序,例如可以从头开始自学围棋的版本,而无需依赖人类对局语料库作为示例,学习国际象棋的版本,可以同时在世界级水平下跳棋、国际象棋和围棋的程序,或者可以应对无限注德州扑克或类似的运气游戏的程序。
哈萨比斯和他的同事们在一个非常值得称赞的举动中,在随附的《自然》杂志出版物中详尽地描述了DeepMind团队用于生成AlphaGo的算法和参数设置。 这进一步加快了全球学术界和工业实验室人工智能研究的疯狂步伐。 为了加强,基于试错学习的算法可以应用于无数具有足够标记数据的问题,无论是金融市场、医疗诊断、机器人技术、战争等等。 一个新时代已经开始,它对就业模式、大规模监控以及日益严重的政治和经济不平等产生了未知但潜在的巨大中长期影响。
AlphaGo对围棋本身有什么影响? 尽管末日预言家持相反意见,但无处不在的国际象棋程序的兴起重振了国际象棋,帮助培养了一代又一代更强大的棋手。 同样的情况很可能发生在围棋界。 毕竟,任何汽车或摩托车都比任何跑步者跑得快的事实并没有消除跑步的乐趣。 参加马拉松比赛的人比以往任何时候都多。 事实上,可以认为,通过消除不断证明自己是最好的需要,人类现在可以为了围棋本身的缘故,更享受这种极其美观和智力的游戏的本质。 事实上,在中国古代,任何有修养的学者和绅士都应该掌握的四艺之一就是围棋。
正如有意义的生活必须为了其内在的原因而被活和被证明一样,围棋也应该为了其内在的价值而下——为了它带来的乐趣。 正如哲学家马克·罗兰兹所说,这种快乐可以呈现多种形式
“有一种专注的快乐,一种完全沉浸在自己所做的事情中的体验。 有一种奉献的快乐,一种专注于行为而不是结果,专注于活动而不是目标的体验。 有一种忍耐的快乐,一种尽可能努力地玩游戏,将你所拥有的一切都投入到游戏中,不留余力的体验,无论这会带来怎样的体验代价。 这是一种反抗的快乐,狂野而激烈:不,你不会击垮我,不会在这里,不会在今天。”
在与新的、更强大的围棋力量的战斗中,代表我们所有人的李世乭展现了这种快乐。 本文献给李世乭。