增加阅读
这里做了三个版本的落子选择大脑,加上局面评估大脑,AlphaGo 可以有效去阅读未来走法和步骤了。阅读跟大多数围棋 AI 一样,通过蒙特卡洛树搜索(MCTS)算法来完成。但 AlphaGo 比其他 AI 都要聪明,能够更加智能的猜测哪个变种去探测,需要多深去探测。
蒙特卡洛树搜索算法
如果拥有无限的计算能力,MCTS 可以理论上去计算最佳落子通过探索每一局的可能步骤。但未来走法的搜索空间对于围棋来说太大了(大到比我们认知宇宙里的粒子还多),实际上 AI 没有办法探索每一个可能的变种。MCTS 做法比其他 AI 有多好的原因是在识别有利的变种,这样可以跳过一些不利的。
Silver 团队让 AlphaGo 装上 MCTS 系统的模块,这种框架让设计者去嵌入不同的功能去评估变种。最后马力全开的 AlphaGo 系统按如下方式使用了所有这些大脑。
1. 从当前的棋盘布局,选择哪些下一步的可能性。他们用基础的落子选择器大脑(他们尝试使用更强的版本,但事实上让 AlphaGo 更弱,因为这没有让 MCTS 提供更广阔的选择空间)。它集中在 “明显最好” 的落子而不是阅读很多,而不是再去选择也许对后来有利的下法。
2. 对于每一个可能的落子,评估质量有两种方式:要么用棋盘上局面评估器在落子后,要么运行更深入蒙特卡罗模拟器(滚动)去思考未来的落子,使用快速阅读的落子选择器去提高搜索速度。AlphaGo 使用简单参数,“混合相关系数”,将每一个猜测取权重。最大马力的 AlphaGo 使用 50/50 的混合比,使用局面评估器和模拟化滚动去做平衡判断。
这篇论文包含一个随着他们使用插件的不同,AlphaGo 的能力变化和上述步骤的模拟。仅使用独立大脑,AlphaGo 跟最好的计算机围棋 AI 差不多强,但当使用这些综合手段,就可能到达职业人类选手水平。
AlphaGo 的能力变化与 MCTS 的插件是否使用有关。
这篇论文还详细讲了一些工程优化:分布式计算,网络计算机去提升 MCTS 速度,但这些都没有改变基础算法。这些算法部中分精确,部分近似。在特别情况下,AlphaGo 通过更强的计算能力变的更强,但计算单元的提升率随着性能变强而减缓。
优势和劣势
我认为 AlphaGo 在小规模战术上会非常厉害。它知道通过很多位置和类型找到人类最好的下法,所以不会在给定小范围的战术条件下犯明显错误。
但是,AlphaGo 有个弱点在全局判断上。它看到棋盘式通过 5*5 金字塔似的过滤,这样对于集成战术小块变成战略整体上带来麻烦,同样道理,图片分类神经网络往往对包含一个东西和另一个的搞不清。比如说围棋在角落上一个定式造成一个墙或者引征,这会剧烈改变另一个角上的位置估值。
就像其他的基于 MCTS 的 AI, AlphaGo 对于需要很深入阅读才能解决的大势判断上,还是麻烦重重的,比如说大龙生死劫。AlphaGo 对一些故意看起来正常的局也会失去判断,天元开盘或者少见的定式,因为很多训练是基于人类的棋局库。
我还是很期待看到 AlphaGo 和李世石 9 段的对决!我预测是:如果李使用直(straight)式,就像跟其他职业棋手的对决,他可能会输,但如果他让 AlphaGo 陷入到不熟悉的战略情形下,他可能就赢。