蒙特卡洛树搜索(MCTS)算法
来源:互联网 发布:mac安装silverlight 编辑:程序博客网 时间:2024/06/05 02:42
对Alpha-zero很感兴趣,所以耐心阅读了mastering the game of go without human knowledge
Deepmind 官网的介绍:AlphaGo Zero: Learning from scratch
在阅读的过程中,对蒙特卡洛树搜索算法不甚了解,下面翻译了youtube上一位英国教授的网络课程视频。
同时,我在CSDN资源中上传了自己研究AlphaGo的两篇文章后,写的两个版本的AlphaGo算法结构和MCTS结构的对比分析的文章,名为”AlphaGo VS AlphaGo Zero 对比分析讲解”,有兴趣的读者可以下载。
蒙特卡洛树搜索(MCTS)算法
MCTS算法是一种决策算法,每次模拟(simulation)分为4步:
1. Tree traversal:
其中,
2. Node expansion
3. Rollout (random simulation)
4. Backpropagation
步骤1,2的流程图如下:
步骤3 Rollout 的细节:
Rollout(S_i): loop forever: if S_i is a terminal state: return value(S_i) A_i = random(available-actions(S_i)) S_i = simulate(A_i,S_i)
讲一个具体的例子:
- 树的初始状态:
T 表示总的 value, N 表示被访问的次数(visit count)。A表示动作(action).
第一次迭代(iteration):
从状态
这种情况下,我们就按顺序取第一个,即
按照步骤1,2的流程图,我们现在需要判断目前的结点
Rollout其实就是在接下来的步骤中每一步都随机采取动作,直到停止点(围棋中的对局结束),得到一个最终的value。
假设Rollout最终值为20.
接下来,进行步骤4 Backpropagation,即利用Rollout最终得到的value来更新路径上每个结点的T,N值。
之后把Rollout的结果删除:
MCTS的想法就是要从
第二次迭代:
我们从
首先,计算下面两个结点
所以,选动作
同上,现在要判断结点
之后进行Backpropogation:
第三次迭代:
首先,计算UCB1值:
执行动作
是否是叶节点? 是。
被访问次数是否为0?否。
按照流程图所示,现在进入Node expansion步骤。同样假设只有两个动作可选。
选择
更新路径上每个结点的值,之后删除Rollout的值:
第四次迭代:
首先,计算UCB1值:
选择
更新路径上的结点:
假设我们设定最大迭代次数为4,则我们的迭代完毕。这时,利用得到的树来决定在
以上就是MCTS的过程,是翻译自youtube.。
以上内容如有错误,皆由博主负责,与youtube上教授无关。
- 蒙特卡洛树搜索(MCTS)算法
- 蒙特卡洛树搜索(MCTS)
- 蒙特卡洛树搜索 MCTS
- 蒙特卡洛树搜索 MCTS
- 蒙特卡洛树算法 (MCTS)
- 28 天自制你的 AlphaGo(五):蒙特卡洛树搜索(MCTS)基础
- MCTS and Alpha-Beta Search | 搜索算法对比 | 附Alpha Zero论文下载 | 解读技术
- 那么蒙特卡洛树搜索(Monte Calro Tree Search, MCTS)究竟是啥
- python实现的基于蒙特卡洛树搜索(MCTS)与UCB的五子棋游戏
- python实现的基于蒙特卡洛树搜索(MCTS)与UCT RAVE的五子棋游戏
- 区间搜索(算法)
- 搜索算法(poj1011)
- MCTS/MCPD
- 搜索算法-二分搜索(折半查找)
- 禁忌搜索算法(TS)
- 常用算法(搜索) 二
- 常用算法(搜索) 三
- A*(路径搜索)算法
- eclipse中不能打断点的解决方案
- 欢迎使用CSDN-markdown编辑器
- 安利20个有用的PHP类库
- 第八周项目3对称矩阵压缩存储的实现与应用(2)
- 前端(一) jQuery 、 Js 、Ajax
- 蒙特卡洛树搜索(MCTS)算法
- Ubuntu 14.04下jdkHadoop2.8集群安装配置教程并运行wordcount实例
- 【队内胡策】令咒
- 安卓如何优雅的加载图片问题探究
- leetcode---partition-list---链表
- 基础知识(面试用)
- PullToRefreshScrollView
- 使用Vue制作幻灯片
- 2017CCPC<哈尔滨站> 赛后总结