AlphaGo的策略网络和价值网络的区别

数据挖掘 机器学习 强化学习
2021-09-23 22:30:23

我正在阅读有关 Google AlphaGo的高级摘要,我遇到了“策略网络”和“价值网络”这两个术语。在较高的层次上,我理解策略网络用于建议移动,而价值网络用于,“减少搜索树的深度 [并估计] 每个位置的获胜者,而不是一直搜索到游戏结束。”

这两个网络对我来说似乎是多余的。如果不使用价值网络来修剪其策略,策略网络会做什么?很明显,价值网络是一个深度学习神经网络。策略网络只是理论上的抽象,而不是实际的神经网络吗?价值网络的目标变量似乎是赢/输。策略网络是否有目标变量;如果有,那是什么?政策网络试图优化什么?

可在此处找到 Google 论文的完整 pdf,该论文发表在 Nature 上。

4个回答

简而言之,正如您提到的,每个网络都有不同的目的:

  • 在叶子节点处使用价值网络来减少树搜索的深度。
  • 策略网络用于减少从节点搜索的广度(引导有希望的立即行动)。

一般来说,你可以使用价值函数的方法来找到一个最优策略,或者直接在策略空间中搜索来优化一个参数化的策略函数(当然有利也有弊)。在每种情况下,您都可以使用函数逼近器(例如 Deep Nets)。我看到主要是您对政策网感到困惑,因此我将答案集中在此。

政策网首先是:

被训练来做一个人类在给定棋盘状态下最有可能做的动作(因此输入是棋盘状态,输出是一个直方图,显示在该状态下每个动作的概率)。网络可以逼近从状态到动作的映射的概率函数。毕竟,考虑从可用数据开始构建您的策略是合理的。在使用专家移动的监督训练之后,策略网络可以充分玩游戏(尽管远非大师级别)。简单地说,你试图捕捉职业玩家选择行动的一般模式。

然后,

它在与对手本身的游戏中进行训练,以优化先前学习的策略。这一次,它的权重是使用 REINFORCE 算法更新的。通过这样做,您可以更新净参数以最大化预期奖励。最终,您将拥有一张网,不仅可以像职业玩家一样选择动作,而且还可以赢得比赛(但是它无法计划!)。

在这一步之后,他们通过回归(输入是状态板,目标是游戏的结果)来近似学习策略的噪声更大的版本的价值函数。您可以使用此网络来影响叶节点评估。

从概念上讲,策略网络为您提供了超过行动的概率,但这并不表示您最终会处于良好的状态,以赢得比赛。AlphaGo 有一些“盲点”,在比赛期间做了一些非常糟糕的走法,但也有一个人类从未想过的特殊走法。

最后,您可以将您的规划算法 (MCTS) 与这些网络结合使用。为什么我们采取所有这些步骤?简而言之,没有任何“直觉”的简单 MCTS 会失败。

这是我理解这两个不同网络的简明思考过程。

首先,目标是在不使用穷举搜索的情况下找到最优解(或非常接近最优解),这绝对是一项挑战。

每个位置或状态,将有 N 次可能的移动,并且每次移动在完整搜索树中都有自己的深度 D。理论上或数学上可以遍历所有路径并找到最佳解决方案。但是,我们不想进行完整搜索。

现在我们有两个单独的问题来开发一种近似方法。

Q1。我们如何跳过或忽略每个位置 N 中的一些动作?(即减少呼吸)

Q2。我们如何才能在搜索树的中间深度停下来,而不是一直走到游戏结束,而不会找不到最佳解决方案?(即深度减少)

策略网络主要用于过滤掉 N 中无用的移动,但又不会找不到最佳解决方案。在这里,这个网络最初依赖于人类专家的移动,即 SL,后来通过 RL 进行了改进。

价值网络主要用于在不进行全搜索的情况下找到获胜概率。

这两个网络有着寻找最优解的共同目标,但是,在每一个策略的移动选择中,每个网络都扮演着不同的角色。

我只是希望这会有所帮助。我知道它仍然处于高水平。

我认为 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 将需要更多的计算资源来收敛(如果有的话)。
  • 你可以把它想象成贝叶斯分析

策略网络:通过向游戏提供特定输入来学习给出确定输出的网络称为策略网络。

价值网络:价值网络通过计算当前状态的预期累积分数来为游戏状态分配价值/分数s每个状态都通过价值网络。获得更多奖励的状态显然在网络中获得更多价值。

更好地理解动画去这里:强化学习中的策略网络与价值网络

在此处输入图像描述