AlphaGo 在真实比赛中会随机走棋吗?

人工智能 深度学习 零字母 阿尔法零 阿尔法戈
2021-11-08 03:51:58

Alphago 和 AlphaGo zero 使用随机对弈来生成数据并使用数据来训练 DNN。“随机下棋”是指AlphaGo基于当前DNN下出一些次优棋步的概率为正;这是出于探索和学习的目的(如果我的理解有误,请纠正我)。

在真正的比赛中,AlphaGo 还玩随机走法吗?随机播放功能是否仅在训练阶段使用?

如果 AlphaGo 在真正的比赛中没有随机走棋,那么我认为 AlphaGo 并没有在那场比赛中学习。人类玩家也有类似的“随机玩法”:他们通常会在小比赛中玩一些随机动作或奇怪的动作,只是为了测试新的策略;在重大赛事中,他们会更加认真,少打一些毫无准备的动作。

因此,一个相关且更广泛的问题是:AlphaGo 是否从它与人类实时玩的游戏中学习?

我认为第二个问题不太重要,因为 AlphaGo 的学习曲线与人类相比非常平坦:AlphaGo 从一场比赛中学习 epsilon,而人类可以学到很多东西。

2个回答

问题 1:我不认为他们在锦标赛比赛期间以训练模式运行 AlphaGo 或 AlphaGoZero,因为这需要的计算能力非常大。我不记得这是否在纪录片中有所描述,但请参阅AlphaZero 论文(第 4 页)中的引用:

使用 5,000 个第一代 TPU(15 个)生成自玩游戏,使用 64 个第二代 TPU 来训练神经网络。

问题2:从我的第一个回答开始,我假设网络是在推理模式下运行的,即以对环境的观察作为输入,并根据网络的最强策略输出动作(下一步)。然后 AlphaGo 不会学到任何东西,因为它不会评估所采取的行动是否比策略更好,因为它们是相同的。网络在训练/探索期间学习的方式是将采取的随机动作与网络已知的最佳动作进行比较。


你对自我游戏和探索的理解是正确的。这是在 RL 中完成的,以探索可能尚未采取的行动,以探索可能比最知名策略更好的行动。

但是在推理过程中,你会想要贪婪地采取最知名的行动,因为随机采取的行动很可能会更糟。

AlphaZero 在 selfplay 和真实锦标赛游戏中的核心机制是相同的:类似于蒙特卡洛树搜索,但由当前的神经网络引导而不是随机模拟。网络仅进行推理,而不是在树搜索期间进行学习。这里有一个很棒的摘要图

selfplay 和锦标赛之间的区别是:

  • Selfplay 树搜索游戏会注入一些额外的 (Dirichlet) 噪声,以鼓励探索不同的动作和位置。这在锦标赛比赛中不会发生,因为这可能会使比赛变得更弱。

  • 在 selfplay 过程中,随机选择移动,但根据树搜索认为某些移动的好坏来衡量。这意味着整个训练过程大部分时间都花在寻找好的动作上,但仍然偶尔会使用坏的动作来保持一些变化。在锦标赛期间,AlphaZero 只会下它认为最好的棋步。

  • Selfplay 游戏保存在具有数百万个位置的大型缓冲区中,在该缓冲区上训练下一个神经网络。这是进行实际网络训练的唯一点。

  • Selfplay 树搜索仅查看每个位置约 800 个节点,计算可能只需要几毫秒。锦标赛比赛需要更长的时间,每场比赛 3 小时 + 每步 15 秒这意味着树搜索每一步都会访问数十万甚至数百万个位置,从而使锦标赛比赛比自我比赛强得多。

这些是自我游戏和锦标赛游戏之间的唯一区别。需要注意的一点是,在 selfplay/training 完成后,AlphaZero 只是一个不可变的神经网络,周围有一些树搜索代码。在比赛期间没有学习发生,也没有任何额外的随机性注入到这个过程中。相反,为了确保游戏的多样性,使用了开场书