来源:TalkingData furion推荐
参考:Nature;DeepMind;新智元
【作者】叶杰生
DeepMind 如约公布了他们最新版AlphaGo论文,也是他们最新的Nature论文,介绍了迄今最强最新的版本AlphaGo Zero,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。AlphaGo已经退休,但技术永存。DeepMind已经完成围棋上的概念证明,接下来就是用强化学习创造改变世界的价值。
今年5月乌镇围棋大赛时,DeepMind CEO Hassabis 表示,将在今年晚些时候公布战胜了柯洁的那版AlphaGo的技术细节。今天,这个承诺如约兑现,DeepMind在他们最新发表于Nature的一篇论文中,描述了迄今最强大的一版AlphaGo—— AlphaGo Zero 的技术细节。
AlphaGo Zero完全不依赖于人类数据,因此,这一系统的成功也是朝向人工智能研究长期以来的目标——创造出在没有人类输入的条件下,在最具挑战性的领域实现超越人类能力的算法——迈进的一大步。
作者在论文中写道,AlphaGo Zero 证明了即使在最具挑战的领域,纯强化学习的方法也是完全可行的:不需要人类的样例或指导,不提供基本规则以外的任何领域知识,使用强化学习能够实现超越人类的水平。此外,纯强化学习方法只花费额外很少的训练时间,但相比使用人类数据,实现了更好的渐进性能(asymptotic performance)。
在很多情况下,人类数据,尤其是专家数据,往往太过昂贵,或者根本无法获得。如果类似的技术可以应用到其他问题上,这些突破就有可能对社会产生积极的影响。
是的,你或许要说,AlphaGo已经在今年5月宣布退休,但AlphaGo的技术将永存,并进一步往前发展、进化。DeepMind已经完成围棋上的概念证明,接下来,就是用他们的强化学习改变世界。
这也是为什么接下来我们要介绍的这篇论文如此重要——它不仅是很多人期盼已久的技术报告,也是人工智能一个新的技术节点。在未来,它将得到很多引用,成为无数AI产业和服务的基础。
迄今最强大的围棋程序:不使用人类的知识
DeepMind这篇最新的Nature,有一个朴素的名字——《不使用人类知识掌握围棋》。
摘要
人工智能长期以来的一个目标是创造一个能够在具有挑战性的领域,以超越人类的精通程度学习的算法,“tabula rasa”(译注:一种认知论观念,认为指个体在没有先天精神内容的情况下诞生,所有的知识都来自于后天的经验或感知)。此前,AlphaGo成为首个在围棋中战胜人类世界冠军的系统。AlphaGo的那些神经网络使用人类专家下棋的数据进行监督学习训练,同时也通过自我对弈进行强化学习。
在这里,我们介绍一种仅基于强化学习的算法,不使用人类的数据、指导或规则以外的领域知识。AlphaGo成了自己的老师。我们训练了一个神经网络来预测AlphaGo自己的落子选择和AlphaGo自我对弈的赢家。这种神经网络提高了树搜索的强度,使落子质量更高,自我对弈迭代更强。从“tabula rasa”开始,我们的新系统AlphaGo Zero实现了超人的表现,以100:0的成绩击败了此前发表的AlphaGo。
DOI:10.1038/nature24270
全新的强化学习:自己成为自己的老师
AlphaGo Zero 得到这样的结果,是利用了一种新的强化学习方式,在这个过程中,AlphaGo Zero 成为自己的老师。这个系统从一个对围棋游戏完全没有任何知识的神经网络开始。然后,通过将这个神经网络与一种强大的搜索算法相结合,它就可以自己和自己下棋了。在它自我对弈的过程中,神经网络被调整、更新,以预测下一个落子位置以及对局的最终赢家。
这个更新后的神经网络又将与搜索算法重新组合,进而创建一个新的、更强大的 AlphaGo Zero 版本,再次重复这个过程。在每一次迭代中,系统的性能都得到一点儿的提高,自我对弈的质量也在提高,这就使得神经网络的预测越来越准确,得到更加强大的 AlphaGo Zero 版本。
这种技术比上一版本的 AlphaGo 更强大,因为它不再受限于人类知识的局限。相反,它可以从一张白纸的状态开始,从世界上最强大的围棋玩家——AlphaGo 自身——学习。
AlphaGo Zero 在其他方面也与之前的版本有所不同:
AlphaGo Zero 只使用围棋棋盘上的黑子和白子作为输入,而上一版本的 AlphaGo 的输入包含了少量人工设计的特征。
它只使用一个神经网络,而不是两个。以前版本的 AlphaGo 使用一个“策略网络”(policy network)来选择下一个落子位置和一个“价值网络”(value network)来预测游戏的赢家。这些在 AlphaGo Zero 中是联合进行的,这使得它能够更有效地进行训练和评估。
AlphaGo Zero 不使用“走子演算”(rollout)——这是其他围棋程序使用的快速、随机游戏,用来预测哪一方将从当前的棋局中获胜。相反,它依赖于高质量的神经网络来评估落子位置。
上面的所有这些不同之处都有助于提高系统的性能,使其更加通用。但使得这个系统更加强大和高效的是算法的改变。
在进行了3天的自我训练后,AlphaGo Zero 在100局比赛中以100:0击败了上一版本的 AlphaGo——而上一版本的 AlphaGo 击败了曾18次获得围棋世界冠军的韩国九段棋士李世乭。经过 40 天的自我训练后,AlphaGo Zero 变得更加强大,超越了“Master”版本的 AlphaGo——Master 曾击败世界上最优秀的棋士、世界第一的柯洁。
在经过数以百万计的 AlphaGo vs AlphaGo 的对弈后,这个系统逐渐从零开始学会了下围棋,在短短几天内积累了人类数千年积累的知识。AlphaGo Zero 也发现了新的知识,开发出非常规的策略和创造性的新下法,这些新下法超越了它在与柯洁和李世乭比赛时发明的新技巧。
尽管目前仍处于早期阶段,但 AlphaGo Zero 成为了朝着这个目标迈进的关键一步。DeepMind 联合创始人兼 CEO Demis Hassabis 评论称:“AlphaGo在短短两年里取得了如此令人惊叹的成果。现在,AlphaGo Zero是我们项目中最强大的版本,它展示了我们在更少的计算能力,而且完全不使用人类数据的情况下可以取得如此大的进展。
“最终,我们希望利用这样的算法突破来帮助解决现实世界的各种紧迫问题,例如蛋白质折叠或新材料设计。如果我们能在这些问题上取得与AlphaGo同样的进展,就有可能推动人类理解,并对我们的生活产生积极影响。”
AlphaGo Zero 技术细节拆解:将价值网络和策略网络整合为一个架构,整合蒙特卡洛搜索不断迭代
新方法使用了一个深度神经网络 fθ,参数为 θ。这个神经网络将原始棋盘表征 s(棋子位置和历史)作为输入,输出落子概率和一个值 (p, v)= fθ(s)。
落子概率向量 p 表示选择下每一步棋(包括不下)的概率。值 v 是一个标量估值,衡量当前棋手在位置 s 获胜的概率。
这个神经网络将最初的 AlphaGo(下文中的 AlphaGo Fan 和 AlphaGo Lee,分别指对战樊麾和对战李世石的版本)的策略网络和价值网络整合到一个架构里,含有很多基于卷积神经网络的残差模块,这些残差模块中使用了批正则化(batch normalization)和非线性整流函数(rectifier nonlinearities)。
AlphaGo Zero 的神经网络使用自我对弈数据做训练,这些自我对弈是在一种新的强化学习算法下完成的。在每个位置 s,神经网络 fθ 都会进行蒙特卡洛树搜索(MCTS)。MCTS 输出下每步棋的落子概率 π。这样搜索得出的概率通常比神经网络 fθ(s) 的原始落子概率 p 要更加强一些;MCTS 也因此可以被视为一个更加强大的策略提升 operator。
系统通过搜索进行自我对弈,也即使用增强的基于 MCTS 的策略选择下哪步棋,然后使用获胜者 z 作为价值样本,这个过程可以被视为一个强有力的策略评估 operator。
这一新的强化学习算法的核心思想是,在策略迭代的过程中,反复使用这些搜索 operator:神经网络的参数不断更新,让落子概率和价值 (p,v)= fθ(s) 越来越接近改善后的搜索概率和自我对弈赢家 (π, z)。这些新的参数也被用于下一次自我对弈的迭代,让搜索更强。下面的图1 展示了自我对弈训练的流程。
图1:AlphaGo Zero 自我对弈训练的流程:a。 程序自己和自己下棋,标记为s1, 。。。, sT。在每个位置st,一个MCTS αθ被执行(见图2),使用最新的神经网络fθ。每个走子选择的依据是通过MCTS, at ∼ πt计算的搜索概率。最终的位置sT根据游戏规则计算对局的最终胜者z。b。 AlphaGo Zero 中神经网络的训练。该神经网络将棋盘位置st作为输入,与参数θ一起讲它传送到许多的卷积层,并同时输出表示每一走子的概率分布的向量 pt 和一个表示当前玩家在位置 st 上的赢率的标量值 vt。
MCTS 使用神经网络 fθ 指导其模拟(参见图2)。搜索树中的每条边 (s, a) 都存储了一个概率先验 P(s, a),一个访问数 N(s, a),以及动作值 Q(s, a)。每次模拟都从根节点状态开始,不断迭代,选择能将置信区间 Q(s, a)+ U(s, a) 的上层最大化的落子结果,直到走到叶节点 s′。
然后,网络会扩充这个叶节点,并且只进行一次评估,生成概率先验和评估值,(P(s′, ·), V(s′))= fθ(s′)。在模拟中,遍历每条边 (s, a) 后,会更新访问量 N(s, a),然后将动作值更新,取所有模拟的平均值:
![](http://img.e-com-net.com/image/info10/dc646d13766e4ee392444048319729f5.jpg)
MCTS 可以被看做一种自我对弈算法:给定神经网络参数 θ 和一个根节点位置 s,计算搜索概率向量推荐落子 π = αθ(s),与每步棋的访问量指数成正比,τ 是温度参数:
图2:MCTS 使用神经网络 fθ 模拟落子选择的过程示意
神经网络使用这个自我对弈的强化学习算法做训练,正如上文介绍,这个算法使用 MCTS 下每一步棋。首先,神经网络使用随机权重 θ0 初始化。在随后的每一次迭代中,i ≥ 1,生成自我对弈棋谱(参见图1的a)。在每个时间步长 t,运行一个 MCTS 搜索 πt = αθ (st),使用上一次神经网络 fθi−1 迭代的结果,然后根据搜索概率采样下出一步棋。一局棋在第 T 步结束,也就是双方都无法落子,搜索值降低到阈值以下的时候。随后,进行计分,得出奖励 rT ∈ {−1,+1}。
每一个时间步长 t 的数据都被存储为 (st, πt, zt),其中 zt = ± rT 就是从当前这步棋 t 看来最终获胜的赢家。
同时(参见图1 b),使用从最后一次自我对弈迭代的所有时间步长中获取的数据 (s, π, z),对新的网络参数 θi 进行训练。调整神经网络 (p, v) = fθi (s),将预测值 v 和自我对比胜者 z 之间的误差降低到最小,同时将神经网络落子概率 p 和搜索概率 π 之间的相似度提升到最大。
具体说,我们用损失函数 l 的梯度下降来调节参数 θ,这个损失函数表示如下,其中 c 是控制 L2 权重正则化水平的参数(防止过拟合):
评估结果:21天就比战胜柯洁的Master更加厉害
DeepMind官方博客上介绍了AlphaGo Zero与此前版本的对比。完全从零开始,3天超越AlphaGo李世石版本,21天达到Master水平。
论文中,为了分开结构和算法的贡献,DeepMind研究人员还比较了 AlphaGo Zero 的神经网络架构和先前与李世乭对弈时的 AlphaGo (记为 AlphaGo Lee)的神经网络架构的性能(见图4)。
我们构建了4个神经网络,分别是在 AlphaGo Lee 中使用的分开的策略网络和价值网络,或者在 AlphaGo Zero 中使用的合并的策略和价值网络;以及 AlphaGo Lee 使用的卷积网络架构,或 AlphaGo Zero 使用的残差网络架构。每个网络都被训练以最小化同一个损失函数(公式1),训练使用的是 AlphaGo Zero 在72小时的自我对弈之后产生的同一个自我对弈棋局数据集。
使用残差网络的准确率更高,误差更低,在 AlphaGo 达到600 Elo(等级分)的性能提高。将策略(policy)和价值(value)结合到一个单一的网络中的话,走子预测的准确性略微降低了,但是价值错误也降低了,并且将 AlphaGo 的性能再提高了600 Elo。这在一定程度上是由于提高了计算效率,但更重要的是,双目标使网络成为支持多个用例的常规表示。
图4:AlphaGo Zero 和 AlphaGo Lee 的神经网络架构比较。使用分开的策略和价值网络记为(sep),使用组合的策略和价值网络记为(dual),使用卷积网络记为(conv),使用残差网络记为(res)。“dual-res”和“sep-conv”分别表示在 AlphaGo Zero 和 AlphaGo Lee 中使用的神经网络架构。每个网络都在同一个数据集上训练,该数据集由 AlphaGo Zero 的自我对弈产生。a,每个训练好的网络都与 AlphaGo Zero 的搜索相结合,以得到一个不同的玩家。Elo等级分是由这些不同玩家之间的评估游戏计算得到的,每一步棋有5秒的思考时间。b,对每个网络架构的职业棋手的走法(从GoKifu数据集得来)的预测准确性。c,每个网络架构的人类职业棋手的棋局结果(从GoKifu数据集得来)的MSE。
AlphaGo Zero学到的知识。a,AlphaGo Zero训练期间发现的五个人类定式(常见的角落序列)。b)自我对弈中爱用的5个定式。c)在不同训练阶段进行的3次自我对弈的前80步棋,每次搜索使用1,600次模拟(约0.4s)。最开始,系统关注夺子,很像人类初学者。而后,关注势和地,也即围棋根本。最后,整场比赛体现出了很好的平衡,涉及多次战斗和一场复杂的战斗,最终以白棋多半子获胜。