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运行原理解析/

原文地址:https://www.cnblogs.com/mata123/p/9225916.html