🗒️蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)

date
icon
password
Sub-item
Blocked by
Parent item
type
status
slug
summary
tags
category
Blocking
  • MCTS是一种用于决策过程的算法
  • 它结合了随机模拟和树状搜索的优点
 
 
树搜索:
  • 每个节点都是一种行动
  • 每个父节点的子节点都是基于父节点而衍生出的各种可能性

算法步骤

 
  1. 选择(Selection)
  1. 扩展(Expansion)
  1. 模拟(Simulation)
  1. 反向传播(Backpropagation)
 

1. 选择(Selection)

选择阶段从根节点开始,沿着树选择一个子节点,直到到达一个未完全扩展的节点。
这里解释下,什么节点,以及什么叫未完全扩展的节点
  • 我们可以把每一个节点都认为是一种动作,假设我们现在处于A节点,那就意味着A节点下的abcd节点都是基于A动作而可能的行动
  • `未完全扩展的节点`指的就是该节点接下来所有可能的行动没有被完全探索过
 
选择的策略通常是基于“上置信区间应用于树(Upper Confidence Bound 1)”(UCB1)公式。
上置信区间
  • UCB1公式用于计算每个子节点的得分,选择得分最高的节点进行下一步操作。
  • ​ 是节点的胜利次数。
  •  是节点  的访问次数。
  •  是父节点的访问次数。
  •  是探索参数,通常取
 
公式记忆:
  • 将公式想象成一个权衡装置,左边是当前已知的价值,右边是可能的未知潜力
  • 左边已知价值:,很简单,胜利次数除以总次数
  • 右边未知潜力:, 也很简单,父节点的访问次数固定,节点被访问得越多,潜力就越小
 
 

2. 扩展(Expansion)

在选择阶段结束时,如果选择的节点是非终端状态且未完全扩展,则创建一个或多个子节点。
  1. 在选定的叶节点中,检查是否可以扩展。
  1. 如果该节点不是终局状态且还未完全展开,则从可能的动作中选择一个未被探索的动作。
  1. 根据这个动作生成一个新的子节点,并将其添加到树中。
 
 

3. 模拟(Simulation)

从扩展的节点进行随机模拟,直到到达终端状态。模拟的结果用于评估该节点。
 

4. 反向传播(Backpropagation)

将模拟的结果反向传播到路径上的所有节点,更新它们的访问次数和胜利次数。
 

举例说明

假设我们在一个简单的井字棋(Tic-Tac-Toe)游戏中使用MCTS。每个节点代表一个棋盘状态,模拟通过随机选择合法的下一个动作来进行。
  1. 选择:从根节点(初始棋盘状态)开始,选择具有最高UCB1值的子节点。
  1. 扩展:在选择的节点上扩展一个新的可能动作。
  1. 模拟:随机模拟直到游戏结束,并返回结果(胜、负、平)。
  1. 反向传播:将结果更新到路径上的每个节点。
通过多次迭代,MCTS可以有效地评估每个可能的动作,选择最优的策略
上一篇
RLHF
下一篇
简单欧洲史
Loading...
文章列表
个人站点-主NLP
欧洲史
开发工具
Linux
计算机软件
DL-训练
历史-欧洲史
历史-中国史
中国史
DL-公式推导
DL-算法原理
DL-工程化
DL-数据
计算机硬件
可解释性
LLM-基础
传统NLP
社会运转
训练框架
生活记录
技术报告
强化学习