阿尔法围棋是怎样战胜世界当今顶尖棋手的
阿尔法围棋横扫围棋界当今顶尖高手。四比一赢韩国的李世石九段,升级Master后,快棋全胜六十位中韩日三国一流高手。其后,在三番满棋中,三比零完胜世界等级分最高的柯洁。随后,又轻取中国五位世界冠军组合。聂卫平说,阿尔法围棋的棋力有二十段。
那么,阿尔法围棋是怎样战胜世界当今顶尖棋手的呢!根据我对围棋的理解,以及从文献上对阿尔法围棋的了解,谈谈阿尔法围棋的算法。
围棋盘面361个点,如果穷尽所有对策可能性,数量级是361!。这是现代计算机无法承受的。对方走了一步棋后,阿尔法围棋有360中可能的选择,阿尔法围棋应用启发式(heuristic)算法只选择250种可能性,也假设对手只选择250种可能性,算步深度12步。如果用树结构表示,这个树有250^12个叶子。这个数也很大。阿尔法围棋应用Monte Carlo随机算法在250^12个叶子中随机选取一个子集。然后,对这个子集进行估价。
所谓估价,就是对子集中,每个叶子所代表的棋形进行评估。这与人类棋手的审局是类似的。找到价值最大的叶子,回溯到树根,就找到了当前最佳一手。
估价的模型是通过学习获得的。首先可以用估价(启发式算法)和最后价值的实现修改模型,当然对手越强,越客观。还有,把棋形多维量化,建立拟合模型。这样训练数据越多,模型越客观。千古无同局,不能期待当前棋形能在训练数据中找到,但可以对模型查表的形式(插值)得到棋形的价值。当然,这个算法是很复杂的,应该是阿尔法围棋的核心算法。
在对策组合上,即便是阿尔法围棋考虑250^12个叶子的十分之一,也比人类棋手考虑得多。经过学习,估价模型返回的值也比人类客观。所以,阿尔法围棋当然要战胜世界顶尖围棋高手。