1. 关于Alpha zero

AlphaZero是谷歌下属公司Deepmind的新版程序。从空白状态学起,在无任何人类输入的条件下,AlphaZero能够迅速自学围棋,并以100:0的战绩击败“前辈”。
AlphaZero的工作方式:使用MCTS预测搜索,并通过神经网络智能引导。
下面将对AlphaZero使用的这两个模型进行描述。

2. MCTS蒙特卡洛搜索树

2.1 总体介绍

蒙特卡洛树搜索(Monte Carlo Tree Search)是一类树搜索算法的统称,简称MCTS。它是一种用于某些决策过程的启发式搜索算法,且在搜索巨大空间的游戏中会比较有效。
蒙特卡洛树搜索的主要目标是:给定一个游戏状态来选择最佳的下一步。
常见应用:Alpha Go、象棋or围棋的AI程序…

2.2 算法步骤

该算法主要有4个步骤:
① select(选择)
②expand(扩展)
③simulation(模拟)
④backpropagation(回溯)

  • select(选择):选择能够最大化UCB值的节点;
    2020-10-12讨论报告
    (v_i :节点估计的值,n_i :节点被访问的次数,N :其父节点已经被访问的总次数。C :可调整参数)

    最初只有根节点root,就跳到第二步;如果有子节点,一般选择“最有价值被搜索的子节点”,若选择的这个子节点还有子节点,继续选择,直到选到叶子节点,进入第二步;

  • expand(扩展):创建一个或多个子节点;
    对于上一步所选择到的节点进行扩展;

  • simulation(模拟):在某一节点用随机策略进行游戏,又称playout/rollout;
    采用随机策略,从上一步扩展的叶子结点开始一直模拟到游戏结束。即从这个叶子结点的状态开始,博弈双方都随机落子直至分出胜负。模拟的次数如果足够多,且大部分都是胜,则说明了局面的赢面是大的;

  • backpropagation(回溯):使用随机搜索的结果来更新整棵搜索树;
    对于上一步模拟出的结果,可能是胜、负或平,将这个结果依次回传至根节点,更新了整个路径的节点的值。

2.3 模拟图

2020-10-12讨论报告

2.4 算法流程图

2020-10-12讨论报告

3. 神经网络

  • 输入:当前的棋局状态
  • 输出:输出包含两部分,① 当前棋局状态下各个可能的落子动作对应的获胜概率p;② 获胜或者失败的评估[-1,1]

4. 一些问题

  1. MCTS 搜索需要足够多的迭代次数才能获得好的解,且搜索的范围太大使得其速度较慢;
  2. 对于深度学习算法的优化

相关文章: