1、蒙特卡洛搜索算法和基于深度学习的模式识别促成了AlphaGo的成就。
据各方研究来看,AG不是自己想出棋着来,而是学习了人类高手的千万盘棋局(这就是大数据)。它记录下每个棋局中的每个局面,把上百万个局面当作输入进行训练,通过一个多层神经网络来预测人类高手会走出的下一着。经过巧妙的神经网络设计与训练,这个多层神经网建模了人类高手的“棋感”——对于当前局面,已知以往下棋历史中的胜率。在实际下棋时,计算机可以通过视觉识别记录下棋局,然后和以往的棋局数据比较,找到相同的模式(局面),再检索不同局面往后发展下去,根据以往下棋史中的胜率高低选出一些高质量的候选点供走子,而不必每个候选点都去尝试一遍,从而极大地减少系统运算量,不至于让系统“殚精竭虑”而死。这就像人类,不会穷尽所有候选点,而是根据经验和感觉选择某些点。选出几个点之后,人类还是要比较、计算哪个点更好。对于机器来说,这个计算就交给蒙特卡洛搜索算法。
蒙特卡洛树形搜索是对以往决策树算法的优化。对于以往的决策树算法,即便给了一个高质量的候选点,对于接下来的选择,它同样要进行穷举,在每个要选择的地方做一次分支,同样会遇到可选路径数量的指数爆炸。
蒙特卡洛方法就体现了概率学的精妙。假设在某个棋局局面下,深度学习网络给出了三个候选落子办法A、B、C,以这三个点为根节点,分别往下走子,可以想象成三个树,每棵树还有无数分支。蒙特卡洛搜索不去穷尽所有分支,而是派出300万只蚂蚁分别从A、B、C出发,每个点100万只,飞速向树梢爬(也就是往下黑白棋交替走子直到决出胜负,基本上走200步就会分出胜负),总有部分蚂蚁走到最高点(也就是决出胜负,假设蚂蚁走到终点的情况代表黑子胜,没走到终点的情况代表白子胜)。
假设从A点出发的100万只蚂蚁有30万只到达终点,B的为50万只,C为40万只,系统就认为黑子走B点胜率更高,就会选择B点。这就是概率学的取样算法,相比逐项穷举法,极大地缩减了计算量。
CPU芯片和GPU(图形处理器)芯片同时进行神经网络计算与蒙特卡洛树形搜索,模拟海量的终盘局面,这是人类计算能力无法相比的。由于采用深度学习建模了人类高手的棋感,看上去人工智能拥有了人类的大局观,而这个大局观恰恰蕴含在人类高手的千万盘对弈数据里。