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

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

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

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

最佳答案

我了解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)。此外,故障概率
  根处的多项式收敛为零,因为
  情节增长到无限。

关于machine-learning - MCTS如何与“精确线”一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51881397/

10-12 21:25