Mastering the game of Go with deep neural networks and tree search

有三个概念需要理解。

  1. 蒙特卡洛树搜索
  2. 策略网络
  3. 值网络

蒙特卡洛树搜索

为什么叫树搜索呢?我们把棋子在棋盘上的落子情况看作棋盘的各个状态。最开始的空棋盘看作是树的根结点,当落子时,落子之后的状态都是在上一个状态的基础上改变的,每下一个子,就相当于叶子节点又拓展了新的叶子结点。一直拓展直到棋盘上摆满了子,这棵树才停止生长。

什么是蒙特卡洛? 蒙特卡洛的思想就是模拟,是不断随机实验,最终利用很多次实验的结果去统计我们想要计算的目标变量。
比如这里的下棋,在每一步时我们该如何落子呢? 假设棋盘上当前的落子情况为状态s,下一步要采取的动作为a,那么对于每个s都应当有相应的a与之对应。我们想要知道的就是给定一个s,其对应的a是什么,a的状态是有限的,我们可以‘向前看’。随机选择一个a,然后对方再随机选择一个动作,一直到分出胜负,此时统计获胜的那方每次下棋时的(s,a),将这个元组对应的分数+1,这样经过很多次的模拟之后,每个状态-动作元组都有对应的得分,我们在下棋的时候就可以选择得分比较大的那个动作执行。

总的来说,蒙特卡洛树搜索是一种框架,它是一种思想。

策略网络

策略网络就是采用神经网络作为预测函数的策略函数。策略函数就是我们在之前说的根据当前的状态s来获取对应的动作a的函数。

值网络

值网络的作用是根据当前的状态s预测最终能获胜的概率。没有这个概率值也能做,不过预测的准确率就不行。

在预测过程中策略网络和值网络分别起到的作用是怎样的,或者说 预测过程是怎样的?


上面是论文中摘抄出来的图,这里简单说一下我的理解。
图a 实际上可以算是结果图了,就是已经计算出来了Q值,已经知道往哪个方向走是最好的。
图b 是依据policy network 生成下一个节点的过程。
图c 依据value network输出该节点的value并且执行MCTS rollout
图d 是根据文中公式计算Q值并且返回Q值最大的那条边。

下面这个图是我理解的搜索过程:

有监督的策略网络 \(p_{\theta}\),快速的策略网络 \(p_{\pi}\) ?

We train the neural networks using a pipeline consisting of several stages of machine learning (Fig. 1). We begin by training a supervised learning (SL) policy network pσ directly from expert human moves. This provides fast, efficient learning updates with immediate feedback and high-quality gradients. Similar to prior work13,15, we also train a fast policy pπ that can rapidly sample actions during rollouts. Next, we train a reinforcement learning (RL) policy network pρ that improves the SL policy network by optimizing the final outcome of games of self- play. This adjusts the policy towards the correct goal of winning games, rather than maximizing predictive accuracy. Finally, we train a value network vθ that predicts the winner of games played by the RL policy network against itself.

策略网络和值网络分别是怎么训练的?

参考:https://charlesliuyx.github.io/2017/05/27/AlphaGo%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/

转载于:https://www.cnblogs.com/mata123/p/9225916.html

alphogo 理解相关推荐

  1. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  2. stream流对象的理解及使用

    我的理解:用stream流式处理数据,将数据用一个一个方法去 . (点,即调用) 得到新的数据结果,可以一步达成. 有多种方式生成 Stream Source: 从 Collection 和数组 Co ...

  3. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  4. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  5. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  6. 熵,交叉熵,散度理解较为清晰

    20210511 https://blog.csdn.net/qq_35455503/article/details/105714287 交叉熵和散度 自己给自己编码肯定是最小的 其他的编码都会比这个 ...

  7. mapreduce理解_大数据

    map:对不同的数据进行同种操作 reduce:按keys 把数据规约到一起 看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop 与MapReduce的整体有所了解了. [前言 ...

  8. 文件句柄和文件描述符的区别和理解指针

    句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数,Windows使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等.Windows句柄有点象C语言中的文件句柄. ...

  9. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

最新文章

  1. Firefox 控制台
  2. Linux网络相关知识
  3. php admin允许空密码登陆
  4. EVA 4400存储数据恢复报告
  5. mysql 有newid()_sql newid()随机函数
  6. 大数据 清华 覃征_2021年清华(清华大学)大数据工程考研难度解析、考研经验分享...
  7. 服务器维护,日志分析常用命令
  8. html实现 左图右文_让CSS flex布局最后一行左对齐的N种方法
  9. shell下后台挂起
  10. 使用ViewPager + Fragment实现微信底部Tab效果
  11. 如何使用数据库引擎优化顾问优化数据库
  12. linux 指定jvm djava.library.path_JVM命令
  13. 德国Java工程师_1886年,德国工程师。
  14. 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划
  15. ati开源驱动_ATI Radeon 9800 Vista驱动程序-Flash和Windows视频停止或卡顿
  16. 中科微GPS模块使用教程 ATGM332D ATGM336H GSP模块 单片机程序 C程序
  17. Nexus Indexer 2.0:增量下载
  18. 10年涨7倍!纵观南京房价变迁史,看哭多少买房人!
  19. ORA-01950: 对表空间 USERS无权限
  20. 【Scala】9、Trait、Match、CaseClass和偏函数

热门文章

  1. 2018年第九届蓝桥杯C/C++ C组国赛 —— 第一题:年龄问题
  2. 2019第十届蓝桥杯C/C++ B组省赛 —— 第二题:年号字串
  3. 运行roscore时候报错 Unable to contact my own server at 及 小海龟动不了的问题
  4. 【Qt】2D绘图之绘制路径
  5. 【MFC】对话框中创建工具栏
  6. 【Linux】一步一步学Linux——talk命令(238)
  7. [Qt教程] 第15篇 2D绘图(五)绘制图片
  8. windows如何调整某个应用程序的音量 c++_微软对重启Windows 10的应用程序进行控制测试...
  9. android 打印机打印html,Android下通过wifi调用打印机打印
  10. Jfinal 对象列表返回前台json数据