MCTS如何与“精确线”一起使用

时间:2018-08-16 16:14:59

标签: machine-learning chess montecarlo monte-carlo-tree-search

因此,我熟悉更基本的树搜索算法,例如带有minimax的游戏搜索,但是我一直在尝试了解有关蒙特卡洛树搜索算法的更多信息,并且想知道它如何处理“精确线”。

在国际象棋的情况下,您可能处于30个失败动作但1个获胜线的位置,那么MTCS算法(更具体地说是UCB1函数)将如何处理呢?我对UCB1的理解是,它实际上在其子节点上进行了某种平均,因此一排象棋的UCB1值,其中您有30步失败而一个获胜的步伐应该看似低吗?

我仍在学习MCTS,但我一直有这个问题,希望有人能解释即使UCB1值可能很低,MCTS仍如何收敛到极小值。

任何知识将不胜感激!谢谢

2 个答案:

答案 0 :(得分:1)

  

我对UCB1的理解是,它本质上是一种   在其子节点上取平均值,因此一行象棋的UCB1值   你有30次失败的举动,其中1次获胜的应该是   貌似低吗?

从UCT公式w_i / n_i + c * sqrt(ln(N)/ n_i)中,我们可以看到,探索项与子访问的平方根n_i的平方成反比。这意味着赢得率最高的子节点将受到极大的青睐,因此访问量将大大增加。因此,父级的UCT得分将是平均权重,即最佳子节点的获胜率。

此效果将传播回树,导致访问次数最多的最佳行,并且每个节点的获胜率准确。这样,随着仿真次数的增加,MCTS收敛到极小值最大值。

有关理论上的更多讨论,请参见Bandit based Monte-Carlo Planning的主要结果:

  

定理6 考虑一个有限水平的MDP,其奖励按比例分配   [0,1]间隔。令MDP的范围为D,数字为   每个状态的动作数为K。考虑算法UCT,使得偏差   UCB1的项乘以D。然后估计的偏差   预期收益Xn为O(log(n)/ n)。此外,故障概率   根处的多项式收敛为零,因为   情节增长到无限。

答案 1 :(得分:1)

伊姆兰(Imran)的答案是正确的,因为从理论上讲,通常在MCTS的选择阶段中使用的UCB1策略应该最终能够处理您描述的各种情况,并且MCTS(假设我们在“选择”阶段使用UCB1之类的东西)将最终收敛到极小值评估。

但是,“ 最终”在这里表示“经过无数次MCTS迭代”。我们需要无限量的处理时间,因为只有MCTS的选择阶段才能充分处理您描述的情况类型(播放阶段无法做到),而< em>选择阶段实际上仅在树的根节点周围缓慢生长的部分中使用。因此,如果您描述的情况相对于根节点“位于”相对较近,那么我们可以期望像UCB1这样的策略可以充分地应对它们。如果它们非常深/离根很​​远,那么深以至于我们在处理时间内无法设法扩大搜索树的长度……那么MCTS确实不能很好地处理这些情况。

请注意,基于最小极大值的方法也可以说类似的话;如果他们无法进行足够深入的搜索,也可能导致评估不佳。不过,在类似minimax的算法中,故事往往更加二进制。他们要么设法进行足够深入的搜索以获得良好的评价,要么就没有找到。对于MCTS,它一开始总是会评估这些类型的情况,并且可能随着搜索树的逐渐增长而逐渐改善。

在实践中,在具有许多“陷阱”情况(如您描述的情况)的游戏中,人们认为minimax / alpha-beta /相关算法在整个整整十年中都优于基于MCTS的方法。这包括象棋游戏。在同一时期,MCTS在Go之类的游戏中的前景更加广阔。只有在a recent paper中,MCTS +深度强化学习+数量可观的硬件击败了象棋游戏中基于minimax的方法。