MCTS 是否甚至是强化学习算法可能还有待商榷,但我们假设我们在这里将其视为 RL 算法。
出于实际目的,MCTS 确实应该被认为是一种基于模型的方法。下面,我将描述如何以某种方式将其视为无模型 RL 方法……然后回到为什么该观点在实践中并不经常有用。
更具体地说,在本文之后,我们将 MCTS 搜索过程视为基于值的 RL 算法(它学习值函数的估计,非常类似于 Sarsa,问-learning 等),它仅限于学习它选择由搜索树中的节点表示的状态的值(它选择表示的这组状态在搜索过程中随着时间的推移逐渐增长)。
与传统的 RL 方法不同,这样的 MCTS 过程并不会真正产生可以在“训练”过程之后提取并在之后在许多不同状态下重新使用的策略或详尽/可概括的价值函数估计量。我们通常在运行 MCTS 后下棋,然后丢弃所有内容并重新开始下一步(也许我们会保留搜索树的相关部分并重用它,但这是一个小细节......我们肯定会赢'无法在另一场比赛/游戏/剧集中重复使用我们的搜索结果)。
MCTS 搜索过程本身可以被视为无模型RL 方法;搜索的每一次迭代都可以被视为“代理”的实际片段,它在“真实”环境中以无模型的方式收集经验(但不像我们正在运行完整搜索的游戏那样真实)过程),其中这个“内部代理”首先遵循选择策略一段时间(例如 UCB1),然后是剧集其余部分的播放策略(例如统一随机)。
MCTS 迭代“内部”的这种“内部”代理可以被视为从无模型的 RL 过程中学习。这种观点在实践中的主要问题是,因为 MCTS “决定” 像激光一样关注相对较小的状态子集(围绕根节点),所以这个过程实际上只会导致为该状态学习一些有用的东西在根节点(可能还有一些最近的子/孙/等)。我们并没有真正学到可以在未来在 MCTS 中轻松重复使用的东西。这在实践中意味着我们必须能够在需要做出决定时(即回合制游戏中的每一个回合)重新运行完整的“强化学习过程”(或搜索)。
如果你有一个模拟器或环境模型,这是可行的,你可以在其中进行学习……但是我们真的回到了实际上有一个基于模型的方法。
有趣的事实:如果您喜欢将 MCTS 视为一种无模型 RL 方法,您还可以通过在 MCTS 迭代“内部”结合其他形式的计划/搜索,再次将其转变为基于模型的方法。例如,您可以在每次 MCTS 迭代中运行 MiniMax 的小实例,我想即使在这种观点下,这也会再次将该方法转变为基于模型的方法。