了解AlphaZero
最近,有消息传出,Alphabet的DeepMind研究团队已经扩展了他们的机器学习引擎,可以同时玩象棋和象棋。显然,经过仅仅几个小时的自学,这意味着仅根据给定的游戏规则与自己进行比赛,其在国际象棋中的表现就已经超过了当前最顶尖的引擎,如Stockfish 8。我个人还不知道比赛是如何精确设置的,例如在设置Stockfish的条件下执行,因为如果计算时间有限,引擎的性能将非常差。无论如何,这都是一个非常令人印象深刻的成就,因为即使事实证明,如果以最佳的方式设置Stockfish,又经过很少的培训,AlphaZero的游戏水平将再次超越,这意味着AlphaZero的性能从根本上超越了任何现有产品。基于启发式评估功能的标准国际象棋引擎。 现在,鉴于此消息,如果有人能详细说明与我们都习惯使用的标准引擎相比,机器学习的象棋引擎在工作方式上的主要区别将非常好。更具体地说: 最后,通过机器学习方法训练的AlphaZero使用的评估功能不是另一个启发式评估功能吗?如果是的话,可以公平地说这两个引擎的评估功能之间的根本区别在于,Stockfish具有人工手动优化的优化评估功能,这意味着要优化的功能的定义是固定的,而对于AlphaZero,目标评估功能是否通过其他培训(例如通过自玩游戏)不断地重新定义?使后者成为一种更加动态的方法。 最终,模糊地讲,像Stockfish的引擎将其评估功能应用于可能的动作树,确定要保留的分支,并丢弃更深的分支,然后通过更深的混凝土再次通过其评估函数对每个分支进行分析,可以找出哪个分支产生了最高的价值,而哪个分支成为主要变化(当然,此过程中有许多先进的技术可以有效地修剪这棵大树)。这意味着,对于每个职位,Stockfish都必须重复这一极其具体的程序才能做出决定。相比之下,我认为AlphaZero所做的事情非常不同,即,它不依赖于对给定位置的可能移动树的具体分析,而是其评估函数本质上为该位置分配了一个值(直观上类似于放置类似于训练过的所有其他位置的当前位置),而无需执行具体操作用Stockfish甚至人类玩家的方式进行分析。这完全是AlphaZero或受过类似训练的机器学习引擎的运行的声音吗? 我们知道国际象棋位置的空间足够大,以至于任何在其中对所有位置进行采样的尝试在原理上都是完全徒劳的(EXPTIME复杂性),这表明通过自我游戏进行的任何训练都不足以使已经探索了所有位置,那么尽管可能通过自玩游戏探索了空间中的一小部分位置,但最终结果又如何呢?这里发挥的关键思想是什么? 我的猜测是,AlphaZero具有一种非常理想的方式,可以将任何给定位置(即使是新位置)与其训练集中的先前访问过的位置进行比较,比较越接近,从该比较中得出的评估就越有效。例如,当它在游戏5中玩了移动Bg5时,它必须在训练过程中探索过类似的结构,即,它能够识别出该位置实质上等于(可能是完全)在训练过程中研究过的一个不同位置。类似于通过机器学习如何实现人脸识别,因此得出结论,Bg5应该是最好的选择,就像在其他(或那些)其他类似位置一样。这完全是正确的猜测吗?我不知道这种比较 这样就完成了,因为肯定不可能存储所有受过训练的位置并每次都无法解析它们。 这仅是为了获得对AlphaZero的工作原理以及给定职位如何做出决策的见解。