我经常听到 MCTS 与神经网络和机器学习组合在一起。据我所知,MCTS 使用精细的直觉(来自机器学习)来评估位置。这使它能够更好地猜测哪些动作值得多玩。
但我几乎从未听说过将机器学习用于 Minimax+alpha-beta 引擎。机器学习不能用于引擎更好地猜测哪个动作最好,然后先查看该动作的子树吗?minimax 算法的一个主要优化是移动排序,这似乎是实现这一目标的好方法。
我经常听到 MCTS 与神经网络和机器学习组合在一起。据我所知,MCTS 使用精细的直觉(来自机器学习)来评估位置。这使它能够更好地猜测哪些动作值得多玩。
但我几乎从未听说过将机器学习用于 Minimax+alpha-beta 引擎。机器学习不能用于引擎更好地猜测哪个动作最好,然后先查看该动作的子树吗?minimax 算法的一个主要优化是移动排序,这似乎是实现这一目标的好方法。
它就是这样。看看这篇解释 MCTS 工作原理的帖子。
在 Alpha Go Lee 和 Alpha Zero 中,树遍历遵循最大化以下 UCT 变体的节点:
其中 P(vi,v) 是移动的先验概率(从 v 到 vi 的转换),它的值来自称为 Policy Network 的深度神经网络的输出。策略网络是一种消耗游戏状态并产生可能移动的概率分布的函数。
如您所见,策略网络(它实际上只是一个用于值和策略的神经网络)用于指导搜索树。并非所有可能的动作都被探索。同样在学习阶段,策略网络使用 MCTS 节点的“访问计数”来学习。探索得越多的动作越好。最先进的国际象棋引擎 Stockfish 每秒评估的位置比 Alpha Zero 多 1000 倍。它依赖于探索“大部分”可能的位置。使用启发式计算分数比使用 Alpha Zero 的 19 层残差网络快得多。如果谷歌使用极小极大,那么他们就无法看得很远。Alpha Zero 每秒探索大约 7 万次移动,这将只有几层深度。