新浪体育 综合体育

AlphaZero8小时通关棋类

新浪综合

关注

【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

原创                                                            2017-12-07                                        闻菲                                        新智元                                                        








  新智元报道  

来源:ArXiv,知乎

作者:闻菲,刘小芹,常佩琦

【新智元导读】或许“智能爆炸”不会发生,但永远不要低估人工智能的发展。推出最强围棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他们自己,也刷新了世人对人工智能的认知。12月5日,包括David Silver、Demis Hassabis等人在内的DeepMind团队发表论文,提出通用棋类AI AlphaZero,从零开始训练,除了基本规则没有任何其他知识,4小时击败最强国际象棋AI、2小时击败最强将棋AI,8小时击败李世石版AlphaGo,连最强围棋AI AlphaGo Zero也不能幸免:训练34小时的AlphaZero胜过了训练72小时的AlphaGo Zero。


由于是通用棋类AI,因此去掉了代表围棋的英文“Go”,没有使用人类知识,从零开始训练,所以用Zero,两相结合得到“AlphaZero”,这个新AI强在哪里?新智元带来全面解读。







世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久——不是因为大家都去看谁(没)跟谁吃饭了,而是DeepMind再次迅速超越了他们自己,超越了我们剩下所有人的想象。


12月5日,距离发布AlphaGo Zero论文后不到两个月,他们在arXiv上传最新论文《用通用强化学习算法自我对弈,掌握国际象棋和将棋》(Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm),用看似平淡的标题,平淡地抛出一个炸弹。


其中,DeepMind团队描述了一个通用棋类AI“AlphaZero”,在不同棋类游戏中,战胜了所有对手,而这些对手都是各自领域的顶级AI:


战胜最强国际象棋AI Stockfish:28胜,0负,72平;

战胜最强将棋AI Elmo:90胜,2平,8负;

战胜最强围棋AI AlphaGo Zero:60胜,40负




其中,Stockfish是世界上最强的国际象棋引擎之一,它比最好的人类国际象棋大师还要强大得多。与大多数国际象棋引擎不同,Stockfish是开源的(GPL license)。用户可以阅读代码,进行修改,回馈,甚至在自己的项目中使用它,而这也是它强大的一个原因。


将棋AI Elmo的开发者是日本人泷泽城,在第27届世界计算机将棋选手权赛中获得优胜。Elmo的策略是在对战中搜索落子在哪个位置胜率更高,判断对战形势,进而调整策略。Elmo名字的由来是electric monkey(电动猴子,越来越强大之意),根据作者的说法也有elastic monkey(橡皮猴子,愈挫愈勇)之意。



而AlphaGo Zero更是不必介绍,相信“阿法元”之名已经传遍中国大江南北。而AlphaZero在训练34小时后,也胜过了训练72小时的AlphaGo Zero。


AlphaZero横空出世,网上已经炸开了锅,Reddit网友纷纷评论:AlphaZero已经不是机器的棋了,是神仙棋,非常优美,富有策略性,更能深刻地谋划(maneuver),完全是在调戏Stockfish。


看着AlphaZero赢,简直太不可思议了!这根本就不是计算机,这压根儿就是人啊!


Holy fu*ck,第9场比赛太特么疯狂了!


DeepMind太神了!


我的神啊!它竟然只玩d4/c4。总体上来看,它似乎比我们训练的要少得多。


这条消息太疯狂了。


而知乎上,短短几小时内也有很多评论:


知乎用户fffasttime:专治各种不服的DeepMind又出师了,但这次的主攻的内容不再是围棋了,而是所有的棋类游戏。……之前AlphaGo把围棋界打得心态崩了,而现在AlphaZero赢的不光是人类棋手,还包括各路象棋的AI作者。


知乎用户陆君慨:棋类的解决框架一直都是基于 minimax + heuristic。以前围棋难是因为minimax在有着很大分支的游戏上无法产生足够的深度,并且heuristic难以设计。Alphago Zero时候就已经证明了cnn很适合做heuristic,而mcts也可以解决深度问题。那为什么别人不做呢?


因为贫穷限制了我们的想象力。


有钱真的是可以为所欲为。






比AlphaGo Zero更强的AlphaZero来了!8小时解决一切棋类!




知乎用户PENG Bo迅速就发表了感慨,我们取得了他的授权,转载如下(知乎链接见文末):


读过AlphaGo Zero论文的同学,可能都惊讶于它的方法的简单。另一方面,深度神经网络,是否能适用于国际象棋这样的与围棋存在诸多差异的棋类?MCTS(蒙特卡洛树搜索)能比得上alpha-beta搜索吗?许多研究者都曾对此表示怀疑。


但今天AlphaZero来了(https://arxiv.org/pdf/1712.01815.pdf),它破除了一切怀疑,通过使用与AlphaGo Zero一模一样的方法(同样是MCTS+深度网络,实际还做了一些简化),它从零开始训练:


4小时就打败了国际象棋的最强程序Stockfish!

2小时就打败了日本将棋的最强程序Elmo!

8小时就打败了与李世石对战的AlphaGo v18!


在训练后,它面对Stockfish取得100盘不败的恐怖战绩,而且比之前的AlphaGo Zero也更为强大(根据论文后面的表格,训练34小时的AlphaZero胜过训练72小时的AlphaGo Zero)。


这令人震惊,因为此前大家都认为Stockfish已趋于完美,它的代码中有无数人类精心构造的算法技巧。


然而,现在Stockfish就像一位武术大师,碰上了用枪的AlphaZero,被一枪毙命。


喜欢国象的同学注意了:AlphaZero不喜欢西西里防御。


训练过程极其简单粗暴。超参数,网络架构都不需要调整。无脑上算力,就能解决一切问题。


Stockfish和Elmo,每秒种需要搜索高达几千万个局面。


AlphaZero每秒种仅需搜索几万个局面,就将他们碾压。深度网络真是狂拽炫酷。



当然,训练AlphaZero所需的计算资源也是海量的。这次DeepMind直接说了,需要5000个TPU v1作为生成自对弈棋谱。


不过,随着硬件的发展,这样的计算资源会越来越普及。未来的AI会有多强大,确实值得思考。


个人一直认为,MCTS+深度网络是非常强的组合,因为MCTS可为深度网络补充逻辑性。我预测,这个组合未来会在更多场合显示威力,例如有可能真正实现自动写代码,自动数学证明。


为什么说编程和数学,因为这两个领域和下棋一样,都有明确的规则和目标,有可模拟的环境。(在此之前,深度学习的调参党和架构党估计会先被干掉...... 目前很多灌水论文,电脑以后自己都可以写出来。)


也许在5到20年内,我们会看到《Mastering Programming and Mathematics by General Reinforcement Learning》。然后许多人都要自谋出路了......




一个通用强化学习算法,横跨多个高难度领域,实现超人性能




David Silver曾经说过,强化学习+深度学习=人工智能(RL+DL=AI)。而深度强化学习也是DeepMind一直以来致力探索的方向。AlphaZero论文也体现了这个思路。论文题目是《用通用强化学习自我对弈,掌握国际象棋和将棋》。可以看见,AlphaGo Zero的作者Julian Schrittwieser也在其中。


摘要:国际象棋是人工智能史上最被广泛研究的领域。最强大的象棋程序是基于复杂的搜索技术、特定领域适应性以及人工评估函数的结合,这些函数在过去几十年里由人类专家不断完善改进。相比之下,AlphaGo Zero最近在围棋中取得了超越人类的成绩,利用的是自我下棋的“白板”强化学习(译注:tabula rasa,意为“白板”,指所有知识均由感官和经验而来,即从零开始的学习)。在这篇论文中,我们将这种方法推广到一个单一的AlphaZero算法,它可以在多个具有挑战性的领域实现超越人类的性能,同样是以“白板”的学习方式。从随机下棋开始,除了游戏规则之外,没有给它任何专门领域的知识,AlphaZero在24小时内实现了在国际象棋、日本将棋和围棋上超越人类水平的表现,并且在这三种棋都以令人信服的成绩击败了当前世界冠军的程序。


对计算机国际象棋的研究和计算机科学一样古老。巴贝奇、图灵、香农和冯·诺依曼都设计过硬件、算法和理论来分析国际象棋,以及下国际象棋。象棋后来成为了一代人工智能研究者的挑战性任务,在高性能的计算机的助力下,象棋程序达到了顶峰,超越了人类的水平。然而,这些系统高度适应它们的领域,如果没有大量的人力投入,就不能归纳到其他问题。


人工智能的长期目标是创造出可以从最初的原则自我学习的程序。最近,AlphaGo Zero算法通过使用深度卷积神经网络来表示围棋知识,仅通过自我对弈的强化学习来训练,在围棋中实现了超越人类的表现。在本文中,除了游戏规则之外,我们还应用了一个类似的但是完全通用的算法,我们把这个算法称为AlphaZero,除了游戏规则之外,没有给它任何额外的领域知识,这个算法证明了一个通用的强化学习算法可以跨越多个具有挑战性的领域实现超越人类的性能,并且是以“白板”(tabula rasa)的方式。


1997年,“深蓝”在国际象棋上击败了人类世界冠军,这是人工智能的一个里程碑。计算机国际象棋程序在自那以后的20多年里继续稳步超越人类水平。这些程序使用人类象棋大师的知识和仔细调整的权重来评估落子位置,并结合高性能的alpha-beta搜索函数,利用大量的启发式和领域特定的适应性来扩展巨大的搜索树。我们描述了这些增强方法,重点关注2016年TCEC世界冠军Stockfish;其他强大的国际象棋程序,包括深蓝,使用的是非常相似的架构。


在计算复杂性方面,将棋比国际象棋更难:在更大的棋盘上进行比赛,任何被俘的对手棋子都会改变方向,随后可能会掉到棋盘的任何位置。计算机将棋协会(CSA)的世界冠军Elmo等最强大的将棋程序,直到最近才击败了人类冠军。这些程序使用与计算机国际象棋程序类似的算法,再次基于高度优化的alpha-beta搜索引擎,并具有许多特定领域的适应性。


围棋非常适合AlphaGo中使用的神经网络架构,因为游戏规则是平移不变的(匹配卷积网络的权重共享结构),是根据棋盘上落子点之间的相邻点的自由度来定义的,并且是旋转和反射对称的(允许数据增加和合成)。此外,动作空间很简单(可以在每个可能的位置放置一个棋子),而且游戏结果仅限于二元输赢,这两者都可能有助于神经网络的训练。


国际象棋和将棋可能不太适合AlphaGo的神经网络架构。这些规则是依赖于位置的(例如棋子可以从第二级向前移动两步,在第八级晋级)和不对称的(例如棋子只向前移动,而王翼和后翼易位则不同)。规则包括远程互动(例如,女王可能在一步之内穿过棋盘,或者从棋盘的远侧将死国王)。国际象棋的行动空间包括棋盘上所有棋手的所有符合规则的目的地;将棋也可以将被吃掉的棋子放回棋盘上。国际象棋和将棋都可能造成胜负之外的平局;实际上,人们认为国际象棋的最佳解决方案就是平局。




AlphaZero:更通用的AlphaGo Zero




AlphaZero算法是AlphaGo Zero算法更通用的版本。它用深度神经网络和白板(tabula rasa)强化学习算法,替代传统游戏程序中所使用的手工编码知识和领域特定增强。


AlphaZero不使用手工编码评估函数和移动排序启发式算法,而是利用参数为θ的深度神经网络(p,v)=fθ(s)。这个神经网络把棋盘的位置作为输入,输出一个落子移动概率矢量p,其中每个动作a的分量为pa = Pr(a | s),标量值v根据位置s估计预期结果z,v ≈E [L| S]。AlphaZero完全从自我对弈中学习这些移动概率和价值估计,然后用学到的东西来指导其搜索。


AlphaZero使用通用的蒙特卡洛树搜索(MCTS)算法。每个搜索都包含一系列自我对弈模拟,模拟时会从根节点到叶节点将一棵树遍历。每次模拟都是通过在每个状态s下,根据当前的神经网络fθ,选择一步棋的走法移动a,这一步具有低访问次数、高移动概率和高的价值(这些值是从s中选择a的模拟叶节点状态上做了平均的)。搜索返回一个向量π,表示移动的概率分布。


AlphaZero中的深度神经网络参数θ通过自我对弈强化学习(self-play reinforcement learning)来训练,从随机初始化参数θ开始。游戏中,MCTS轮流为双方选择下哪步棋,at〜πt。游戏结束时,根据游戏规则,按照最终的位置sT进行评分,计算结果z:z为-1为输,0为平局,+1为赢。在反复自我对弈过程中,不断更新神经网络的参数θ,让预测结果vt和游戏结果z之间的误差最小化,同时使策略向量pt与搜索概率πt的相似度最大化。具体说,参数θ通过在损失函数l上做梯度下降进行调整,这个损失函数l是均方误差和交叉熵损失之和。




其中,c是控制L2权重正则化水平的参数。更新的参数将被用于之后的自我对弈当中。




AlphaZero与AlphaGo Zero的4大不同




AlphaZero算法与原始的AlphaGo Zero算法有以下几大不同:


1、AlphaGo Zero是在假设结果为赢/输二元的情况下,对获胜概率进行估计和优化。而AlphaZero会将平局或其他潜在结果也纳入考虑,对结果进行估计和优化。


2、AlphaGo和AlphaGo Zero会转变棋盘位置进行数据增强,而AlphaZero不会。根据围棋的规则,棋盘发生旋转和反转结果都不会发生变化。对此,AlphaGo和AlphaGo Zero使用两种方式应对。首先,为每个位置生成8个对称图像来增强训练数据。其次,在MCTS期间,棋盘位置在被神经网络评估前,会使用随机选择的旋转或反转进行转换,以便MonteCarlo评估在不同的偏差上进行平均。而在国际象棋和将棋中,棋盘是不对称的,一般来说对称也是不可能的。因此,AlphaZero不会增强训练数据,也不会在MCTS期间转换棋盘位置。


3、在AlphaGo Zero中,自我对弈是由以前所有迭代中最好的玩家生成的。而这个“最好的玩家”是这样选择出来的:每次训练结束后,都会比较新玩家与最佳玩家;如果新玩家以55%的优势获胜,那么它将成为新的最佳玩家,自我对弈也将由这个新玩家产生的。AlphaZero只维护单一的一个神经网络,这个神经网络不断更新,而不是等待迭代完成。自我对弈是通过使用这个神经网络的最新参数生成的,省略了评估步骤和选择最佳玩家的过程。


4、使用的超参数不同:AlphaGo Zero通过贝叶斯优化调整搜索的超参数;AlphaZero中,所有对弈都重复使用相同的超参数,因此无需进行针对特定某种游戏的调整。唯一的例外是为保证探索而添加到先验策略中的噪音;这与棋局类型典型移动数量成比例。




奢华的计算资源:5000个第一代TPU,64个第二代TPU,碾压其他棋类AI




像AlphaGo Zero一样,棋盘状态仅由基于每个游戏的基本规则的空间平面编码。下棋的行动则是由空间平面或平面矢量编码,也是仅基于每种游戏的基本规则。


作者将AlphaZero应用在国际象棋、将棋和围棋中,都使用同样的算法设置、网络架构和超参数。他们为每一种棋都单独训练了一个AlphaZero。训练进行了700,000步(minibatch大小为4096),从随机初始化的参数开始,使用5000个第一代TPU生成自我对弈,使用64个第二代TPU训练神经网络。


下面的图1展示了AlphaZero在自我对弈强化学习中的性能。下国际象棋,AlphaZero仅用了4小时(300k步)就超越了Stockfish;下将棋,AlphaZero仅用了不到2小时(110k步)就超越了Elmo;下围棋,AlphaZero不到8小时(165k步)就超越了李世石版的AlphaGo。


图1:训练AlphaZero 70万步。Elo 等级分是根据不同玩家之间的比赛评估计算得出的,每一步棋有1秒的思考时间。a. AlphaZero在国际象棋上的表现,与2016 TCEC世界冠军程序Stockfish对局;b. AlphaZero在将棋上的表现,与2017 CSA世界冠军程序Elmo对局;c. AlphaZero在围棋上的表现,与AlphaGo Lee和AlphaGo Zero(20 block / 3 天)对战。


表1:AlphaZero视角下,在比赛中赢,平局或输的局数。经过3天的训练,AlphaZero分别与Stockfish,Elmo以及之前发布的AlphaGo Zero在国际象棋、将棋和围棋分别进行100场比赛。每个AI每步棋都有1分钟的思考时间。


他们还使用完全训练好的AlphaZero与Stockfish、Elmo和AlphaGo Zero(训练了3天)分别在国际象棋、将棋和围棋中对比,对局100回,每下一步的时长控制在1分钟。AlphaZero和前一版AlphaGo Zero使用一台带有4个TPU的机器训练。Stockfish和Elmo都使用最强版本,使用64线1GB hash的机器。AlphaZero击败了所有选手,与Stockfish对战全胜,与Elmo对战输了8局。


此外,他们还比较了Stockfish和Elmo使用的state-of-the-art alpha-beta搜索引擎,分析了AlphaZero的MCTS搜索的相对性能。AlphaZero在国际象棋中每秒搜索8万个局面(position),在将棋中搜索到4万个。相比之下,Stockfish每秒搜索7000万个,Elmo每秒能搜索3500万个局面。AlphaZero通过使用深度神经网络,更有选择性地聚焦在最有希望的变化上来补偿较低数量的评估,就像香农最初提出的那样,是一种更“人性化”的搜索方法。图2显示了每个玩家相对于思考时间的可扩展性,通过Elom量表衡量,相对于Stockfish或者Elmo 40ms的思考时间。AlphaZero的MCTS的思维时间比Stockfish或Elmo更有效,这对人们普遍持有的观点,也即认为alpha-beta搜索在这些领域本质上具有优越性,提出了质疑。


图2:用每步棋的思考时间来衡量AlphaZero的可扩展性,以Elo作为衡量标准。a. 在国际象棋中,AlphaZero和Stockfish的表现,横轴表示每步棋的思考时间。b. 在将棋中,AlphaZero和Elmo的表现,横轴表示每步棋的思考时间。




分析10万+人类开局,AlphaZero确实掌握了国际象棋,alpha-beta搜索并非不可超越




最后,我们分析了AlphaZero发现的国际象棋知识。表2分析了人类最常用的开局方式(在人类国际象棋游戏在线数据库中玩过超过10万次的opening)。在自我训练期间,这些开局方式被AlphaZero独立地发现和对弈。以每个人类开局方式为开始,AlphaZero彻底击败Stockfish,表明它确实掌握了广泛的国际象棋知识。


表2:对12种最受欢迎的人类的开局(在一个在线数据库的出现次数超过10万次)的分析。每个开局都用ECO代码和通用名称标记。这张图显示了自我对弈的比例,其中AlphaZero都是先手。


在过去的几十年里,国际象棋代表了人工智能研究的顶峰。State-of-the-art的程序是建立在强大的engine的基础上的,这些engine可以搜索数以百万计的位置,利用人工的特定领域的专业知识和复杂的领域适应性。


AlphaZero是一种通用的强化学习算法,最初是为了围棋而设计的,它在几小时内取得了优异的成绩,搜索次数减少了1000倍,而且除了国际象棋的规则外,不需要任何领域知识。此外,同样的算法在没有修改的情况下,也适用于更有挑战性的游戏,在几小时内再次超越了当前最先进的水平。



参考资料

[1] Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm:https://arxiv.org/pdf/1712.01815.pdf

[2] PENG Bo的知乎专栏:https://zhuanlan.zhihu.com/p/31749249

[3] 陆君慨的知乎回答:https://www.zhihu.com/question/263681009/answer/271873812

[4] 更多知乎讨论:https://www.zhihu.com/question/263681009/answer/271834015

欢迎读者朋友加入新智元读者群一起交流探讨,请加微信(备注名字+学校/企业+研究/关注领域):aiera2015


新智元正在招聘,点击下面的招聘海报,了解职位与招聘详情。



比AlphaGo Zero更强的AlphaZero来了!8小时解决一切棋类!

20 小时前

读过AlphaGo Zero论文的同学,可能都惊讶于它的方法的简单。另一方面,深度神经网络,是否能适用于国际象棋这样的与围棋存在诸多差异的棋类?MCTS(蒙特卡洛树搜索)能比得上alpha-beta搜索吗?许多研究者都曾对此表示怀疑。

但今天AlphaZero来了(https://arxiv.org/pdf/1712.01815.pdf),它破除了一切怀疑,通过使用与AlphaGo Zero一模一样的方法(同样是MCTS+深度网络,实际还做了一些简化),它从零开始训练:

4小时就打败了国际象棋的最强程序Stockfish!

2小时就打败了日本将棋的最强程序Elmo!

8小时就打败了与李世石对战的AlphaGo v18!



在训练后,它面对Stockfish取得100盘不败的恐怖战绩,而且比之前的AlphaGo Zero也更为强大(根据论文后面的表格,训练34小时的AlphaZero胜过训练72小时的AlphaGo Zero)。



这令人震惊,因为此前大家都认为Stockfish已趋于完美,它的代码中有无数人类精心构造的算法技巧。然而现在Stockfish就像一位武术大师,碰上了用枪的AlphaZero,被一枪毙命。

在reddit的国象版面的讨论中(Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm • r/chess),大家纷纷表示AlphaZero已经不是机器的棋了,是神仙棋,优美,富有策略性,弃子灵活坚决,更能深刻地谋划(maneuver),完全是在调戏Stockfish。

国际象棋的基本规则,大家应该都知道,可以看这个Youtube视频的分析:https://www.youtube.com/watch?v=lb3_eRNoH_w 。Stockfish作为传统AI的代表,有人类设计的评估函数,整天想着“怎样怎样可在多少步后吃对方的子”。AlphaZero是“以德服人”,Stockfish贪吃就给Stockfish吃,没关系,AlphaZero有自己的想法:它直接让Stockfish的一堆子连家都出不了。Stockfish只能干瞪眼。AlphaZero想怎么走就怎么走,Stockfish疲于奔命,四处救火。这一切,正如AlphaGo此前在围棋上所显示的惊人控制力。

很有趣的是,和围棋的情况一样,AlphaZero证明了许多人类开局是正确的。不过,AlphaZero不喜欢西西里防御。



训练过程极其简单粗暴。超参数,网络架构都不需要调整。无脑上算力,就能解决一切问题。

Stockfish和Elmo,每秒种需要搜索高达几千万个局面。

AlphaZero每秒种仅需搜索几万个局面,就将他们碾压。深度网络真是狂拽炫酷。



当然,训练AlphaZero所需的计算资源也是海量的。这次Deepmind直接说了,需要5000个TPU v1作为生成自对弈棋谱。

不过,随着硬件的发展,这样的计算资源会越来越普及。未来的AI会有多强大,确实值得思考。

个人一直认为MCTS+深度网络是非常强的组合,因为MCTS可为深度网络补充逻辑性。我预测,这个组合未来会在更多场合显示威力,例如有可能真正实现自动写代码,自动数学证明。

为什么说编程和数学,因为这两个领域和下棋一样,都有明确的规则和目标,有可模拟的环境。

(在此之前,深度学习的调参党和架构党估计会先被干掉...... 目前的很多灌水论文,电脑以后自己都可以写出来)

也许在5到20年内,我们会看到《Mastering Programming and Mathematics by General Reinforcement Learning》。然后许多人都要自谋出路了......

知乎

请点左下查看原文

AlphaZero完胜三大棋类程序 5000个TPU自学一天AlphaZero和国际象棋冠军程序对弈

来源:公众号 量子位

6日,DeepMind团队又在arXiv上扔了个重磅炸弹,新一代AlphaZero在用了强劲的计算资源(5000个一代TPU和64个二代TPU)之后,用不到24小时的时间自我对弈(tabula rasa,也叫白板)强化学习,接连击败了三个世界冠军级的程序 (国际象棋、将棋、围棋)。

△ AlphaZero和国际象棋冠军程序对弈

其中包括上一代冠军围棋程序AlphaGo Zero,这个程序发布还不到两个月,DeepMind就又把自己颠覆了(所以谷歌团队自我进化速度的时间单位都是按天计,可怕)。

AlphaZero的百局战绩



对弈国际象棋程序Stockfish:28胜,72平;

对弈将棋程序 Elmo:90胜,2平,8负;

对弈围棋程序AlphaGo Zero:60胜,40负。

AlphaZero自我对弈的训练时间



训练次数 | 训练时间 | 对弈冠军棋类程序

30万,2小时,击败将棋Elmo

11万,4小时,击败国际象棋Stockfish

16.5万,8小时,击败围棋AlphaGo

把Go去掉,意味着AlphaZero ,已经是比AlphaGo Zero更通用的程序。

一直以来,尽管众多顶尖的AI的程序都超过了人类世界冠军的水平,但它们都只能在单一的领域执行单一的任务,并不能把这种击败人类的超能力泛化到其他任务中。

而DeepMind的野心可不仅仅是在棋类游戏上超越人类,这次他们研究出了这个更通用的程序AlphaZero,将会马上投入到蛋白折叠的应用上。

官方称,他们不久就会发表相关论文,通过检测出蛋白错误折叠来快速诊断神经退行性疾病,比如阿尔茨海默症,帕金森,囊状纤维化。

期待AlphaZero在医疗健康领域的表现。

更多棋技的讨论,可以参看知乎上的PENG Bo的评价:https://zhuanlan.zhihu.com/p/31749249

原论文链接:https://arxiv.org/pdf/1712.01815.pdf

DeepMind推出泛化强化学习算法AlphaZero围棋与人工智能

(选自arXiv 作者:David Silver等 机器之心编译 论文来源:DeepMind)

在 DeepMind 发表 Nature 论文介绍 AlphaGo Zero 之后,这家公司一直在寻求将这种强大算法泛化到其他任务中的可能性。昨天,AlphaGo 研究团队提出了 AlphaZero:一种可以从零开始,通过自我对弈强化学习在多种任务上达到超越人类水平的新算法。据称,新的算法经过不到 24 小时的训练后,可以在国际象棋和日本将棋上击败目前业内顶尖的计算机程序(这些程序早已超越人类世界冠军水平),也可以轻松击败训练 3 天时间的 AlphaGo Zero。AlphaZero 为何如此强大?机器之心对论文全文进行了编译介绍,希望能以此带你一探究竟。

8 个小时训练击败李世石版本AlphaGo

12 小时训练击败世界顶级的国际象棋程序 Stockfish

14小时训练击败世界顶级将棋程序 Elmo

计算机国际象棋和计算机科学本身一样古老。查尔斯·巴贝奇、艾伦·图灵、克劳德·香农和冯诺依曼都曾设计硬件、算法以及理论来让计算机分析和玩国际象棋。国际象棋随后成为了一代人工智能研究者努力希望克服的挑战,最终,我们也实现了超越人类水平的国际象棋程序。然而,这些程序高度局限于它们所处的领域,在没有人类大幅度修改的情况下,无法被泛化去处理其他任务。

创造可以以简单规则为基础不断自我学习的程序一直是人工智能领域的重要目标。最近,AlphaGo Zero 算法在围棋上实现了超过人类水平的成绩,而背后使用的是卷积神经网络,只通过强化学习进行自我对弈训练。在本论文中,DeepMind 实现了类似但完全泛化的算法(fully generic algorithm)——在未输入游戏规则以外任何知识的情况下,其推出的全新算法 AlphaZero 在国际象棋和日本将棋上实现了和围棋同样的高水平。DeepMind 宣称该研究证明了 AlphaZero 作为一个通用性强化学习算法可以从零开始,在多种具有挑战性的任务上实现超越人类的水平。

人工智能领域的一个里程碑事件是 1997 年‘深蓝’击败了人类世界冠军卡斯帕罗夫。在随后的 20 年里,计算机程序的国际象棋水平一直稳定处于人类之上。这些程序使用人类大师仔细调整的权重来评估落子步骤,同时结合了高性能的 α-β 搜索技术,通过大量启发式机制和对特定领域的适应而扩展出大的搜索树。这些程序包括 2016 年 Top Chess Engine Championship(TCEC)世界冠军 Stockfish;其他强大的国际象棋程序,包括‘深蓝’,也使用了非常相似的架构。

在计算复杂性方面,日本将棋(Shogi)要比国际象棋复杂得多:前者有一个更大的棋盘,任何被吃的棋子都可以改变阵营重新上场,被放置在棋盘的大多数位置。此前最强大的将棋程序,如 Computer Shogi Association(CSA)世界冠军 Elmo 直到 2017 年才击败了人类世界冠军。这些程序和计算机国际象棋程序使用了类似的算法,同样基于高度优化的α-β搜索引擎和很多对特定域的适应性调整。

围棋非常适合 AlphaGo 中的神经网络体系结构,因为游戏规则是转移不变的(与卷积神经网络的权重共享结构相对应),是根据棋盘上相邻点位的自由度来定义的(与卷积神经网络局部结构相对应),而且是旋转和镜像对称的(这允许数据增强和数据合成)。此外,围棋的动作空间很简单(一个子可能被落在每一个可能的位置上),游戏的结果仅限于二元的输或赢,而两者都有助于神经网络进行训练。

国际象棋和日本将棋可以说相对不适用于 AlphaGo 的神经网络架构。因为其规则是依赖于棋盘位置的(如两种棋类的棋子都可以通过移动到棋盘的某个位置而升级)而且不对称(如一些旗子只能向前移动,而另一些如王和后可以更自由的移动)。这些规则包含了远程互动(例如,后可以一步穿越整个棋盘,从远距离对王将军)。国际象棋的动作空间包含两名棋手棋盘上棋子的所有合法落子位置;而日本将棋甚至还允许被吃掉的棋子重返棋盘(加入另一方)。国际象棋和日本将棋都允许胜负之外的其他结果;事实上,人们相信国际象棋的最优解是平局。

AlphaZero 算法是 AlphaGo Zero 的通用化版本,后者首先被应用在了围棋任务上。它使用深度神经网络和从零开始的强化学习代替了手工编入的知识和特定领域的增强信息。

AlphaZero 不使用手动编写的评估函数和移动排序启发式算法,转而使用深度神经网络 (p, v) = f_θ(s) 和参数θ。该神经网络将棋盘位置 s 作为输入,输出一个针对每个动作 a 的分量 p_a = P_r(a | s)的移动概率 p 的向量,以及从位置 s 估计期望结果 z 的标量值 v ≈E [z | s]。AlphaZero 完全从自我对弈中学习这些步的获胜概率;这些结果随后用于指导程序的搜索。

和α-β搜索使用领域特定的增强信息不同,AlphaZero 使用了一个通用的蒙特卡罗树搜索(MCTS)算法。每一次搜索由一系列的自我对弈的模拟比赛组成,遍历了从根 s_root 到叶的整个树。每一次模拟通过在每个状态 s 中选择一个动作 a,a 具有低访问次数、高走棋概率(通过遍历从 s 选择了 a 的模拟的叶状态取平均得到)和根据当前神经网络 f_θ决定的高价值。搜索会返回一个向量π表示走棋的概率分布,通常相对于根状态的访问次数是成比例的或贪婪的。

从随机初始化的参数 θ 开始,AlphaZero 中的深度神经网络参数 θ 通过自我对弈强化学习来训练。双方玩家通过 MCTS 选择游戏动作为 a_t ∼ π_t。在游戏结束时,根据游戏规则对终端位置 s_T 进行评分,以计算游戏结果 z:-1 为输,0 为平局,+1 为赢。更新神经网络参数θ以使预测结果 v_t 和游戏结果 z 之间的误差最小化,并使策略向量 p_t 与搜索概率π_t 的相似度最大化。具体而言,参数 θ 通过梯度下降分别在均方误差和交叉熵损失之和上的损失函数 l 进行调整。



其中 c 为控制 L2 权重正则化程度的参数,更新的参数将用于自我对弈子序列对弈。

本论文描述的 AlphaZero 算法主要在以下一些方面与原版的 AlphaGo Zero 算法有不同。

若假设一局对弈的结果为胜利或失败两个状态,AlphaGo Zero 会估计并最优化胜利的概率。而 AlphaZero 反而会估计和优化结果的期望值,它会同时考虑平局或其它潜在的可能结果。

无论使用怎样的旋转和镜像映射,围棋的规则都是不变的。AlphaGo 和 AlphaGo Zero 都利用了这一事实。首先,通过为每个位置生成 8 次对称,来增强训练数据。其次,在 MCTS(蒙特卡罗树搜索)中,在神经网络进行评估之前使用随机选择的旋转或反射转换棋盘局势,以使蒙特卡罗评估在不同的偏差中进行平均。象棋和将棋的规则是不对称的,且通常无法假设对称。在 MCTS 中,AlphaZero 不增强训练数据,也不转换棋盘局势。

在 AlphaGo Zero 中,自我对弈是由前面所有迭代步中最优玩家生成的。在每次训练的迭代结束后,新玩家的性能通过与最优玩家的对抗而衡量。如果新玩家能以 55% 的优势胜出,那么它就替代当前最优的玩家,而自我对弈的结果将由该新玩家产生。相反,AlphaZero 只是简单地维护单个神经网络以连续更新最优解,而不需要等待一次迭代的完成。



图 1:将 AlphaZero 训练 700,000 步。假设每手棋用时一秒,利用不同棋手之间的评估游戏计算国际等级分(Elo rating)。a。 AlphaZero 在象棋中的表现,与 2016 TCEC 世界冠军 Stockfish 进行对比。b。 AlphaZero 在将棋中的表现,与 2017 CSA 世界冠军 Elmo 进行对比。c。 AlphaZero 在围棋中的表现,与 AlphaGo Lee 和 AlphaGo Zero 进行对比(20 block / 3 day)(29)。

自我对弈通过使用这个神经网络最新的参数而生成,且省略了评估的步骤和最佳玩家的选择。

AlphaGo Zero 通过贝叶斯优化搜索超参数,而 Alpha Zero 对于所有的对弈使用相同的超参数,而不会使用特定的超参数调整方法。唯一的例外是为了保证探索(29)而添加到先前策略的噪声,这与符合(对弈类型)规则的典型移动数成正比。

如同 AlphaGo Zero 一样,棋盘状态仅基于每个对弈的基本规则空间进行编码。这些动作是由其它空间平面或平面向量进行编码,且仅仅基于每个游戏的基本规则。

我们把 AlphaZero 算法应用到了国际象棋、日本将棋和围棋上。除非另做说明,这三种棋类游戏使用的都是同样的算法设置、网络架构和超参数。我们为每一种棋类游戏训练了独立的 AlphaZero 实例。训练进行了 70 万步(批尺寸为 4096),从随机初始化参数开始,使用 5000 个第一代 TPU 生成自我对弈棋局和 64 个第二代 TPU 训练神经网络。关于训练过程的更多细节在 Method 中。

图 1 展示了 AlphaZero 在自我对弈强化学习中的性能,作为训练步的函数,以 Elo Scale 表示(10)。在国际象棋中,AlphaZero 仅仅经过 4 小时(30 万步)就超越了 Stockfish;在日本将棋中,AlphaZero 仅仅经过不到 2 小时(11 万步)就超过了 Elmo;而在围棋中,AlphaZero 经过 8 小时(16.5 万步)就超过了 AlphaGo Lee(29)。

我们评估了经过充分训练的 AlphaZero 在国际象棋、日本将棋和围棋上分别和 Stockfish、Elmo 以及经过 3 天训练的 AlphaGo Zero 的 100 场竞标赛的结果(从 AlphaZero 角度的赢/平/输),每个程序都是一步一分钟的思考时间。AlphaZero 和 AlphaGo Zero 使用 4 个 TPU 的单个机器进行比赛。Stockfish 和 Elmo 使用 64 个线程和 1GB 的哈希表进行比赛。AlphaZero 令人信服地打败了所有的对手,未输给 Stockfish 任何一场比赛,只输给了 Elmo 八场(补充材料理由几场比赛的示例),见表 1。



表 1:AlphaZero 在国际象棋、日本将棋和围棋上分别和 Stockfish、Elmo 以及经过 3 天训练的 AlphaGo Zero 的 100 场比赛的结果(从 AlphaZero 角度的赢/平/输),每个程序都是一步一分钟的思考时间。

我们还分析了 AlphaZero 的蒙特卡罗树搜索(MCTS)和 Stochfish、Elmo 使用的当前最佳α-β搜索引擎的性能对比。AlphaZero 在国际象棋中每秒搜索了 8 万个位置,在日本将棋中每秒搜索了 4 万个位置,而 Stockfish 每秒需要搜索 7000 万个位置,Elmo 每秒需要搜索 3500 万个位置。AlphaZero 通过使用深度神经网络重点聚焦于最具潜在价值的走法(可以认为这是一种更加类似人类思考方式的搜索方法,由香农首次提出(27))。图 2 展示了每个玩家关于 Elo scale 的思考时间的可扩展性。AlphaZero 的 MCTS 相比 Stochfish 和 Elmo 能更有效地伸缩思考时间,这使我们对人们广泛接受的 α-β 搜索在这些领域的内在优势提出了质疑。

最后,我们分析了由 AlphaZero 发现的象棋知识。表 2 分析了 12 个最常见的人类国际象棋开局分析(在线数据集记录出现超过了 10 万次)。每一个开局都由 AlphaZero 在自我对抗训练过程中独立发现并频繁使用。从每一个人类国际象棋开局开始,AlphaZero 都能击败 Stockfish,这表明它确实掌握了大量的国际象棋棋谱知识。

使用国际象棋比赛展示 AI 研究的前沿进展已经有几十年的历史。当前最佳的程序都是基于能搜索几百万个位置、利用人工编入的领域专业知识和复杂的领域适应性的引擎。AlphaZero 是一个通用的强化学习算法(最初为围棋而设计),可以在数小时内达到优越的结果,其需要搜索的位置少了几千倍,除了国际象棋的规则外不需要任何的领域知识。此外,同样的算法不需要修改就可以应用到更具挑战性的日本将棋上,同样在数小时内超过了当前最佳结果。



表 2:12 个最常见的人类国际象棋开场局的分析(在线数据集记录出现超过了 10 万次)。每一个开局由其 ECO 码和常用名标记。这些图展示了 AlphaZero 在自我对抗训练棋局中使用这种开场局的比例随训练时间的变化。我们还报告了 100 场 AlphaZero vs。 Stockfish 每个比赛的开局和结果(从 AlphaZero 角度的赢/平/输,无论作为白方还是黑方)。最后,还报告了 AlphaZero 每个开局后的整体棋局主要变化。



图 2:AlphaZero 的思考时间的可扩展性。a。 AlphaZero 和 Stockfish 在象棋上的 Relative Elo 对比,横坐标为每一步的思考时间。b。 AlphaZero 和 Elmo 在日本将棋上的 Relative Elo 对比,横坐标为每一步的思考时间。

论文:Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm



论文链接:https://arxiv.org/abs/1712.01815

摘要:国际象棋是人工智能史上被研究最为广泛的领域。解决国际象棋问题最为强大的技术是通过复杂搜索技术、特定领域的适应性调整以及人类专家几十年来不断手动编写改进的评估函数。相比之下,AlphaGo Zero 程序最近在围棋项目中实现了超过人类的表现,而且它是完全从零开始进行自我强化学习的。在本论文的研究中,我们泛化了这个方法而得到了单个 AlphaZero 算法,使其可以从零开始自我学习,并在很多种具有挑战性的领域里超越人类的性能。模型从随机动作开始初始化,除了游戏规则,我们未向程序输入任何知识,而 AlphaZero 在 24 小时内像围棋一样掌握了游戏,达到了超越人类的国际象棋和日本将棋水平,并令人信服地在每个项目中击败了目前业内顶级的各类程序。


【本文来自微信公众号“棋道经纬”】

加载中...