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值的节点;
(v_i :节点估计的值,n_i :节点被访问的次数,N :其父节点已经被访问的总次数。C :可调整参数)最初只有根节点root,就跳到第二步;如果有子节点,一般选择“最有价值被搜索的子节点”,若选择的这个子节点还有子节点,继续选择,直到选到叶子节点,进入第二步;
-
expand(扩展):创建一个或多个子节点;
对于上一步所选择到的节点进行扩展; -
simulation(模拟):在某一节点用随机策略进行游戏,又称playout/rollout;
采用随机策略,从上一步扩展的叶子结点开始一直模拟到游戏结束。即从这个叶子结点的状态开始,博弈双方都随机落子直至分出胜负。模拟的次数如果足够多,且大部分都是胜,则说明了局面的赢面是大的; -
backpropagation(回溯):使用随机搜索的结果来更新整棵搜索树;
对于上一步模拟出的结果,可能是胜、负或平,将这个结果依次回传至根节点,更新了整个路径的节点的值。
2.3 模拟图
2.4 算法流程图
3. 神经网络
- 输入:当前的棋局状态
- 输出:输出包含两部分,① 当前棋局状态下各个可能的落子动作对应的获胜概率p;② 获胜或者失败的评估[-1,1]
4. 一些问题
- MCTS 搜索需要足够多的迭代次数才能获得好的解,且搜索的范围太大使得其速度较慢;
- 对于深度学习算法的优化