我认为 OP 将 AlphaGo 与 alpha-beta 混淆了。在 alpha-beta 中,您确实会使用策略网络来帮助修剪,但不是在这里。同样,没有修剪,因为该算法依赖于蒙特卡洛树搜索 (MCTS)。
任何认为我的答案太长的人可能会跳到摘要部分,我在其中说明了为什么这两个网络不是冗余的。
在下面的例子中,我将做一些简化以使我的想法更容易理解。
例子:
想象一下,你有一个有两个合法动作的位置。第一步对你来说是一个彻底的失败,但是,第二步给你一个获胜的优势。
评估网络
假设 Google 为您提供的评估网络是完美的。它可以完美地评估我们示例中的任何叶子位置。我们不会在示例中更改我们的价值网络。
为了简化我们的示例,假设我们的价值网络给出:
- -1000 对于任何对您来说是损失的叶子位置
- +1000 任何对你来说都是胜利的叶子位置
政策网络
假设 Google 为您提供了两个策略网络。为我们的位置生成的概率是:
- 策略 1:移动 1 为 0.9,移动 2 为 0.1
- 策略 2:移动 1 为 0.2,移动 2 为 0.8。
请注意,我们的第一个策略网络为我们的示例提供了不正确的先验概率。它为第 1 步给出 0.9,这是一个失败的举动。这很好,因为即使是谷歌也无法训练出完美的策略网络。
玩第一个策略网络
AlphaGo 需要用 Monte-Carlo 生成模拟,它需要选择移动 1 或 2。现在,AlphaGo 绘制一个均匀分布的随机变量,它会选择:
- 如果随机数 <= 0.9,则移动 1
- 如果随机数 > 0.9,则移动 2
所以 AlphaGo 更有可能选择失败的棋步来模拟(在我们的第一个模拟中)。在我们的第一个模拟中,我们还将使用价值网络来获得模拟分数。在论文中,它是:
该值将是 -1000,因为这种模拟会导致损失。
现在,AlphaGo 需要生成第二个模拟。同样,第一步更有可能选择。但最终,第二步将被选中,因为:
- 我们第二步的先验概率是 0.1,而不是零
- 鼓励 AlphaGo 尝试尚未深入探索的棋步。在本文中,这是通过以下等式完成的:
请注意,这N
是搜索移动的移动数量,它位于分母中。我们的第一步被搜索的可能性越大,u
函数就越小。因此,选择我们的第二步棋的概率提高了,因为 AlphaGo 实际上是通过这个等式选择棋步的:
这是关键等式。请仔细看:
- 它有一个
P
先验概率项(由策略网络给出)
- 它有一个
Q
评估分数的术语(由价值网络给出)
现在,我们知道我们的第二步最终会被选中。当它发生时,价值网络给出+1000。这将增加,这使得在以后的模拟中Q
更有可能选择第二步。
给定足够的模拟,选择第二步进行模拟的次数应该多于选择第一步的次数。
最后,AlphaGo 决定采取的行动是(引自论文):
搜索完成后,算法从根位置选择访问次数最多的移动。
玩第二个策略网络
我们的第二个策略网络将需要更少的迭代来选择移动 2,因为策略网络给出的先验概率首先是正确的。
评论
这里的一切都与分析非常相似Bayesian
。我们从一些先验概率(由策略网络给出)开始,然后我们生成数据来移动概率分布(由价值网络给出)。
总结
- 策略网络用于生成先验概率来指导蒙特卡洛搜索应该选择什么移动
- 价值网络用于生成数据以验证策略网络。如果策略网络不好,AlphaGo 将需要更多的计算资源来收敛(如果有的话)。
- 你可以把它想象成贝叶斯分析