围棋包含了庞大的搜索空间,对于落子位置的评估难度远超简单的启发式算法。那么,AlphaGo究竟是如何决定落子的呢?
AlphaGo采用了一种新颖的机器学习技术,结合了监督学习和强化学习的优势。通过训练形成一个策略网络(policy network),将棋盘上的局势作为输入信息,并对所有可行的落子位置生成一个概率分布。然后,训练出一个价值网络(value network)对自我进行预测,以-1(对手的绝对胜利)到1(AlphaGo的绝对胜利)的标准,预测所有可行落子位置的结果。这两个网络自身都十分强大,而AlphaGo将这两种网络整合进基于概率的蒙特卡罗树(MCTS)中,实现了它的优势。
新版的AlphaGo产生大量自我对弈棋局,为下一代版本提供了训练数据,此过程循环往复。
获得棋局信息后,AlphaGo会根据策略网络探索哪个位置同时具备高潜在价值和高可能性,进而决定最佳落子位置。在分配的搜索时间结束时,模拟过程中被系统最频繁考察的位置将成为AlphaGo的最终选择。在经过先期的全盘探索和过程中,以及对最佳落子的不断揣摩后,AlphaGo的搜索算法就能在其计算能力之上加入近似人类的直觉判断。
在业内人士看来,AlphaGo最强大的地方并不体现在具体某一手棋或某个局部变化中,而在于在每一局棋里的独特视角,所以,其棋风本身并不容易总结。但总体来说,它更倾向于一种自由开放的行棋风格,没有什么先入为主的概念,也没有什么必须遵守的规则。这种对局哲学常让它下出违反第一感但极具威力的一手棋。基于此,柯洁觉得人类可以向它学习:“在人类的棋局中,可以大胆创新,大胆开拓自己的思维。”