发布于 2021-12-01 16:48:15
发布于 2021-12-02 02:34:07
这是个很大的问题。有两种基本的方法,关键的区别是搜索算法。
第一种方法,目前被世界上最强的引擎Stockfish所使用,将minimax作为搜索算法。然后它调用NNUE来评估搜索树末尾的位置。minimax算法需要大量的人工知识来修剪不必要的分支,而且非常复杂;大多数人发现河豚搜索算法是一个黑匣子并不奇怪。
第二种方法,由第二强引擎Leela Chess Zero使用,涉及蒙特卡洛树搜索。还有一个神经网络,它获取当前位置,并输出候选人移动列表,每个候选人的获胜百分比。然后引擎将它的时间分配到最有希望的动作中,在每个节点调用神经网络。Leela的神经网络是从自我游戏中训练出来的,事先没有人类的知识--这在计算上是非常密集的。
发布于 2021-12-02 00:34:50
AlphaZero算法是在leaders中实现的,它实际上是领先的算法之一,至少在Stockfish实现自己的NN辅助算法之前是如此。
这里:https://en.wikipedia.org/wiki/Leela_国际象棋_零
NNs:https://training.lczero.org/networks/?show_all=0
代码:https://github.com/LeelaChessZero/lc0/releases
它使用第20和第30系列张量核对Nvidia GPU进行分布式学习,它也是一个最先进的系统,包括所有(许多) NNs权值。
https://datascience.stackexchange.com/questions/104689
复制相似问题