了解AlphaZero


29

最近,有消息传出,Alphabet的DeepMind研究团队已经扩展了他们的机器学习引擎,可以同时玩象棋和象棋。显然,经过仅仅几个小时的自学,这意味着仅根据给定的游戏规则与自己进行比赛,其在国际象棋中的表现就已经超过了当前最顶尖的引擎,如Stockfish 8。我个人还不知道比赛是如何精确设置的,例如在设置Stockfish的条件下执行,因为如果计算时间有限,引擎的性能将非常差。无论如何,这都是一个非常令人印象深刻的成就,因为即使事实证明,如果以最佳的方式设置Stockfish,又经过很少的培训,AlphaZero的游戏水平将再次超越,这意味着AlphaZero的性能从根本上超越了任何现有产品。基于启发式评估功能的标准国际象棋引擎。

现在,鉴于此消息,如果有人能详细说明与我们都习惯使用的标准引擎相比,机器学习的象棋引擎在工作方式上的主要区别将非常好。更具体地说:

  1. 最后,通过机器学习方法训练的AlphaZero使用的评估功能不是另一个启发式评估功能吗?如果是的话,可以公平地说这两个引擎的评估功能之间的根本区别在于,Stockfish具有人工手动优化的优化评估功能,这意味着要优化的功能的定义是固定的,而对于AlphaZero,目标评估功能是否通过其他培训(例如通过自玩游戏)不断地重新定义?使后者成为一种更加动态的方法。
  2. 最终,模糊地讲,像Stockfish的引擎将其评估功能应用于可能的动作树,确定要保留的分支,并丢弃更深的分支,然后通过更深的混凝土再次通过其评估函数对每个分支进行分析,可以找出哪个分支产生了最高的价值,而哪个分支成为主要变化(当然,此过程中有许多先进的技术可以有效地修剪这棵大树)。这意味着,对于每个职位,Stockfish都必须重复这一极其具体的程序才能做出决定。相比之下,我认为AlphaZero所做的事情非常不同,即,它不依赖于对给定位置的可能移动树的具体分析,而是其评估函数本质上为该位置分配了一个值(直观上类似于放置类似于训练过的所有其他位置的当前位置),而无需执行具体操作用Stockfish甚至人类玩家的方式进行分析。这完全是AlphaZero或受过类似训练的机器学习引擎的运行的声音吗?

  3. 我们知道国际象棋位置的空间足够大,以至于任何在其中对所有位置进行采样的尝试在原理上都是完全徒劳的(EXPTIME复杂性),这表明通过自我游戏进行的任何训练都不足以使已经探索了所有位置,那么尽管可能通过自玩游戏探索了空间中的一小部分位置,但最终结果又如何呢?这里发挥的关键思想是什么?

  4. 我的猜测是,AlphaZero具有一种非常理想的方式,可以将任何给定位置(即使是新位置)与其训练集中的先前访问过的位置进行比较,比较越接近,从该比较中得出的评估就越有效。例如,当它在游戏5中玩了移动Bg5时,它必须在训练过程中探索过类似的结构,即,它能够识别出该位置实质上等于(可能是完全)在训练过程中研究过的一个不同位置。类似于通过机器学习如何实现人脸识别,因此得出结论,Bg5应该是最好的选择,就像在其他(或那些)其他类似位置一样。这完全是正确的猜测吗?我不知道这种比较 这样就完成了,因为肯定不可能存储所有受过训练的位置并每次都无法解析它们。

这仅是为了获得对AlphaZero的工作原理以及给定职位如何做出决策的见解。

Answers:


18
  • AlphaZero如何在搜索中选择一个动作?

从本文来看,这是非常明显的。

通过在每种状态下选择访问次数少,移动概率高和谷值选择高的移动来进行每个模拟。

这意味着什么?AlphaZero已经从深度神经网络训练了每一步的概率(本文第2页末)。在搜索过程中,它将选择与该概率成比例的移动,并选择计数较低的节点(以确保探索采样空间)。这不是一个新概念,蒙特卡洛树搜索(Monte Carlo Tree Search)在Google诞生之前就已经存在。

------(非常)粗糙的例子------

我们有一个立场,我们有两项法律举措。

  • 动1是合理的
  • 第2步使您自己的国王处于危险之中,无法获得赔偿

根据该论文,经过训练的深度模型可能将概率估计为(0.90,0.10)。假设AlphaZero在Monte Carlo中使用了4次迭代。迭代看起来像:

迭代1:选择移动1,因为它具有最高的概率。从移动1进行模拟。 迭代2:选择移动1,因为它具有最高的概率。从移动1进行模拟。 迭代3:选择移动1,因为它具有最高的概率。从动作1进行模拟。

现在,我们处于迭代4。尽管移动1的估计概率更高,但是尚未搜索移动2(本文中的“低访问次数”),但是AlphaZero现在会选择移动2并进行仿真。

可以考虑两个步骤,但是AlphaZero会在步骤1上投入更多的计算资源(好东西)。

然后,AlphaZero将以最佳预期结果采取行动。

- - - - - - - - - 你的问题: - - - - - - - - -

最后,通过机器学习方法训练的AlphaZero使用的评估功能不是另一个启发式评估功能吗?

训练有素的评估功能是一个深度神经网络,它不是一组启发式规则,就像您在Stockfish中看到的那样。没有人完全了解(甚至不是Google团队)受过训练的网络,它只是有效。这就是NN通常的工作方式。

而对于AlphaZero,目标评估功能通过附加培训不断地重新定义。

AlphaZero中的评估功能是一组经过训练的神经元(偏差+权重)。Google团队使用功能非常强大的机器来训练参数。通常,您可以投入更多资源来训练深度学习模型,您可以获得更好的参数。

(2)。

Stockfish使用alpha-beta,而AlphaZero使用Monte-Carlo。它们是两种截然不同的算法。alpha-beta算法假定上下限,而Monte-Carlo创建从根到叶的模拟。

要探索所有位置,那么尽管可能通过自玩游戏探索了空间中的一小部分位置,但最终结果又如何呢?这里发挥的主要思想是什么?

谷歌并没有声称自己已经解决了国际象棋,甚至他们强大的机器也无法列举所有国际象棋的位置。但是他们不必...这是机器学习的重点,该模型从训练集中“学习”。在这种情况下,训练集来自自我玩耍。关键思想是尽可能快地对自己进行尽可能多的高质量游戏。

例如,当它在游戏5中玩过Bg5动作时,它在训练过程中肯定探索了类似的结构,

我认为AlphaZero在训练游戏中所遇到的位置并不完全相同。我认为快速阅读蒙特卡洛是一个好主意:

https://chessprogramming.wikispaces.com/蒙特卡罗+树+搜索

AlphaZero能够通过达到足够的深度来进行移动。该算法估计每个动作的获胜预期概率,显然,动作Bg5给出了最高预期概率。

您可以认为,AlphaGo的搜索能力非常好,以至于看到Bg5之后获胜的可能性最高,而Stockfish并没有认真考虑这一举动(因此输了)。


2
“蒙特卡洛树搜索在Google
诞生

2
@CodesInChaos MCTS不是一项新技术。Google当然没有发明蒙特卡洛。
SmallChess

4
布鲁格曼1993年显然只是MC。MC Go Dev。(2003年)结合了MC和树木,但以一种原始的方式。Chang(2005)非常接近,但是在不同的情况下,我认为它仍然缺乏适当的节点选择来扩展和传播估计。据我所知,MCTS中的高效选择性和备用运算符Remi Coulom(2006年)是一个合适的MCTS。
CodesInChaos

1
@SmallChess您的答案的一部分似乎是矛盾的:“现在AlphaZero将选择第2步并进行模拟。将考虑两个步,但AlphaZero会将更多的计算资源投入第1步(好东西)。” 与该陈述相矛盾的是,每个模拟都通过在每个状态中选择一个具有较低访问量的移动来进行……在您的示例中,该访问量将为2而不是1。说实话,本文不包含任何有关访问的有用信息理解,因为他们没有办法再现实验或对他们训练网络的实际方式有任何见解。
gented '17

1
他们所做的基本上是说“我们使用了算法X并且它起作用”,这对方法本身几乎没有了解,因此我不会在论文本身上投入太多精力来试图弄清楚它的实际作用。
gentil '17

0

我想我的问题是神经网络如何“学习”在从未遇到过的位置做些什么。说实际的AZ使用受过训练的神经网络的偏差+权重执行MCTS,只是将其推后了神经网络如何计算这些值的一步。如果它是通过随机的自我玩法而没有人类知识,那么它将如何决定如何权衡从未见过的位置?


1
我想我也许可以回答你,但这里没有。请开始一个新问题。
SmallChess

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.