围棋(Go)是一种非常复杂的游戏,以前的计算机程序无法预测如此深度的遍历和检索方法。现如今,由于机器学习的神经网络的作用,目前,计算机实现了对围棋的博弈。
主要算法为:深度神经网络和搜索树。
此文发表于Nature杂志,是谷歌公司对AlphaGo的描述和概括。
谷歌采用的是一个管道,里面包括了用机器学习的各个阶段。通过一种监督下的学习策略来训练神经网络,用以精通人类的步骤。这个神经网络提供了非常快速有效率的学习方法,用以更新权值并提供非常高质量的向量。
谷歌使用了一个13层的策略网络,这就是我们称之为的监督学习策略,从KGS Go Server上获得大概3000万个位置。
最终训练管道阶段关注与最终的评价,评价一个值函数vps,这个函数主要是预测由各层所产生的情况p的最好位置,用以决定最后落子情况。
加固的学习策略网络
当这两种神经网络互相对弈时,加固学习的神经网络和监督下学习的神经网络来比,有80%的胜率。
并且我们测试了一个开源版本的AlphaGo,Pachi,这是一个资深的蒙特-卡尔罗搜索算法树的程序。结果表明谷歌的程序有85%的机会赢得比赛。
相比之下,较之前的具有最高技术水平的一种基于监督神经网络的传统网络则只有11%的概率赢得和Pachi的对决。
价值网络的加固学习
最初从比赛数据中获得的结果中预测结果会导致过度拟合。这个问题在于连续的位置是高度关联的,只和一个棋子有关,但是拟合的结果却是依据比赛的进程而决定。
AlphaGo的组成
AlphaGo主要是通过策略网络和价值网络进行学习,使用的是MCTS算法(蒙特卡罗搜索树)来进行长远的预测。
监督学习网络用来预测人类可能会选择的步骤,而加固型优化网络则会选取最有胜算的把握。
AlphaGo有两个版本,一个是分布式,一个是单机版。
有人曾提单纯的神经网络还不够,需要的是深度神经网络才能有效地处理围棋的搜索。
价值网络的加强学习
最开始的想法是通过预测完整的比赛结果的数据组成来判断比赛的结果,可惜这个造成了过度拟合。问题在于持续性的位置是强相关的,仅仅只有一个子的差别,但是拟合的结果却需要和整个比赛相匹配。最终我们测试的均值达到了0.37,而训练的均值则只有0.19。
策略网络和价值网络的检索