为什么 AlphaZero 中的策略网络有效?

人工智能 神经网络 强化学习 人工智能设计 零字母 阿尔法零
2021-10-19 21:05:40

在 AlphaZero 中,策略网络(或网络负责人)将游戏状态映射到采取每个动作的可能性分布。此分布涵盖了该状态下所有可能的操作。

这样的网络怎么可能?每个状态的可能动作与后续状态有很大不同。那么,来自给定状态的每个可能的动作将如何在网络的输出中表示,网络设计如何阻止网络考虑非法动作?

1个回答

策略网络的输出如原始论文中所述:

国际象棋中的走法可以分为两部分:选择要移动的棋子,然后在该棋子的合法走法中进行选择。我们用一个 8 × 8 × 73 的平面堆栈来表示策略 π(a|s),该平面堆栈对 4,672 个可能移动的概率分布进行编码。每个 8×8 位置都标识了从哪个方格中“拾取”一块。前 56 个平面对任何棋子可能的“皇后移动”进行编码:沿八个相对罗盘方向 {N、NE、E、SE、S、西南、西、西北}。接下来的 8 个平面编码了该棋子可能的骑士动作。最后的 9 个平面编码可能的棋子移动或捕获在两个可能的对角线中的可能欠促销,分别为骑士、主教或车。第七级的其他棋子移动或捕获被提升为皇后。

因此,每个移动选择器都会对在给定方格中选择一块并以特定方式移动它的相对概率进行评分。例如,始终有一个输出专用于表示在 A3 中拾取一块并将其移动到 A6。这种表示包括选择对手棋子、选择空方格、为车做马移动、为棋子做长对角线移动。它还包括将棋子从棋盘上取下或通过其他阻挡棋子的动作。

国际象棋中的典型分支因子约为 35。上述策略网络总是计算 4672 步的离散概率。

显然,如果棋子不可用或无法按建议移动,则可以选择许多无效的移动。事实上,即使在经过充分训练的情况下,它也会一直这样做,因为在训练期间没有学到任何关于避免无效动作的知识——它们不会收到正面或负面的反馈,因为从未获得任何与它们相关的经验。然而,好处是这种结构简单且固定,这在构建神经网络时都是有用的特征。

简单的解决方法是从逻辑上过滤掉不可能的移动,将它们的有效概率设置为零,然后重新标准化剩余有效移动的概率。该步骤涉及向游戏引擎询问有效的动作是什么——但这很好,这不是“作弊”。

虽然可以让智能体学习避免无效的移动,或者让智能体学习只能表达有效移动的输出结构,但这些都会分散学习如何以最佳方式玩游戏的核心目标。