【问题标题】:How to understand the 4 steps of Monte Carlo Tree Search如何理解蒙特卡洛树搜索的 4 个步骤
【发布时间】:2020-03-13 15:48:26
【问题描述】:

来自许多博客和这个https://web.archive.org/web/20160308070346/http://mcts.ai/about/index.html 我们知道MCTS算法的过程有4个步骤。

  1. 选择:从根节点 R 开始,递归地选择最佳子节点,直到到达叶节点 L。

叶节点 L 在这里是什么意思?我认为它应该是一个代表游戏结束状态的节点,或者另一个结束游戏的词。 如果 L 不是终端节点(游戏的一个结束状态),我们如何确定选择步骤在节点 L 上停止?

  1. 扩展:如果 L 不是终端节点(即它不会结束游戏),则创建一个或多个子节点并选择一个 C。

从这个描述中我意识到我之前的想法显然是错误的。 那么如果 L 不是终端节点,则意味着 L 应该有孩子,为什么不在“选择”步骤继续从 L 中寻找孩子呢? 在这一步我们有 L 的孩子列表吗?
从这一步本身的描述来看,我们什么时候创建一个子节点,什么时候需要创建多个子节点呢?我们根据什么规则/策略选择节点 C?

  1. 模拟:从 C 运行模拟播放,直到获得结果。

由于第一个问题的混乱,我完全不明白为什么我们需要模拟游戏。我认为从选择步骤,我们可以到达终端节点,游戏应该在这条路径的节点 L 上结束。我们甚至不需要做“扩展”,因为节点 L 是终端节点。

  1. 反向传播:使用模拟结果更新当前移动序列。

很好。最后一个问题,你从哪里得到这些问题的答案?

谢谢

顺便说一句,我也发布了同样的问题https://ai.stackexchange.com/questions/16606/how-to-understand-the-4-steps-of-monte-carlo-tree-search

【问题讨论】:

  • 这不是关于特定编程问题的问题,因此是题外话。我建议在 www.stats.stackexchange.com 上发布该问题。
  • 谢谢。我会把它贴在那里。
  • @Wenbo 这比统计数据更适合 ai.stackexchange.com,因为该方法广泛用于 AI。另见:stackoverflow.com/questions/44230911/…
  • @NathanS。你说的对。那你就知道我是新手了。
  • 这是主题。帮助中心提供了software algorithm 作为您可以询问的示例。一般来说ask algorithms questions on SO even if the question doesn't contain any code 是完全可以的。 OP问了很多问题,但回答第一个问题就足以澄清其他问题(这只是对算法特定步骤的误解)。

标签: algorithm search artificial-intelligence monte-carlo-tree-search


【解决方案1】:

叶节点L在这里是什么意思?

为了解释起见,我假设选定节点的所有子节点都是在算法的扩展阶段添加的。

算法启动时,树只由根节点(叶节点)组成。

扩展阶段将所有从根可到达的状态添加到树中。现在你有一个更大的树,其中叶子是最后添加的节点(根节点不再是叶子)。

在算法的任何给定迭代中,树(图片的灰色区域)都会增长。它的一些叶子可能是终止状态(根据游戏/问题的规则),但它没有被授予。

如果扩展过多,可能会耗尽内存。所以扩展阶段的典型实现只在现有树中添加一个节点。

在这种情况下,您可以将单词 leaf 更改为 not fully expand

从根节点R开始,递归选择最优子节点,直到到达未完全展开节点L


我们根据什么规则/策略选择节点 C?

它取决于域。通常你会随机选择一个移动/状态。


注意事项

  1. 图片来自实时游戏的多目标蒙特卡洛树搜索(Diego Perez、Sanaz Mostaghim、Spyridon Samothrakis、Simon M. Lucas)。

【讨论】:

  • 谢谢@manlio。我从ai.stackexchange.com/questions/16606/… Philip 介绍的 youtube.com/watch?v=UXW2yZndl7U 得到了答案。我也在那里回答了我的问题。
  • 关于“叶”节点的定义,关键是这个问题的“叶”节点的主机/所有者是什么树。通过“扩展”步骤,我们实际上是在用 MCTS 创建一棵树。树,一个“叶子”节点的所有者,应该是我们正在构建的那个,而不是我们头脑中的游戏状态树(也许它太大而无法填满我们的头脑,实际上是游戏状态树不存在)。然后我们知道“叶”节点是我们正在构建的树中没有任何子节点的节点。希望我们也这么认为。
  • 什么是“感谢您的反馈!声望低于 15 人的投票将被记录,但不要更改公开显示的帖子得分。”意思是……
  • @Wenbo 希望我们也这么认为...是的,MCTS 构建的树也是如此。在实际实现中,算法可能扩展(添加一个子节点)一个不是传统计算机科学含义中叶子的节点:它可能是一个尚未完全扩展的内部节点.
猜你喜欢
  • 1970-01-01
  • 2018-06-27
  • 2020-04-09
  • 2012-02-21
  • 2017-08-12
  • 1970-01-01
  • 2018-11-20
  • 2018-05-03
  • 2018-09-02
相关资源
最近更新 更多