我们这里所说的MCTS(蒙特卡洛树搜索),是指通过蒙特卡洛评估树搜索,对强化学习环境π(•|s)建模的方法。

何为蒙特卡洛?

Monte Carlo method,也就是先从某个分布采样,再基于采样的结果近似分布统计量。
直觉就是,当采样足够多的时候,采样数据集就能代表真实分布。

为什么要基于采样数据呢?
采样数据是有限的,使计算变得可行,也使梯度学习策略SGD变得可行。

百度百科

何为蒙特卡洛评估?

Monte Carlo estimation,一种求解强化学习的方法。

  1. 蒙特卡洛方法,Q(s, a)取均值;
  2. 贪心策略,π(s)取最大。

Sutton RL an introduction

Mode-based vs Model-Free

由于MCTS一般应用于Model-based,有必要先了解下Model-based和Model-free。

如果把整个强化学习任务看作一个整体的话,不管采用什么算法架构,人类开发(环境建模、Agent设计)和机器学习的总工作量是不变的,最终都是完成决策这个任务。
不同的架构,就是这三方面分配的任务不同。

所谓的Model-based,就是Agent事先能看到环境本身的模型即MDP相关的分布:状态转移概率P(s'|s,a)和奖赏函数R(r|s, a),或环境直接给出,或通过统计学习得到。
当环境有很明确的先验知识时,可以以环境Model的形式输入,减少机器学习的工作量,提高整体效率。

而在Model-free场景下,Agent执行某个Action后只能得到环境的即时反馈(s_new,reward),看不到环境的分布。

一个Model-based环境,如果通过再加一个采样器,对于Agent来说只能看到即时采样结果,其实已经变成了Model-free的形式,就可以采用Model-free相关的算法。

个人理解,通常所说的Model-free,其实P(s'|s,a)、R(r|s, a)是确定的,这种情况下的好处是设计环境很方便,只需要实现Action之后的场景状态更新即可。
而基于外加采样器的Model-free场景,环境本身还是需要设计或学习得到的,这个也正是人类专家知识输入的方式。
当然P(s'|s,a)、R(r|s, a)是确定的,也可以看作采样的一种。

所以可以从另一个角度再区分一下Mode-base和Model-free,如果学习是直接基于采样样本的,是Model-free;如果学习是基于环境相关概率分布的,是Model-based
需要注意,基于采样和基于分布,其实并没有本质区别,类比于点估计和分布估计,二者都有可能找到最优解。
但基于采样样本的,通过Batch Learning,更适合梯度SGD学习
如果P(s'|s,a)、R(r|s, a)是确定的,对Batch Size并没有要求,一条也能学习,因为一条数据已经代表了分布;而如果P(s'|s,a)、R(r|s, a)是不确定的,理论上Batch Data尽量能反映分布较好

MCTS过程

MCTS对环境的要求是能够采样即可,采样基于Simulator的场景较多。
MCTS建立一棵树的目的,就是确定根节点root的State对应的最优的Action
主要还是用于生成分布π(a|s),供于采样,为环境建模。
如果用树本身求解Q*(s, a), 需要接受Q(s, a)是随机版的原始累计折扣奖赏

给定一个根节点s0,建立一棵树的过程如下:

  1. 确定路径(Episode)的总数E、确定树的最大深度D。一个Episode表示一条路径。
  2. 初始化根节点root;
    每个节点应该包含经过该节点的总Episode数 N(v)及该节点的累计reward Q(v),初始化为0。

int8.io

  1. 选择
    给定一个状态S,如果其对应的所有Action都已经存在与树中,则采用UCT policy优先选择UCT较大子节点,直至找到还有没有访问的子节点的节点。UCT:Upper Confidence Bound 计算:

int8.io

  1. 拓展
    从还没有访问的子节点中随机选择一个,追加到树中。
  2. 模拟
    剩下的节点随机选择Action,直至达到最大深度D或到达终止状态的叶子节点
  3. 回溯
    从叶子节点开始,通过折扣因子奖赏回溯Episode,更新每个节点的计数及奖赏信息。
  4. 重复3~6,直至达到Episode总数E上限。

最终当整棵树建好后,采用蒙特卡洛评估即通过均值Q(v)/N(v)的估计Q(v),通过最大化Q(s,a)选取a;也可以通过访问次数来近似π(•|s)分布。

MCTS与Model-free算法结合

当π(a|s)模拟好之后,一个Model-based环境就可以生成采样数据(s, a, r, s'),基于这些采样数据,就可以采用常见的Model-free方法,来优化MCTS里面的Q(s, a)近似。

以AlphaZero为例,神经网络近似策略policy π(.|s)及state-value V(s),UCT更新函数优化如下:

acme paper

损失函数包含π(•|s)与π_mcts(•|s)两个分布的距离V(s)的均方误差

蒙特卡洛树搜索_蒙特卡洛树搜索与Model-free DRL相关推荐

  1. gorm preload 搜索_翻译技术 | 搜索神器:Wox+Everything使用教程

    搜索神器:Wox+Everything使用教程 1. 工具简介 1.1 Everything Everything是一款占用内存低.搜索速度快的本地搜索软件,可以实现对于电脑本地硬盘中文件的的快速搜索 ...

  2. 蒙特卡洛树搜索算法实现_蒙特卡洛树搜索实现实时学习中的强化学习

    蒙特卡洛树搜索算法实现 In the previous article, we covered the fundamental concepts of reinforcement learning a ...

  3. 蒙特卡洛树搜索_蒙特卡洛树是什么算法?

    点击上方"MLNLP",选择"星标"公众号 重磅干货,第一时间送达 编辑:忆臻 https://www.zhihu.com/question/39916945 ...

  4. python智慧树期末_智慧树大数据python期末答案

    智慧树大数据python期末答案 中国加入wto后亚洲经济重心迅速向日本向中国转移掀起了本轮经济全球化的库兹涅佐夫号航母着舰区是航母斜角甲板,斜角甲板上面有好的戏剧语言不仅能够推动什么发展同时还能揭示 ...

  5. everything文件搜索_本地文件搜索神器,Everything、Listary、AnyTXT Searcher!

    今天来分享一下3个本地文件搜索工具. 1.Everything everything应该是最被人们熟知的一个了,毕竟它完全免费,占用内存小.搜索速度快,是一个非常实用的工具. 也许有人会说,Windo ...

  6. java中多个输入框搜索_如何在一个搜索框中输入多个字段的值进行查询?

    ` 搜索 export default { data() { return { input: '',//用来接受input框的值 name:'',// 用来存储foreach的对应的值 id:'',/ ...

  7. wpf展开树节点_回归树分析与sklearn决策树案例,来玩一会

    摘要: 决策树是非常基础的算法,其不仅能够进行分类还可以进行回归处理,也就是回归树.要想提高决策树的性能还需要做好剪枝的工作. 关键词: 回归树,剪枝 1 回归树 之前已经介绍过决策树的基本理论了:这 ...

  8. python实现excel搜索_用python搜索excel文件

    首先,我是一个python初学者,所以我为这个小问题道歉:D 我尝试使用python(v 2.7)搜索一个特定的单词到一个*.xls文件中 简短的问题描述/规格: 一.test.xls是输入文件 2. ...

  9. 小小智慧树机器人_智慧树直播抽奖名单公布啦!

    原标题:智慧树直播抽奖名单公布啦! 咕噜咕噜, 小朋友们.大朋友们, 你们好! 3月22日, 小咕咚和智慧树家族 一起去幼儿园直播啦! 真是好看又好玩! 让我们一起回顾 这场直播的精彩瞬间吧~ 还有最 ...

最新文章

  1. python 绘制折线图-怎样用python绘制折线图
  2. 马哥2013年运维视频笔记 day02 Linux系统常识
  3. linux系统在硬盘上安装程序,在硬盘中安装Linux操作系统最简单的方法
  4. Svg 嵌入可编辑的div
  5. 计算机光驱参数,请问,电脑光驱插入关盘,打开时显示“参数不正确,无法打开”,这是什么故障,怎么处理?...
  6. C++STL容器,你真的会用了吗?——插入、删除、遍历和查找操作性能对比——遍历和查找(精简易懂版,句句干货)
  7. C#的winform的中委托显示图片
  8. merge语句使用_使用SQL:2003 MERGE语句的奥术魔术
  9. React开发(168):...dva调用不成功的原因
  10. otdr全部曲线图带解说_副业推荐:电影解说号,4个快速见收益的技巧
  11. 自动驾驶攻破的难点在哪,何时能到Level 5?
  12. Java结构型设计模式之装饰者模式
  13. unity使用BMFont制作位图字体
  14. 相机标定:像素焦距和毫米焦距的转换,根据内参计算FOV
  15. linux控制NVme硬盘点灯,硬盘点灯模式的设置方法及装置与流程
  16. Request Headers 和Response Headers——请求头和响应头
  17. 5G+边缘计算 物联网嵌入式边缘计算平台
  18. linux编译各种报错(拙见)
  19. 招聘 | 胡传鹏博士课题组招硕士、博士
  20. 资金、时间、盈利“三杀坎”,外卖尾部平台如何求生?

热门文章

  1. 【信息系统项目管理师】第5章-项目范围管理 知识点详细整理
  2. Git 小问题:fatal: not a git repository (or any of the parent directories): .git
  3. Android qemu pipe高速管道(九)
  4. Android模拟器图形绘原理(二十二)
  5. 证明: 1/x = a^(-1)
  6. 改变PCM采样点计算来控制音量
  7. 记录android离屏渲染的一些资料
  8. 深度学习自学(十七):caffe-sphereface-编译matcaffe遇到的问题
  9. webservice 参数为xml_CXF-web service之集大成者,想要学好web service,必须会
  10. java placeholder_java swing JTextField设置PlaceHolder