AlphaGo Tech 2 - Deep Learning

Sorry, this post is still under translation to English

上一篇传送门:AlphaGo核心技术之一,蒙特卡洛树搜索

科普

深度学习
深度学习指多层的人工神经网络及其学习方法。与普通的人工神经网络不同的是,深度学习模拟人脑进行分析、学习的能力更强。一般来讲,神经网络把一大批矩阵数字作文输入,然后通过非线性激活函数(如Sigmoid())来取权重,再产生一个集合作为输出。人类的生物大脑有类似的工作机理,外部的信号经过初步处理后,交给多层的神经组织形成的神经网络处理,不同的是你的大脑里没有任何中间的矩阵数字。

最早的神经网络算法Back Propagation在上世纪80年代就有了,之所以机器学习到现在才开始流行,是因为人工神经网络的训练需要海量的数据,Google写的卷积神经网络(Convolutional Neural Networks)在没有外界指令的自发条件下,通过1.6万块CPU,看了YouTube上1000万段视频,才有了“猫”这个概念。如今倡导大数据的时代,机器学习算法自然有足够的数据去学习,也就导致了其蓬勃发展。

AlphaGo使用的技术

AlphaGo相当于用了两个“大脑”, Policy Network 和 Value Network。每走一步棋都会参考两个大脑返回的结果(快速走子除外,采用Fast Rollout),相当于两个大脑合作选择如何落子。两个大脑都是用多层神经网络构成的,可以理解成和Google 图片搜索结构差不多的一个东西。

 

首先AlphaGo通过多层启发式二维过滤器处理围棋棋盘定位,过滤后的结果经过13层全连接神经网络处理,包括逻辑推理和分类。

Policy Network
数字大的表示人类选手最有可能下的地方 数字大的表示人类选手最有可能下的地方

Policy Network帮助AlphaGo进行落子选择,一部分采用的是监督式学习(Supervised Learning)的策略网络,可以找到棋盘上合法的最佳下一步。原理就是预测每一个可落子点的最佳概率,所以最前面猜测的就是概率最高的。另一部分落子选择用的是强化学习的策略网络,通过互联网上数千万的模拟棋局训练,把每一个模拟棋局下到底,训练最可能赢的下法。

但是Policy Network有个明显的缺陷,它是根据当前的棋盘和之前落子前的棋盘判断当前一步最优落子点,所以它不会去模拟未来任何一个棋子会怎么样。

除开正常落子选择,AlphaGo的团队还设计了一个FastRollout,普通的落子选择需要看19*19的整个棋盘,而FastRollout只看对手上一步棋和这一步棋之间的矩形来作出快速落子决定,数据显示下子比普通版快1000倍。

Value Network
Value Network相当于一个棋局评估器(Position Evaluator)。由于Policy Network只根据当前状况作最优选择,所以需要一个系统来预测未来棋子走向,Value Network预测棋手每一个落子点的赢棋可能,通过整体的局面来辅助Policy Network的落子选择器。不过这个只是大概的判断,不是精确到0.1%胜率的那种,只是帮助落子选择更好的阅读棋盘。分析完大量的落棋可能后,Value Network分类出未来局面潜在的有利和不利, AlphaGo能够判断能否通过特殊变种去深入阅读,如果Value Network估计下来特殊变种不行,那么AlphaGo跳过这条线上任何更多落子的阅读。

图中深蓝色的表示更有利的落子点 图中深蓝色的表示更有利的落子点

这个评估器也经过了百万棋局的训练,DeepMind团队通过强大的落子选择器挑选随即样本创造了这些局面作训练数据,AI不仅可以被训练,也可以用来创造大量高效的数据集。AlphaGo的评估器基本可以在任意棋盘上评估双方胜利的可能。

最终决策
单有两个深度学习的神经网络还不能帮助AlphaGo选择,DeepMind采用了很常见的MCTS作搜索树,用两个强大的大脑指引蒙特卡洛树搜索,使需要的搜索量降到了同效最低。

有关蒙特卡洛树搜索:AlphaGo核心技术之一,蒙特卡洛树搜索

弱点
AlphaGo的弱点可能就是在全局考虑上,因为它是通过类似于5*5的小方格过滤棋盘来降低运算复杂度,所以整体战略的把握和调度肯定比不过围棋专业选手,但是它局部的布局基本是无敌的。所以想赢AlphaGo,你需要有世界一流的水平+前半句压倒性优势+创造大局陷阱。搞得好像我会下围棋一样

Reference:

田渊栋博士的关于Facebook DarkForest的论文。

图片源于网络,如有侵权请第一时间联系我删除。

 

Leave a Reply