我想蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)突然为人所知还是得益于DeepMind的AlphaGo。一瞬间,关于解析AlphaGo背后技术的文章大量涌现,其中的一个核心技术就是本节MCTS的一个扩展。本节我们基于前面的知识,来看看MCTS究竟是什么?
首先,我们给MCTS下两个定义。第一,MCTS是一个决策时规划算法;第二,MCTS是一个rollout算法。不同之处在于MCTS中会部分的保存值函数,从而能够指导仿真产生更高回报值的轨迹。
MCTS
在MCTS中,每当我们遇到一个新的状态,需要选择动作时,就会执行MCTS(决策时规划)。每一个MCTS更新过程都是一个迭代过程。这个迭代过程会仿真很多从当前状态开始直到终止态的轨迹(rollout)。MCTS的核心思想是专注于哪些获得高的评估回报的仿真,并且基于先前的高回报仿真轨迹不断的往外扩展,产生新的仿真经验。
MCTS工作机理
在MCTS中,重要的过程也是采样轨迹,然后基于采样轨迹利用MC方法估计值函数。它的特殊之处在于如何采样轨迹和进行值备份。总结起来可以分为四步,如下图所示:
- 选择。在一个根节点上(当前状态&