AlphaZero 论文中狄利克雷噪声的目的

机器算法验证 机器学习 神经网络 狄利克雷分布
2022-01-25 10:56:07

在 DeepMind 的AlphaGo ZeroAlphaZero论文中,他们描述了将Dirichlet噪声添加到蒙特卡洛树搜索中根节点(棋盘状态)的动作的先验概率:

通过将 Dirichlet 噪声添加到根节点中的先验概率来实现额外的探索s0, 具体来说P(s,a)=(1ε)pa+εηa, 在哪里ηDir(0.03)ε=0.25; 这种噪音确保了所有的动作都可以尝试,但搜索可能仍然会否决错误的动作。

(阿尔法狗零)

和:

狄利克雷噪声Dir(α)被添加到根节点的先验概率中;这与典型位置的合法移动的近似数量成反比,值α={0.3,0.15,0.03}分别用于国际象棋、将棋和围棋。

(阿尔法零)

我不明白的两件事:

  1. P(s, a)是一个n维向量。Dir(α)狄利克雷分布的简写n参数,每个都有值α?

  2. 我只遇到过 Dirichlet 作为多项分布的共轭先验。为什么会选在这里?

对于上下文,P(s, a)它只是给定状态/动作的 PUCT(多项式上置信树,置信上限的变体)计算的一个组成部分。它由一个常数和一个度量来衡量,在 MCTS 期间在其兄弟姐妹中选择给定动作的次数,并添加到估计的动作值中Q(s, a)

  • PUCT(s, a) = Q(s, a) + U(s, a).
  • U(s,a)=cpuctP(s,a)bN(s,b)1+N(s,a).
2个回答

问题1很简单,在这里α是给定值的重复向量。(正如 Max S 所回答的那样。)

问题 2 更有趣:Dirichlet 分布在这种情况下具有以下相关解释:当α是从具有结果概率的某些(未知)分类分布中得出的结果计数的观察向量π, 然后Dir(α)(π)是可能性Cat(π)是您观察到的实际基础分布α作为计数。(这基本上是对偶分布的定义。)

现在P(s,a)估计一个好球员参加比赛的概率as这是他的分类分布的参数,AlphaZero 想要学习。所以Dir(α)将抽样合理估计pi=P(s,a)如果我们观察到一个优秀的玩家下棋α次。但如果有些αi=0, 那么所有πDir(α)πi=0,阻止探索。通过添加噪音,他们假设他们已经观察到每一个动作被玩了几次α(这里选择 0.3、0.15、0.03)。

至于他们如何获得常数,我的猜测是他们假设在每场比赛中观察到大约 10 次随机比赛:在国际象棋中,Dir(0.3)假设您已经看过每个动作 0.3 次。鉴于根据 Allis的说法有大约 35 个可用的移动,作者假设您已经在每个节点中看到了大约 10 个随机移动。在围棋中,如果我们假设平均约 270 次合法移动(361 个棋盘位置的 3/4),我们会看到相当于观察约 8 次随机移动。(我没有将棋的数据。)

对于第 1 个问题,答案是肯定的,α是一个向量,但在这种情况下,所有值都相同。根据维基百科,这被称为对称狄利克雷分布,并且在“没有先验知识支持一个组件优于另一个组件”时使用。在这种情况下,这意味着您不想向任何特定组件添加更多噪声。

对于问题 2,从 Dirichlet 分布中提取的样本具有元素总和为 1 的属性。我假设他们使用它来确保在添加噪声后,元素仍将总和为 1。