AlphaGo使用蒙特卡洛树搜索(Monte Carlo tree search),借助值网络(value network)与策略网络(policy network)这两种深度神经网络,通过值网络来评估大量选点,并通过策略网络选择落点。
什么是 MCTS?
全称 Monte Carlo Tree Search,是一种人工智能问题中做出最优决策的方法,一般是在组合博弈中的行动(move)规划形式。它结合了随机模拟的一般性和树搜索的准确性。
MCTS 受到快速关注主要是由计算机围棋程序的成功以及其潜在的在众多难题上的应用所致。超越博弈游戏本身,MCTS 理论上可以被用在以 {状态 state,行动 action} 对定义和用模拟进行预测输出结果的任何领域。
基本算法
基本的 MCTS 算法非常简单:根据模拟的输出结果,按照节点构造搜索树。其过程可以分为下面的若干步:
搜索树的构建过程
-
选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。
-
扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。
-
模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。
-
反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。
参看Tutorial 了解关于这个过程更多的信息。
每个节点并需包含两个重要的信息:一个是根据模拟结果估计的值和该节点已经被访问的次数。