人工智能计划AlphaZero如何掌握其游戏|纽约人
几周前,谷歌人工智能子公司DeepMind的一组研究人员在科学杂志上发表了一篇论文 ,描述了用于玩游戏的人工智能。虽然他们的系统通用性足以适用于许多双人游戏,但研究人员已经专门针对Go,国际象棋和将棋进行了改编(“日本国际象棋”);没有超出每场比赛规则的知识。起初它随机移动。然后它开始通过自我游戏来学习。在九个小时的过程中,该计划的国际象棋版本在一大堆专门的谷歌硬件上进行了四四百万次游戏。两个小时后,它开始比人类演奏者表现更好;四点之后,它击败了世界上最好的国际象棋引擎。
这个名为AlphaZero的节目源自AlphaGo,这是一款以2016年3月击败世界上最佳Go玩家Lee Sedol而闻名的人工智能.Sedol的失败令人震惊。在今年早些时候在Netflix上发布的纪录片“AlphaGo”中,电影制作人跟随开发人工智能的团队及其人类对手,他们一直致力于游戏。我们看着这些人经历了一种新的悲伤阶段。起初,他们没有看到他们如何输给一台机器:“我相信人类的直觉仍然太高,人工智能无法赶上,”塞多尔说,在他与AlphaGo的五场比赛前一天。然后,当机器开始获胜时,会出现一种恐慌。在一个特别痛苦的时刻,Sedol在失去第一场比赛后承受压力,从桌子上站起来,让他的时钟继续运转,走到外面抽香烟。他望向首尔的屋顶。 (在互联网上,有超过五千万人在观看这场比赛。)与此同时,人工智能不知道其对手已经走到哪里,他们的举动是评论员称之为创意,惊人和美丽。最终,Sedol输了1-4。在可以接受之前,有抑郁症。他在一次新闻发布会上说:“我想为无能为力而道歉。”最终,Sedol和Go社区的其他成员开始欣赏这台机器。 “我认为这将为Go带来新的范例,”他说。欧洲冠军范辉同意了。 “也许它可以向人类展示我们从未发现过的东西。也许它很漂亮。“
AlphaGo是其创作者的胜利,但仍然不满意,因为它非常依赖人类的Go专长。人工智能通过尝试模仿世界级的玩家来了解应该做出哪些动作。它还使用了一套手动编码启发式方法,以避免在游戏中展望未来时出现的最大错误。对于构建AlphaGo的研究人员来说,这种知识就像拐杖一样。他们开始构建一个新版本的AI,它本身就是一种“白板”。
结果,AlphaGo Zero,在2017年10月发表的一篇论文中有详细说明,因为它对超越规则的Go缺乏了解。这个新计划的知名程度要低得多;也许你只能这么多次地要求全世界的关注。但在某种程度上,这是一项更为卓越的成就,一项与Go完全无关的成就。事实上,不到两个月后,DeepMind发布了第三篇论文的预印本 ,表明AlphaGo Zero背后的算法可以推广到任何两人,零和完美信息游戏(也就是说,那里的游戏)没有隐藏的元素,比如扑克中的面朝下的牌)。 DeepMind从名称中删除了“Go”并命名为新系统AlphaZero。它的核心是一个如此强大的算法,你可以赋予它人类最丰富和研究最多的游戏规则,并且在那天晚些时候,它将成为有史以来最好的游戏。也许更令人惊讶的是,这个系统的迭代也是迄今为止最简单的。
典型的国际象棋引擎是经过几十年的反复试验而得到的调整和垫片的大杂烩。世界上最好的引擎,Stockfish,是开源的,它通过达尔文的一种选择变得更好:有人提出了一个想法;在有想法的版本和没有它的版本之间玩了成千上万的游戏;最好的版本获胜。因此,它不是一个特别优雅的程序,编码人员很难理解。程序员对Stockfish所做的许多改变都是以国际象棋而非计算机科学的形式制定的,并且关注如何评估董事会中的特定情况:骑士应该值得2.1分还是2.2分?如果它在第三级,并且对手有一个相反颜色的主教怎么办?为了说明这一点,DeepMind的研究主管David Silver曾在Stockfish上列出了移动部件。其中有五十多个,每个都需要大量的代码,每个都有一点来之不易的国际象棋奥秘:反向移动启发式;已知结束游戏的数据库; Doubled Pawns,Trapped Pieces,Rooks on(Semi)Open Files等评估模块;用于搜索可能移动树的策略,例如“抽吸窗口”和“迭代加深”。
相比之下,AlphaZero只有两部分:神经网络和称为蒙特卡罗树搜索的算法。 (在对游戏圣地的一种认可中,数学家将涉及一些随机性的方法称为“蒙特卡罗方法”。)MCTS背后的想法,正如人们常知的那样,像国际象棋这样的游戏实际上是一种可能性的树。如果我把我的车移到d8,你可以抓住它或者让它成为可能,此时我可以推动一个典当或移动我的主教或保护我的女王。 。 。 。麻烦的是,这棵树非常快速地变得非常大。没有多少计算能力足以完全搜索它。专业的人类玩家是一位专家,正是因为她的思维自动识别树的基本部分并将注意力集中在那里。计算机,如果要竞争,必须以某种方式做同样的事情。
国际象棋评论员称赞AlphaZero,宣称发动机“像人类一样起火”。
照片由DeepMind Technologies提供
这就是神经网络的用武之地.AlphaZero的神经网络作为输入接收游戏最后几个动作的棋盘布局。作为输出,它估计当前玩家获胜的可能性,并预测哪些当前可用的动作可能最佳。 MCTS算法使用这些预测来决定在树中的聚焦位置。例如,如果网络猜测“骑士接受主教”可能是一个很好的举动,那么MCTS将花费更多的时间来探索这一举动的后果。但是它通过一点点“探索”来平衡这种对有前景的行动的“利用”:它有时选择它认为不可能取得成果的行动,以防万一。
起初,指导这种搜索的神经网络是相当愚蠢的:它或多或少随机地进行预测。因此,蒙特卡罗树搜索开始做一个非常糟糕的工作,专注于树的重要部分。但AlphaZero的天才在于它如何学习。它需要这两个半工作部件并让它们互相磨练。即使一个愚蠢的神经网络在预测哪些动作会起作用方面做得不好,在游戏树中向前看仍然是有用的:例如,在游戏结束时,MCTS仍然可以了解哪些位置实际上会带来胜利,至少在某些时候。然后可以使用该知识来改进神经网络。当游戏结束,你知道结果时,你会看看神经网络为每个位置预测的内容(比如说,最好的移动有80.2%的几率),并将其与实际发生的情况进行比较(例如,这个百分比更像是60.5);然后,您可以通过调整其突触连接来“纠正”您的神经网络,直到它更喜欢获胜的移动。实质上,所有MCTS的搜索都被提炼为神经网络的新权重。
当然,网络稍微好一些,搜索得到的误导性稍差 – 这使得它可以更好地搜索,从而提取更好的信息来训练网络。在它上面,在一个反馈循环中,非常快速地向着已知能力的高原进行加速。
当AlphaGo Zero和AlphaZero论文发表时,一小群爱好者开始在博客文章和YouTube视频中描述这些系统并构建他们自己的模仿版本 。这项工作大部分都是解释性的 – 它源于业余的学习和分享的冲动,这首先引起了网络的兴趣。但是,为了大规模地复制这项工作,也出现了一些努力。毕竟,DeepMind论文仅描述了世界上最伟大的围棋和国际象棋游戏项目 – 他们没有包含源代码,而且该公司还没有将这些程序自己提供给玩家。宣布胜利后,其工程师已经离开了这个领域。
Gian-Carlo Pascutto是一位在Mozilla公司工作的计算机程序员,拥有建立竞争性游戏引擎的记录,首先是国际象棋,然后是Go。他跟随最新的研究。随着蒙特卡罗树搜索和神经网络的结合成为Go AI的最先进技术,Pascutto构建了世界上最成功的开源Go引擎 – 首先是Leela ,然后是LeelaZero–它反映了DeepMind取得的进步。麻烦的是,DeepMind可以访问谷歌庞大的云,而Pascutto却没有。为了训练它的Go引擎,DeepMind使用了五千个专门为神经网络计算设计的谷歌“Tensor Processing Units”芯片 – 为期十三天。要在他的桌面系统上做同样的工作,Pascutto必须运行它一千七百年。
为了弥补他缺乏计算能力,Pascutto分发了这项工作。 LeelaZero是一个联邦系统:任何想要参与的人都可以下载最新版本,捐赠他拥有的任何计算能力,并上传他生成的数据,以便稍微改进系统。分布式的LeelaZero社区已经让他们的系统对抗自身超过一千万个游戏 – 比AlphaGo Zero多一点。它现在是最强大的现有Go引擎之一。
不久之后,这个想法被延伸到国际象棋。去年12月,当AlphaZero预印本发布时,“它就像一枚炸弹击中了社区,”加里林斯科特说。研究过Stockfish的计算机科学家Linscott利用现有的LeelaZero代码库以及AlphaZero论文中的新思想创建了Leela Chess Zero 。 (对于Stockfish,他已经开发了一个测试框架,以便将引擎的新想法分发给一群志愿者,从而更快地进行审查;分发神经网络的培训是下一步自然而然。)理清并进行有根据的猜测,以了解DeepMind团队从他们的论文中遗漏的细节,但在几个月内,神经网络开始改进。国际象棋世界已经沉迷于AlphaZero:国际象棋网站上的帖子庆祝引擎;评论家和大师凝视着那个DeepMind曾与他们的论文公布的AlphaZero游戏屈指可数,宣称这是“如何棋应该被打,”发动机“中扮演像火人。”很快,LC0,如里拉国际象棋零成名,吸引了数百名志愿者。由于他们贡献了他们的计算机能力和源代码的改进,引擎变得更好。今天,一位核心投稿人怀疑距离超越干鱼仅仅几个月。不久之后,它可能会比AlphaZero本身更好。
当我们通过电话交谈时,林斯科特惊叹于像他一样的项目,这曾经是一位才华横溢的博士生几年,现在可以在几个月内由一位感兴趣的业余爱好者完成。用于神经网络的软件库允许仅使用几十行代码复制世界一流的设计;已经存在用于在一组志愿者中分配计算的工具,并且诸如Nvidia的芯片制造商已经将廉价且功能强大的GPU(图形处理芯片)放入数百万普通计算机用户的手中,这些芯片非常适合于训练神经网络。像MCTS这样的算法非常简单,可以在一两个下午实现。你甚至不需要成为你正在构建引擎的游戏专家。当他建立LeelaZero时,Pascutto没有玩Go大约20年。
DeepMind的研究负责人大卫·西尔弗(David Silver)指出,他公司最近的游戏工作的核心是一个看似矛盾的事情:它的程序越简单 – 从AlphaGo到AlphaGo Zero再到AlphaZero–他们表现得越好。 “可能是我们追求的原则之一,”他在2017年12月的一次演讲中说道,“这个想法是通过减少算法的复杂性,使我们变得更加通用。”从他们的Go引擎中删除了Go知识,他们制作了一个更好的Go引擎 – 同时,一个可以玩shogi和国际象棋的引擎。
从来没有明显的事情会这样。 1953年,帮助创建现代计算机的艾伦·图灵写了一篇名为“数字计算机应用于游戏”的短文。在其中,他开发了一个国际象棋程序,“基于对我的思维过程进行内省分析。”很简单,但在它的情况下,简单并不是一种美德:像图灵,他不是一个天才的棋手,它错过了游戏的深度,并没有发挥得很好。即便如此,图灵还是猜测“一个人不能用一台机器来制作一个比一个人更好的游戏”的想法是一个“相当狡猾的观点。”尽管说“没有动物可以吞下比自己更重的动物” ,“很多动物都可以。同样地,图灵建议,在一个糟糕的国际象棋选手制作国际象棋节目时,可能没有任何矛盾。一种诱人的方式是让程序自学。
AlphaZero的成功似乎证实了这一点。它具有简单的结构,但它能够学习它所玩游戏的惊人深度特征。在AlphaGo Zero论文的一个部分中,DeepMind团队说明了他们的AI在一定数量的训练周期后如何发现主要玩家众所周知的策略,仅在几个周期之后丢弃它们。看到人类最好的想法在通向更好的道路上的过程中,这是奇怪的,有点令人不安;它以一种看到一台物理机器超过我们的方式击中了家附近 – 推土机改变了一大堆地球,说 – 不是。在最近的一篇科学论文中 ,前国际象棋冠军加里·卡斯帕罗夫(Garry Kasparov)在1997年输给了IBM的Deep Blue,他认为AlphaZero不会以反映可能的系统性“程序员优先级和偏见”的方式下象棋。相反 – 尽管每次移动的搜索位置远远少于传统的引擎 – 它以开放,激进的方式播放,似乎从策略而不是策略来思考,就像一个有着不可思议的视觉的人。 “因为AlphaZero自己编程,”卡斯帕罗夫写道,“我会说它的风格反映了真相。”
当然,像人类一样下棋,与像人类一样思考国际象棋,或像学习象棋一样。有一句古老的说法是玩游戏是人工智能的果蝇 :因为果蝇是生物学家,所以Go和象棋这样的游戏是研究智力机制的计算机科学家。这是一个令人回味的类比。然而,下棋的任务可能是,一旦它被转换成在游戏树中每秒搜索数万个节点的任务,就会运用与我们最关心的智能不同的智能。以这种方式玩,国际象棋可能更像是地球运动而不是我们想象的:这种活动最终不是我们的强项,所以不应该是我们灵魂所珍视的一切。要学习,AlphaZero需要比人类玩更多的游戏 – 但是,当它完成时,它就像天才一样。它通过深度搜索树比一个人更快地依赖于搅动,然后使用神经网络将它发现的东西处理成类似于直觉的东西。当然,该计划教给我们一些关于情报的新知识。但它的成功也强调了世界上最优秀的人类玩家可以通过一个非常不同的过程看到多少 – 一个基于阅读,谈话和感觉的过程,除了玩耍。最令人惊讶的是,我们人类在游戏中的表现与我们现在为机器制作的游戏一样好。