我有一个关于Monte Carlo Tree Search的小但可能很愚蠢的问题。我理解其中的大部分内容,但一直在查看一些实现,并注意到在MCTS针对给定状态运行并且返回了最佳移动之后,该树被丢弃。因此,对于下一步行动,我们必须在这个新状态下从零开始运行MCTS以获得下一个最佳位置。
我只是想知道为什么我们不保留旧树的一些信息。似乎有关于旧树中状态的有价值信息,特别是考虑到最佳移动是MCTS最常探索的移动。有什么特别的原因我们不能以某种有用的方式使用这些旧信息吗?
答案 0 :(得分:7)
某些实现确实保留了信息。
重复使用搜索树 在随后的时间步骤:对应于播放动作的子节点成为新的根 节点;此子项下面的子树及其所有统计信息都会保留,而其余部分则保留 树被丢弃了
答案 1 :(得分:1)
原因可能如下。
展开是截断值的估计,最大长度后的贡献将被丢弃。
假定最大展开深度为N。
如果您考虑平均奖励为!= 0(例如> 0)的环境。
采取措施并获得观察结果后,可以选择树的子节点。
现在,由于根节点已被丢弃,因此分支的最大长度和参与节点值评估的卷展栏的最大长度为N-1。
但是,新的模拟显然仍将具有长度N,但必须将其与长度为N-1的模拟结合起来。
更长的模拟将具有偏差值,因为平均奖励为!= 0
这意味着根据混合长度评估对节点进行评估,这取决于不同长度的模拟比例。
避免重复使用较短长度的旧模拟的另一个原因是由于采样引起的偏差。想象一下一个T迷宫,其中在深度d处左侧最大奖励= R / 2,而在深度d + 1处右侧最大奖励=R。第一步,能够在深度d达到R / 2奖励的所有左侧路径,将在第二步中使用可回收的树,而右侧的路径则较不常见,并且有更大的机会到达奖励R。从一棵空树开始,迷宫两边的概率相同。
Alpha Go Zero(请参阅Peter de Rivaz的答案)实际上并不使用部署,而是使用值近似(由深度网络生成)。值不是截断的估计。因此,Alpha Go Zero不受此分支长度偏差的影响。
Alpha Go Zero的前身Alpha Go组合了卷展栏和值的近似值,并重新使用了树。.但是,可能没有这个原因,没有新版本不使用卷展栏。同样,“ Alpha Go归零”和“ Alpha Go”都不使用动作的值,而是使用在搜索过程中选择动作的次数。至少在平均奖励为负的情况下,该值受长度偏差的影响较小。
希望这很清楚。