简单智能
原文标题:Mastering the game of Go without human knowledge
David Silver1*, Julian Schrittwieser1*, Karen Simonyan1*, ioannis Antonoglou1, Aja Huang1, Arthur Guez1,Thomas Hubert1, Lucas baker1, Matthew Lai1, Adrian bolton1, Yutian chen1, Timothy Lillicrap1, Fan Hui1, Laurent Sifre1,George van den Driessche1, Thore Graepel1 & Demis Hassabis
原文链接:
http://www.tensorflownews.com/wp-content/uploads/2017/10/nature24270.pdf
https://www.nature.com/nature/journal/v550/n7676/pdf/nature24270.pdf
译文链接:
https://mp.weixin.qq.com/s?__biz=MzI1MDU5MTAxNA==&mid=2247483773&idx=1&sn=d771e9aa38713777ead427f44645a55a&chksm=e9fea334de892a22023b2ba84b3c33a9b6a1656e077e682d33ac464e3f5ac88caf573ca818da#rd
转载必须注明翻译作者名( )翻译文章链接,和原始论文标题和链接(请尊重转译者,和原作者所付出的)
注:为了可以比较简洁的表达较重要的内容,只包括原文实现方法(Methods)章节。对AlphaGo Zero任何讨论,请发在公众号。
注:
[]中标注的内容表示参考文献的编号
self-play: 与自己比赛,对手也是自己,所以译为自我对抗
value function: 策略的有效性函数(策略的胜率函数),所以value译为价值,value function译为价值函数
policy component: Alpha Go Zero处理策略的组件,译为策略处理单元
value component: Alpha Go Zero评估策略的有效性的组件,译为价值评估单元
Tetris: 俄罗斯方块游戏
Atari: 美国阿塔里游戏公司
CBMPI: 基于分类的改进策略迭代算法
rollout: 蒙特卡洛搜索算法中模拟游戏动作,推演游戏的过程,译为推演
注,蒙特卡洛搜索4步(蒙特卡洛搜索算法有助于全面理解文章,请参考详细资料)
rollout是上图的simulation步骤
强化学习:
策略迭代[20,21]是一种经典的算法,通过交替执行策略评估(估计当前策略的价值函数)和策略强化(用当前的价值函数来生成更好的策略),来生成一列不断强化的策略。
一种简单的策略评估方法是采样的动作轨迹[20,21]的输出估计价值函数,一种简单的策略强化方法是根据价值函数[20]贪婪(贪婪算法)的选择动作。
在很大目标状态空间中(包括围棋的落棋子的可选位置),使用回归算法来评估每个策略的价值和表示策略的价值优化度是必要的[22,23]。
基于分类的强化学习[37]用简单的蒙特卡洛搜索算法来优化策略。每一个动作都要很多次推演;(推演出胜负后会对推演过的动作累计分)计分均值最大的动作做为一个正例训练样本,而其它所有的动作做为负例训练样本;然后一个策略被训练用来把动作分类为正例或负例,用来进行下一步推演。这种方法可以视为当τ->0时(温度值)Alpha Go Zero的策略处理单元的前身。
最近的基于分类的改进策略迭代算法(CBMPI),也通过回归价值函数到(部分)推演结果来实现策略评估,类似Alpha Go Zero的价值评估单元;在俄罗斯方块游戏[38]上达到了最高水准。但这个方法的局限是:
1. 简单的推演过程
2. 使用人工设计的特征表达的线性函数进行回归运算。
Alpha Go Zero自我对抗的算法可以被近似理解为一个用蒙特卡洛树搜索做策略优化和策略评估进行优化迭代的策略框架。
策略优化从一个神经网络的策略开始,执行蒙特卡洛树搜索(策略推荐),得到优化后的搜索策略,然后将其规划到神经网络的函数空间中。
策略评估使用优化后的搜索策略产生动作,同时将动作输出也规划到神经网络的函数空间中。
通过分别训练神经网络参数来匹配搜索概率和自我对抗游戏动作的输出来实现规划。
(注:以上原文没有更多细节)
Guo及其它人[7] 也规划蒙特卡洛树搜索的输出到神经网络中,以搜索结果回归价值评估网络,或对蒙特卡洛树搜索选择的动作进行分类。
这种方法被用来训练一个神经网络玩阿塔里游戏,但这个方法蒙特卡洛树搜索是固定的(没有策略的迭代),也没有使用经过训练的网络。
游戏中的自我对抗优化学习
我们的方法可很直接的用于具有完整信息的零和游戏中。借鉴了前人研究的[12]交替马尔可夫链形式进行游戏,注意基于值和策略迭代的算法会自然的扩展成这个形式 [39]。
自我对抗优化学习之前已经被用在围棋游戏中,NeuroGo[40,41]用一个神经网络来表达价值函数(基于围棋知识(空territory,眼eyes等,原文:connectivity, territory and eyes)的精巧的架构)。
这个神经网络通过时序差分学习训练来预测自我对抗中的棋盘布局(空),基于[43]。一个相关的实现,RLGO[44],用特征的线性组合来表达价值函数,穷尽枚举所有的棋子的3*3布局,用时序差分学习训练来预测游戏赢家。NeuroGo和RLGO实现了初等业余水平。
蒙特卡洛树搜索也可以被视为一种自我对抗优化学习。搜索树中的节点包含了在搜索中发现的每个位置对应的值(代表棋子移动的价值),这些值被更新来预测自我对抗模拟游戏的赢家。蒙特卡洛树搜索程序之前实现了围棋高等业余水平[46,47],但使用了全面的专业知识:
1. 基于人工设计的特征的快速推演的策略[13,48],评估直到游戏结束,模拟游戏经过的所有位置。
2. 基于人工设计的特征树策略,选择了搜索树中的棋子移动方式。
自我对抗优化学习方法已经在其它游戏中达到了高级别水平:
象棋[49-51],方格棋[52],西洋双陆棋[53],奥赛罗[54],英语文字图版游戏[55],和扑克[56](近期)。
在所有这些例子中,一个价值函数用自我对抗生成的训练数据通过回归 [54-56]或时序差分学习[49-52]训练。训练的价值函数用来做为博弈树搜索(alpha–beta search),[49-54] 简单蒙特卡罗搜索[55,57]或虚拟条件反悔最小化(counterfactual regret minimization)[56]的评估函数。但这些方法使用了人工设计的输入特征[49-53,56],或人工设计的特征模板[56]。同时使用监督学习来初始化权重值[58],人工选择每部分值的权重[49,51.52],人工限制动作的空间[56],或使用之前已经做好的电脑程序来做为训练对手[49,50]或生成游戏记录数据[51]。
很多非常成功的,广泛使用的强化学习方法是第一次被引入零和游戏环境中:
,当蒙特卡洛树搜索被引入围棋游戏时,时序差分学习第一次引入象棋程序中。无论如何,很相近的算法紧接着在在视频游戏[6-8,10],机器人[60],工业控制[61-63]和在线推荐系统实现了很好的效果[64,65]。
Alpha Go版本:
3个互不相同的Alpha Go版本:
AlphaGo Fan是之前是公开的程序[12],和Hui Fan在2015 10月进行了比赛。分布在很多机器,使用176个GPU。
AlphaGo Lee 4-1战胜了Lee Sedol在2016 3月。没有公开,但在很多主要方面是与AlphaGo Fan是相同的。
重要的不同之处:
1) 价值计算网络是基于AlphaGo执行的自我对抗的高速游戏过程生成的数据训练,而不是基于策略评估网络执行的自我对抗游戏过程;这个过程是迭代很多次的(参考原论文的白板算法(tabula rasa algorithm))。
2) 策略和价值网络是比(AlphaGo)论文中描述的网络更大(使用256个平面(输入数据维度)的12个卷积网络)同时经过更多次迭代训练。分布在很多48个TPU的机器中,不是GPU,使它可以在搜索时更快的对网络进行评估。
AlphaGo Master在2017.01月以60-0战胜顶尖棋手。没有公开,但使用了本文章描述的相同神经网络架构,强化学习算法,和蒙特卡洛树搜索算法。
但它使用与AlphaGo Lee相同的人工设计的特征和推演方法,同时训练是使用棋手的数据通过监督学习初始化。
AlphaGo Zero是本文章中描述的程序。从随机初始化权重值开始,用自我对抗游戏强化学习方法训练,没有蒙特卡洛搜索推演,没有人监督同时只使用原始下棋历史数据做输入。仅使用了在谷歌云中的1台具有4个TPU的机器(AlphaGo Zero也可以是分布式的,但我们选择尽可能简单的搜索算法)
领域知识:
我们主要的贡献是展示了超越棋手水平的性能可以在没有专业领域知识情况下实现。为了帮助理解,我们列举了在训练过程和蒙特卡洛树搜索过程中,AlphaGo Zero使用的明确或潜在的专业知识;这些是使AlphaGo Zero学习其它的(交替马尔可夫链)游戏需要替换的知识项目。
AlphaGo Zero接收了游戏规则的全面的知识。它们在蒙特卡洛树搜索过程中被用来模拟经过一系列移动后的位置,同时对到达结束状态的摸拟位置评分。当围棋双方一致确认着子(放置棋子)完毕时或者在19*19*2=722次着子后,游戏结束。另外程序接收了每个位置的合法移动的集合。
AlphaGo Zero在蒙特卡洛树搜索模拟过程和自我对抗训练过程使用了Tromp-Talor评分方法[66]。这是因为如果游戏在黑白棋子各自边界明确前结束时对棋手的评分(中国,日本,韩国规则)没有统一的定义。我们使用中国规则对所有的正式,非正式比赛进行评分。
输入特征数据是结构化为19*19大小描述棋子位置的图像;神经网络的架构棋盘的格子布局匹配。
围棋的规则在旋转和反转时是固定的; 这点反映在AlphaGo Zero用了旋转和反转方法来增强训练数据集(augmenting dataset),同时蒙特卡洛树搜索过程中模拟的每个位置随机旋转或反转(参考原论文Search algorithm)。
对于贴目(komi),规则是不由颜色转换改变的;这点反映在用当前游戏方的视角表示棋盘(参数原论文Neural network architecture)
AlphaGo Zero以上指出的点之外,没有使用任何其它的专业知识。只使用深度学习网络来评估叶子节点(结束点)和选择移动(参考原论文Search algorithm)。它没有使用任何的推演策略和树策略,同时MCTS没有任何的专业规则和技巧上的增强。没有任何合法的移动是被排除的(甚至那些一眼就能识别的不合适的移动)(在之前的程序中是标准的技巧)
算法是通过随机初始化的神经网络参数开始。这个神经网络架构(参考Neural network architecture)是基于当前最高水准的图像识别技术[4,18],对应选择训练时的超参(参考”自我对抗训练管道”)。 蒙特卡洛树搜索参数是通过高斯处理优化方法(Gaussian process optimization[68])选择,所以可视为使用预运行过程训练的神经网络来优化AlphaGo Zero的自我对抗性能。对于大批量的运行(40块,40天),蒙特卡洛树搜索参数是用这个经过小批量运行(20个块,3天)的神经网络来重新优化。训练算法是没有人的干涉自动执行的。
自我对抗训练管道:
AlphoGo Zero的自我对抗训练管道由3个主要组件构成,全部并发异步执行。神经网络参数θi是用最近的自我对抗数据连续优化的;AlphaGo Zero选手(程序视为游戏选手)αθi是被连续评估的;同时用当前评估出的最佳性能的选手αθ∗生成新的自我对抗数据。
优化:
使用tensorflow谷歌云中多个配备64个GPU的客户端(训练)和多个配备19个CPU的服务端(保存参数)优化每个神经网络fθi。每个客户端的批(mini-batch)大小是32,总的批大小是2048(所有应有2048/32=64个客户端)。每批数据是从最近的500000次自我对抗的所有位置随机均匀采样的。神经网络参数使用随机梯度下降(使用学习率,动量(momentum)退火(衰减技术))优化。
损失函数为等式1:
注:
P表示网络移动选择概率。
V对移动的价值预测
π是搜索概率
c是控制L2正规化的参数
公式的含义是最小化动作预测价值v和胜者z的距离,最大化搜索概率和网络移动选择概率的相同度
学习率是通过上表3的标准流程退火的。
动量是配置为0.9。
交叉熵和MSE权重是相同的(因为奖励是单位比例r∈{-1, +1})
L2正则化参数配置为c=10^-4。
每1000个训练步产生了新检查点(check pointer会保存模型训练参数)。检查点由评估器评估,并且可能用来生成自我对抗的下一批数据。
评估器:
为了保证一直生成最高质量的数据,在使用新检查点生成下一批数据前用当前最佳的网络fθ∗评估每个新检查点。
神经网络fθi是通过使用fθi来评估叶子位置和先验概率来评估的(参考原论文Search algorithm)的蒙特卡洛树搜索αθi评估。每一步评估经过使用1600次模拟来选择每一次移动的蒙特卡洛树搜索的400轮游戏(使用极限小温度τ→0(根据最大访问次数,判别选择这次移动,给出最可能强的效果))。如果赢得游戏的得分优势大于55%(为避免噪声影响),那它就成为最佳的选手αθ∗,同时用于生成下一批游戏数据,也成为下一次比较的基准。
自我对抗:
被选择为评估器的当前最佳选手αθ∗,也用来生成下一批数据。每一次迭代中,αθ∗使用1600次模拟来选择一次移动的蒙特卡洛树搜索(需要大约0.4秒每次搜索)选择每次移动,执行25000轮自我对抗游戏。
每轮游戏的头30次移动,这个温度值配置为τ = 1(根据访问计数选择移动的系数);蒙特卡洛树搜索使用访问次数比例值选择移动,并保证可访问到不同的位置集合。
之后的移动,使用极小量温度值τ→0。
添加狄利克雷噪声到根节点s0的先验概率来增加搜索范围,特别是当η ∼ Dir(0.03) 和ε = 0.25时,P(s, a) =(1 - ε)pa + εηa,;这些噪声保证所有的移动都可能执行,但搜索仍然会驳回低效的移动。为了节约计算力,会放弃明显失败的游戏。放弃临界值vresign是通过保持假正率(false positive,positive指如果AlphaGo不放弃游戏可以赢)低于5%来自动选择。为了衡量合适的假正率,我们禁用了自我对抗游戏的10%的放弃率直到游戏结束。
监督式学习:
为了比较,我们也通过监督式学习训练了神经网络参数θSL。这个神经网络的架构与AlphaGo Zero是相同的。数据(s, π, z)批(mini-batch)从KGS数据集被随机采样得到,如果专家(被参考的人)移动到a则πa= 1。参数使用随机梯度下降优化(对动量和学习率退火),损失函数为等式1:
MSE权重因数为0.01(与优化不同)。
学习率是通过上表3的标准流程退火的。
动量参数配置为0.9
L2正则化参数配置为c=10^-4。
通过使用组合策略和值的网络架构,且对价值评估单元使用低权重值,减少价值函数过拟合的可能性([12]有说明)。在72小时后预测移动准确率超过了以前报告的最高水准[12,30-33],在KGS测试数据集上达到了60.4%;价值预测错误率也大幅超过了之前报告的分数[12]。验证数据集是专家数据和GoKifu数据集的组合。准确率和MSE分别报告在上表1和表2中。
搜索算法:
AlphaGo Zero使用了AlphaGo Fan和AlphaGo Lee的异步策略和值的蒙特卡洛树搜索算法(APV-MCTS)的更简单形式。
在搜索树中每个节点s包括所有动作a ∈ A(s)构成的边(s,a)。每个边记录了一些统计值。
{N(s, a), W(s, a), Q(s, a), P(s, a)}
N(s,a)是访问计数,W(s, a)是全部动作价值,Q(s, a)是平均动作价值,P(s, a) 是选择一条边的先验概率。
多次模拟过程被并发的执行在不同的线程中。
算法通过迭代3个阶段继续运行(图2a–c),然后选择执行一次移动(图2a–d)。
选择(图2a):
选择的阶段与AlphaGo Fan几乎相同[12];我们为了完整性扼要重述一下。每次模拟过程中第1次在树中阶段开始于搜索树的根节点s0,且在模拟过程在步骤L达到叶子节点sL 时结束。
在每个t< L的步骤,动作使用一个PUCT算法的变形:
由记录在搜索树中统计值选择
cpuct是决定搜索级别的常量值;搜索控制策略初始时优先选择高先验概率和低访问计数的动作,但逐渐优先选择高价值的动作。
伸展和评估(图2b):
叶子节点sL被添加到用于神经网络评估的队列中(di(p), v)= fθ(di(sL)),di是整数区间 [1…8]上随机分布的集合中均匀选择的二面角反射或旋转(参考[70])。队列中的位置被神经网络用大小为8的批(mini-batch)评估(对8个1批的经过随机,二面角反射处理过的落子可选位置评估);搜索线程被锁定直到评估过程结束。叶子节点被扩展,它和动作连接的每个边(sL, a)被初始为{N(sL, a)=0, W(sL, a)=0, Q(sL, a)=0, P(sL, a)=pa};计算得到的值v被保存下来。
反馈(图ac):
每个边访问计数等统计信息在反馈过程中对每个t≤L的步骤更新。访问计数被累加, N(st, at)=N(st, at)+1,同时动作值被更新为均值
,使用这虚损失函数来保证每个线程不同的节点评估[12,69]。
动作(图2d):
搜索完成后,AlphaGo Zero在根位置s0选择移动a,和它的访问计数的指数级量是成比例的:,这里τ是”温度”参数用来控制搜索的级别。接搜索树被再用于下来的步骤中:
对应于这个动作的子节点做为新的根节点。
子节点下的子树和它们所有的统计值(如访问计数)被保存。
树的其余部分被丢弃。
如果根节点的值和最佳子节点的值低于临界值vresign,AlphaGo Zero放弃游戏。
与AlphaGo Fan和AlphaGo Lee的蒙特卡洛树搜索比较,原理上的不同是:
AlphaGo Zero不使用任何推演;
它使用单个神经网络来代替策略网络和价值评估网络;
叶子节点是一直伸展的,而不是动态的伸展;
所有搜索线程等待神经网络的评估结束后执行,而不是同时进行评估和反馈(前向与后向);
这里没有树策略
在大的AlphaGo Zero的实例中(40个块,40天)中会使用置换表。
神经网络架构:
神经网络中的输入是由17个2值19*19大小平面(图)组成的19*19*17的图像堆:
8个二值来表示当前选手的棋子特征平面Xt (),如果在时间t格子包括了当前选手颜色的棋子;等于0如果格是空的,包含一个对手的棋子或t<0时)。
8个表示对手的相对应棋子的特征平面Yt。
最后1个特征平面C表示了游戏的颜色,如果用黑色值为1,如果用白色为0。
这些平面被连接起来成为一个输入序列st= [Xt, Yt, Xt-1, Yt-1,..., Xt-7, Yt-7, C]。
历史数据Xt, Yt是必须的,因为围棋可能情况不是通过当前的棋子的布局就可以全面的识别出来,比如重复之前下过的位置是禁止的;同时颜色特征C是必须的,因为(贴目)komi是不能被观察到的。
输入特征st被由一个卷积网络块,接着19或39个残差网络块构成的残差网络塔(tower)处理:
卷积块应用了以下模块:
(1). 1个由256个卷积核大小为3*3,步长为1的过滤器组成的卷积层。
(2). 批(batch)归一化层
(3). 非线性的校证层(可能是RELU)
残差块应用了以下顺序的模块:
(1). 1个由256个卷积核大小为3*3,步长为1的过滤器组成的卷积层。
(2). 批(batch)归一化层
(3) 非线性的校证层
(4). 1个由256个卷积核大小为3*3,步长为1的过滤器组成的卷积层。
(5). 批(batch)归一化层
(6). 从输入到块的跳转连接
(7). 非线性的校证层
残差网络的输出被输出至两个不同的”端”来计算策略和值。
策略”端”应用了以下模块:
(1). 1个由2个卷积核大小为1*1,步长为1的过滤器组成的卷积层。
(2). 批(batch)归一化层
(3). 非线性的校证层
(4). 1个输出向量大小为19^2+1=362全连接线性层,对于棋盘所有格子的移动的对数概率。
值”端”应用了以下模块:
(1). 1个由1个卷积核大小为1*1,步长为1的过滤器组成的卷积层。
(2). 批(batch)归一化层
(3). 非线性的校证层
(4). 1个全连接的线性层到大小256的隐藏层
(5). 非线性的校证层
(6). 1个全连接的线性层到一个标量
(7). 1个tanh非线性层输出区间[-1,1]的标量
20个块或40个块网络的整体的深度,分别是39或79个参数化层,对于残差网络塔(tower),分别加入2个层处理策略”端”,和3个层处理值”端”。
我们注意到和我们同时的另外一个残差网络的变形被用于围棋,实现业余高水平(dan: 1–7d)的性能;但性能被通过纯监督学习训练的单”端” 策略网络限制了。
神经网络架构比较:
上图4显示了不同网络架构的比较结果。我们特别的比较了4种不同的神经网络:
双残差: 这个网络包含了20个块组成的残差塔,如同上面描述的,接着是策略”端”和值”端”。这个架构用在AlphaGo Zero中。
分离残差: 这个网络包括2个20个块组成的残差塔。第1个残差塔接着策略”端”,第2个残差塔接着值”端”。
双卷积: 这个网络包括了1个12个卷积块组成的非残差塔,接着是策略”端”和值”端”。
分离卷积: 这个网络包括了2个12个卷积块组成的非残差塔,第1个塔接着策略”端”,第2个塔接着值”端”。这个架构被用在AlphaGo Lee中。
每个网络用固定的包括通过之前运行AlphaGo Zero 最后的200万次自我对抗游戏数据训练,使用随机梯度下降(学习率,动量退火和监督学习中超参数正则化);但交叉熵和MSE是权重相同的,因为有非常多的有效数据。
评估:
我们通过衡量每个选手的Elo率评估了AlphaGo Zero的性能相对强度(上图3a,6)。通过函数估计了选手a战胜选手b的概率,且通过贝叶斯Elo程序使用标准常量celo= 1/400计算贝叶斯对数回归来估计比率e(·)。
Elo率由AlphaGo Zero, AlphaGo Master, AlphaGo Lee和AlphaGo Fan比赛中5秒一步的结果计算。来自AlphaGo Zero的初始网络也被包括在这次比赛中。AlphaGo Fan,Crazy Stone, Pachi和GnuGo的Elo率是之前的比赛记录[12](也包含这些比赛中其它选手的记录)。也包括AlphaGo Fan和Fan Hui的比赛,Alpha Go Lee和 Lee Sedol比赛记录,提高在(人类)棋手参考程度,否则 AlphaGo在自我对抗基准下Elo率不现实的高。
Elo率在图3a,4a,6a(3,4在之前页)是通过每个选手在自我对抗训练过程中每次迭代的评估结果计算出来。更多的评估通过对比之前发布的基准选手Elo率记录完成。
我们评估了AlphaGo Zero对比AlphaGo Lee,40个块的AlphaGo Zero对比AlphaGo Master的端到端的性能,使用相同的选手和2016年与Lee Seoul的比赛相同的条件。
每个选手得到2个小时的考虑时间和每次移动的3个60秒的定时器(byoyomi比赛用的定时器)周期。所有的比赛是使用7.5点的贴目(komi)的中国规则评分。
有效数据。
用来验证和测试的数据集Gokifu:
http://gokifu.com/
KGS数据集:
https://ugo.net/gamerecords/
1. Friedman, J., Hastie, T. & Tibshirani, R. The Elements of Statistical Learning: Data
Mining, Inference, and Prediction (Springer, 2009).
2. LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. Nature 521, 436–444 (2015).
3. Krizhevsky, A., Sutskever, I. & Hinton, G. ImageNet classifcation with deep
convolutional neural networks. In Adv. Neural Inf. Process. Syst. Vol. 25
(eds Pereira, F., Burges, C. J. C., Bottou, L. & Weinberger, K. Q.) 1097–1105
(2012).
4. He, K., Zhang, X., Ren, S. & Sun, J. Deep residual learning for image recognition.
In Proc. 29th IEEE Conf. Comput. Vis. Pattern Recognit. 770–778 (2016).
5. Hayes-Roth, F., Waterman, D. & Lenat, D. Building Expert Systems (AddisonWesley, 1984).
6. Mnih, V. et al. Human-level control through deep reinforcement learning.
Nature 518, 529–533 (2015).
7. Guo, X., Singh, S. P., Lee, H., Lewis, R. L. & Wang, X. Deep learning for real-time
Atari game play using ofine Monte-Carlo tree search planning. In Adv. Neural
Inf. Process. Syst. Vol. 27 (eds Ghahramani, Z., Welling, M., Cortes, C., Lawrence,
N. D. & Weinberger, K. Q.) 3338–3346 (2014).
8. Mnih, V. et al. Asynchronous methods for deep reinforcement learning. In
Proc. 33rd Int. Conf. Mach. Learn. Vol. 48 (eds Balcan, M. F. & Weinberger, K. Q.)
1928–1937 (2016).
9. Jaderberg, M. et al. Reinforcement learning with unsupervised auxiliary tasks.
In 5th Int. Conf. Learn. Representations (2017).
10. Dosovitskiy, A. & Koltun, V. Learning to act by predicting the future. In 5th Int.
Conf. Learn. Representations (2017).
11. Man´dziuk, J. in Challenges for Computational Intelligence (Duch, W. &
Man´dziuk, J.) 407–442 (Springer, 2007).
12. Silver, D. et al. Mastering the game of Go with deep neural networks and tree
search. Nature 529, 484–489 (2016).
13. Coulom, R. Efcient selectivity and backup operators in Monte-Carlo tree
search. In 5th Int. Conf. Computers and Games (eds Ciancarini, P. & van den
Herik, H. J.) 72–83 (2006).
14. Kocsis, L.& Szepesvári, C. Bandit based Monte-Carlo planning. In 15th Eu.
Conf. Mach. Learn. 282–293 (2006).
15. Browne, C. et al. A survey of Monte Carlo tree search methods. IEEE Trans.
Comput. Intell. AI Games 4, 1–49 (2012).
16. Fukushima, K. Neocognitron: a self organizing neural network model for a
mechanism of pattern recognition unaffected by shift in position. Biol. Cybern.
36, 193–202 (1980).
17. LeCun, Y.& Bengio, Y. in The Handbook of Brain Theory and Neural Networks
Ch. 3 (ed. Arbib, M.) 276–278 (MIT Press, 1995).
18. Ioffe, S. & Szegedy, C. Batch normalization: accelerating deep network training
by reducing internal covariate shift. In Proc. 32nd Int. Conf. Mach. Learn. Vol. 37
448–456 (2015).
19. Hahnloser, R. H. R., Sarpeshkar, R., Mahowald, M. A., Douglas, R. J. &
Seung, H. S. Digital selection and analogue amplifcation coexist in a
cortex-inspired silicon circuit. Nature 405, 947–951 (2000).
20. Howard, R. Dynamic Programming and Markov Processes (MIT Press, 1960).
21. Sutton, R.& Barto, A. Reinforcement Learning: an Introduction (MIT Press,
1998).
22. Bertsekas, D. P. Approximate policy iteration: a survey and some new methods.
J. Control Theory Appl. 9, 310–335 (2011).
23. Scherrer, B. Approximate policy iteration schemes: a comparison. In Proc. 31st
Int. Conf. Mach. Learn. Vol. 32 1314–1322 (2014).
24. Rosin, C. D. Multi-armed bandits with episode context. Ann. Math. Artif. Intell.
61, 203–230 (2011).
25. Coulom, R. Whole-history rating: a Bayesian rating system for players of
time-varying strength. In Int. Conf. Comput. Games (eds van den Herik, H. J., Xu,
X. Ma, Z. & Winands, M. H. M.) Vol. 5131 113–124 (Springer, 2008).
26. Laurent, G. J., Matignon, L. & Le Fort-Piat, N. The world of independent learners
is not Markovian. Int. J. Knowledge-Based Intelligent Engineering Systems 15,
55–64 (2011).
27. Foerster, J. N. et al. Stabilising experience replay for deep multi-agent reinforcement
learning. In Proc. 34th Int. Conf. Mach. Learn. Vol. 70 1146–1155 (2017).
28. Heinrich, J.& Silver, D. Deep reinforcement learning from self-play in
imperfect-information games. In NIPS Deep Reinforcement Learning Workshop
(2016).
29. Jouppi, N. P. et al. In-datacenter performance analysis of a Tensor
Processing Unit. Proc. 44th Annu. Int. Symp. Comp. Architecture Vol. 17 1–12
(2017).
30. Maddison, C. J., Huang, A., Sutskever, I. & Silver, D. Move evaluation in Go
using deep convolutional neural networks. In 3rd Int. Conf. Learn.
Representations. (2015).
31. Clark, C.& Storkey, A. J. Training deep convolutional neural networks
to play Go. In Proc. 32nd Int. Conf. Mach. Learn. Vol. 37 1766–1774
(2015).
32. Tian, Y. & Zhu, Y. Better computer Go player with neural network and long-term
prediction. In 4th Int. Conf. Learn. Representations (2016).
33. Cazenave, T. Residual networks for computer Go. IEEE Trans. Comput. Intell. AI
Games https://doi.org/10.1109/TCIAIG.2017.2681042 (2017).
34. Huang, A. AlphaGo master online series of games. https://deepmind.com/
research/AlphaGo/match-archive/master (2017)
35. Barto, A. G.& Duff, M. Monte Carlo matrix inversion and reinforcement
learning. Adv. Neural Inf. Process. Syst. 6, 687–694 (1994).
36. Singh, S. P.& Sutton, R. S. Reinforcement learning with replacing eligibility
traces. Mach. Learn. 22, 123–158 (1996).
37. Lagoudakis, M. G. & Parr, R. Reinforcement learning as classification:
leveraging modern classifiers. In Proc. 20th Int. Conf. Mach. Learn. 424–431
(2003).
38. Scherrer, B., Ghavamzadeh, M., Gabillon, V., Lesner, B. & Geist, M. Approximate
modified policy iteration and its application to the game of Tetris. J. Mach.
Learn. Res. 16, 1629–1676 (2015).
39. Littman, M. L. Markov games as a framework for multi-agent reinforcement
learning. In Proc. 11th Int. Conf. Mach. Learn. 157–163 (1994).
40. Enzenberger, M. The integration of a priori knowledge into a Go playing neural
network. http://www.cgl.ucsf.edu/go/Programs/neurogo-html/neurogo.html
(1996).
41. Enzenberger, M. in Advances in Computer Games (eds Van Den Herik, H. J., Iida,
H. & Heinz, E. A.) 97–108 (2003).
42. Sutton, R. Learning to predict by the method of temporal differences. Mach.
Learn. 3, 9–44 (1988).
43. Schraudolph, N. N., Dayan, P. & Sejnowski, T. J. Temporal difference learning of
position evaluation in the game of Go. Adv. Neural Inf. Process. Syst. 6, 817–824
(1994).
44. Silver, D., Sutton, R. & Müller, M. Temporal-difference search in computer Go.
Mach. Learn. 87, 183–219 (2012).
45. Silver, D. Reinforcement Learning and Simulation-Based Search in Computer Go.
PhD thesis, Univ. Alberta, Edmonton, Canada (2009).
46. Gelly, S.& Silver, D. Monte-Carlo tree search and rapid action value estimation
in computer Go. Artif. Intell. 175, 1856–1875 (2011).
47. Coulom, R. Computing Elo ratings of move patterns in the game of Go. Int.
Comput. Games Assoc. J. 30, 198–208 (2007).
48. Gelly, S., Wang, Y., Munos, R. & Teytaud, O. Modification of UCT with patterns in
Monte-Carlo Go. Report No. 6062 (INRIA, 2006).
49. Baxter, J., Tridgell, A. & Weaver, L. Learning to play chess using temporal
differences. Mach. Learn. 40, 243–263 (2000).
50. Veness, J., Silver, D., Blair, A. & Uther, W. Bootstrapping from game tree search.
In Adv. Neural Inf. Process. Syst. 1937–1945 (2009).
51. Lai, M. Giraffe: Using Deep Reinforcement Learning to Play Chess. MSc thesis,
Imperial College London (2015).
52. Schaeffer, J., Hlynka, M. & Jussila, V. Temporal difference learning applied to a
high-performance game-playing program. In Proc. 17th Int. Jt Conf. Artif. Intell.
Vol. 1 529–534 (2001).
53. Tesauro, G. TD-gammon, a self-teaching backgammon program, achieves
master-level play. Neural Comput. 6, 215–219 (1994).
54. Buro, M. From simple features to sophisticated evaluation functions. In Proc.
1st Int. Conf. Comput. Games 126–145 (1999).
55. Sheppard, B. World-championship-caliber Scrabble. Artif. Intell. 134, 241–275
(2002).
56. Moravcˇík, M. et al. DeepStack: expert-level artificial intelligence in heads-up
no-limit poker. Science 356, 508–513 (2017).
57. Tesauro, G& Galperin, G. On-line policy improvement using Monte-Carlo
search. In Adv. Neural Inf. Process. Syst. 1068–1074 (1996).
58. Tesauro, G. Neurogammon: a neural-network backgammon program. In Proc.
Int. Jt Conf. Neural Netw. Vol. 3, 33–39 (1990).
59. Samuel, A. L. Some studies in machine learning using the game of checkers II -
recent progress. IBM J. Res. Develop. 11, 601–617 (1967).
60. Kober, J., Bagnell, J. A. & Peters, J. Reinforcement learning in robotics: a survey.
Int. J. Robot. Res. 32, 1238–1274 (2013).
61. Zhang, W.& Dietterich, T. G. A reinforcement learning approach to job-shop
scheduling. In Proc. 14th Int. Jt Conf. Artif. Intell. 1114–1120 (1995).
62. Cazenave, T., Balbo, F. & Pinson, S. Using a Monte-Carlo approach for bus
regulation. In Int. IEEE Conf. Intell. Transport. Syst. 1–6 (2009).
63. Evans, R.& Gao, J. Deepmind AI reduces Google data centre cooling bill by
40%. https://deepmind.com/blog/deepmind-ai-reduces-google-data-centre-
cooling-bill-40/ (2016).
64. Abe, N. et al. Empirical comparison of various reinforcement learning strategies
for sequential targeted marketing. In IEEE Int. Conf. Data Mining 3–10 (2002).
65. Silver, D., Newnham, L., Barker, D., Weller, S. & McFall, J. Concurrent
reinforcement learning from customer interactions. In Proc. 30th Int. Conf.
Mach. Learn. Vol. 28 924–932 (2013).
66. Tromp, J. Tromp–Taylor rules. http://tromp.github.io/go.html (1995).
67. Müller, M. Computer Go. Artif. Intell. 134, 145–179 (2002).
68. Shahriari, B., Swersky, K., Wang, Z., Adams, R. P. & de Freitas, N. Taking the
human out of the loop: a review of Bayesian optimization. Proc. IEEE 104,
148–175 (2016).
69. Segal, R. B. On the scalability of parallel UCT. Comput. Games 6515, 36–47
(2011).
70. Dihedral (aeronautics) https://en.wikipedia.org/wiki/Dihedral_(aeronautics)
Supplementary Information is available in the online version of the paper.
Acknowledgements We thank A. Cain for work on the visuals; A. Barreto,
G. Ostrovski, T. Ewalds, T. Schaul, J. Oh and N. Heess for reviewing the paper;
and the rest of the DeepMind team for their support.
Author Contributions D.S., J.S., K.S., I.A., A.G., L.S. and T.H. designed and
implemented the reinforcement learning algorithm in AlphaGo Zero. A.H., J.S.,
M.L. and D.S. designed and implemented the search in AlphaGo Zero. L.B.,
J.S., A.H., F.H., T.H., Y.C. and D.S. designed and implemented the evaluation
framework for AlphaGo Zero. D.S., A.B., F.H., A.G., T.L., T.G., L.S., G.v.d.D. and D.H.
managed and advised on the project. D.S., T.G. and A.G. wrote the paper.
Author Information Reprints and permissions information is available at
www.nature.com/reprints. The authors declare no competing financial
interests. Readers are welcome to comment on the online version of the paper.
Publisher’s note: Springer Nature remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations. Correspondence and
requests for materials should be addressed to D.S. ([email protected]).
Reviewer Information Nature thanks S. Singh and the other anonymous
reviewer(s) for their contribution to the peer review of this work