zoukankan      html  css  js  c++  java
  • alphogo 理解

    有三个概念需要理解。

    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_{ heta}),快速的策略网络 (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运行原理解析/

  • 相关阅读:
    AOS编排语言系列教程(五):创建安全组SecurityGroup
    AOS编排语言系列教程(四):创建弹性云服务器ECS
    GO语言实现 自动登陆华为云并获取cookies 详解(兼介绍SSO单点登陆)
    人脸匹配搜索指北
    人脸识别使用base64的方式添加人脸
    AOS编排语言系列教程(三):创建子网Subnet
    AOS编排语言系列教程(二):初识AOS编排语言,创建你的第一个AOS模板
    华为云社区·CSDN【寻找黑马程序员】有奖征文活动,邀你挥洒才情
    AOS编排语言系列教程(一):开启AOS之旅,解锁各种自动化姿势
    00063_String类
  • 原文地址:https://www.cnblogs.com/mata123/p/9225916.html
Copyright © 2011-2022 走看看