无需搜索即可达到大师级国际象棋水平

人工智能咨询培训老师叶梓 转载标明出处

自从IBM的深蓝(Deep Blue)在1997年战胜了世界棋王加里·卡斯帕罗夫(Garry Kasparov)以来,机器在这一领域的表现一直是衡量其智能的重要标准。传统上国际象棋引擎依赖于复杂的启发式算法、明确的搜索或两者的结合。然而,Google DeepMind的最新研究提出了一种新的方法,通过大规模的监督学习训练,无需复杂的搜索算法即可达到大师级的国际象棋水平。研究团队训练了一个拥有2.7亿参数的变换器(transformer)模型,仅使用监督学习,而不依赖于任何领域特定的调整或显式搜索算法。

方法

研究团队从Lichess.org下载了1000万个国际象棋游戏,提取了所有棋盘状态,并使用Stockfish 16引擎对每个状态的胜率进行了估计,时间限制为每步棋50毫秒。状态的胜率是通过Stockfish估计的,范围在0%到100%之间。另外还使用Stockfish来估计每个棋盘状态所有合法动作的动作值,同样使用50毫秒的时间限制。动作值(胜率)也决定了最佳动作。在注释后,数据集随机打乱,以增加数据多样性并减少与自然游戏分布的偏差。

数据注释和数据集创建的过程
上半部分展示了如何从 Lichess 中抽取棋盘状态,并使用 Stockfish 16 计算每个状态的胜率。下半部分左侧展示了如何构建不同大小的训练和测试数据集。下半部分右侧展示了如何从这些数据集中训练不同的预测器,并构建棋局策略

图1为数据注释和数据集创建的过程,这种方法允许模型学习如何根据当前的棋盘状态预测胜率,并且能够选择那些预期胜率最高的走法。

数据注释(Data annotation): 在数据注释部分,研究者从Lichess平台随机抽取了N个游戏,提取了所有独特的棋盘状态,并丢弃了重复的棋盘状态。对于每个棋盘状态,使用Stockfish引擎计算其状态值,即通过Stockfish评估的胜率。此外,对于棋盘状态中的所有合法走法,同样使用Stockfish计算其动作值和最佳走法。这一过程确保了数据集的每个状态都有与之对应的、经过专家级引擎评估的胜率和动作值。

数据集创建(Dataset creation): 在数据集创建部分,研究者构建了不同大小的训练和测试数据集。如表A1所示,最大的训练数据集包含了153亿个动作值。在创建测试数据集时,研究者从游戏数据库中独立同分布(i.i.d.)地抽取游戏,这导致测试数据集中有14.7%的棋盘状态也出现在最大的训练数据集中,这通常发生在游戏的非常早期阶段。此外,研究者还使用了一个包含1万个带有正确走法序列的国际象棋难题的测试数据集。

策略训练(Policies): 在策略训练部分,研究者训练了针对三个目标的预测器:状态值或动作值,或者最佳动作(即行为克隆)。每个预测器都可以用于构建国际象棋策略。价值预测器是离散的鉴别器(分类器),它们预测Stockfish评估值落在哪个区间(bin)内。这些区间是通过将0%到100%的胜率区间均匀划分成K个非重叠子区间来定义的,每个子区间对应一个“桶”,并且每个桶都有一个唯一的索引

在构建模型的过程中,研究者选择了现代的仅解码器变换器架构,这是一种在自然语言处理和其他领域已经显示出强大能力的模型。这种变换器不包含编码器部分,它只使用解码器来生成输出,这在某些任务中可以提高效率并减少计算量。

模型的关键特点之一是使用了log-softmax层,这允许模型输出一个对数概率分布,而不是直接的概率分布。对数概率是处理概率分布的一种数学上更稳定的方式,尤其是在涉及大量类别时,比如国际象棋中可能的走法。

对于动作值预测,模型的上下文大小设置为79,在预测一个动作的价值时,模型会考虑棋盘上的79个不同位置的状态。对于状态值预测和行为克隆,上下文大小略有不同,为78,这可能反映了在这些任务中使用的特定信息略有不同。

模型的输出大小取决于预测任务。对于动作值和状态值预测,输出大小对应于“桶”的数量,这些“桶”是用于将连续的胜率值映射到离散类别的。对于行为克隆,输出大小则是所有可能合法动作的数量,模型需要预测在给定状态下采取哪个动作。

模型还采用了学习的位置编码,这对于处理序列数据非常重要,尤其是在变换器模型中,它可以帮助模型理解不同位置的相对位置和重要性。

整个模型包含了大约2.7亿个参数,这是一个相对较大的模型,需要大量的数据和计算资源来训练。

预测器是基于神经网络的离散分布参数化,根据预测目标区分为三个任务:

动作值预测:在这个任务中,模型的目标是预测每个可能走法的价值,并将这个价值映射到一个预定义的桶中。模型接收当前棋盘状态和可能的动作作为输入,并输出一个预测的桶索引,表示该动作的预期胜率。

状态值预测:与动作值预测不同,状态值预测关注的是整个棋盘状态的总体价值,而不是单个动作。模型输入是当前的棋盘状态,输出是预测的状态价值的桶索引。

行为克隆:这是一种直接模仿专家行为的方法,模型的目标是预测在给定状态下最佳的走法。输入是棋盘状态,模型输出是所有可能合法动作中的一个,通常是通过选择概率最高的动作。

所有这些预测器都被用于构建策略,以便在给定状态下选择预期价值最高的动作。这些策略是通过评估所有合法动作,并选择那个具有最高预期动作值的动作来实现的。这种方法允许模型在没有显式搜索的情况下,通过学习大量的棋局数据来制定有效的走棋策略。

评估

研究者采用了以下几种关键指标来衡量模型的性能:

动作准确性(Action-accuracy):这个指标衡量的是模型在测试集上选择与Stockfish引擎评估的最佳走法一致的动作的频率。具体来说如果模型预测的最佳走法与Stockfish在50毫秒内评估出的最好走法相同,该样本就被计入准确性的统计中。这个指标直接反映了模型在模仿专家级走法方面的能力。

动作排名(Action-ranking):此指标使用Kendall排名相关性来量化模型预测的走法顺序与Stockfish评估的走法顺序之间的相关性。Kendall相关性是一个统计度量,范围从-1(完全逆序)到1(完全一致),0表示没有相关性。这个指标衡量的是模型在整体走法排序上与专家评估的一致性。

难题准确性(Puzzle-accuracy):这个指标衡量的是模型解决预设难题的能力。在这些难题中,存在一系列正确的走法可以导致胜利。如果模型能够按照正确的顺序走出这些走法,那么这个难题就算作被正确解决。这个指标反映了模型在处理复杂战术局面时的性能。

游戏强度(Elo):这是衡量模型整体棋力的指标,通过在Lichess平台上与人类玩家或机器人进行快棋比赛来获得Elo评分。此外,还通过内部锦标赛,让所有模型相互对弈,以更精确地评估它们的相对强度。这个指标提供了模型在实际对弈中的表现,是评价模型实战能力的直接方法。

在基线部分,研究者将所开发的模型与几个现有的国际象棋引擎进行了比较,以评估其性能。这些基线模型包括:

Stockfish 16:这是目前最强的公开可用国际象棋引擎之一,它使用了复杂的启发式搜索算法。在比较中,Stockfish被设置为每个合法走法都有50毫秒的思考时间,这与训练数据的生成方式一致。

AlphaZero的不同变体:AlphaZero是一个革命性的国际象棋引擎,它通过自我对弈学习策略,不依赖于人类知识。研究中比较了三种不同的AlphaZero变体:只有策略网络、只有价值网络,以及带有400次MCTS模拟的标准版本。

GPT-3.5-turbo-instruct:这是一个大型语言模型,它通过接受指令来执行任务。在国际象棋领域,它的表现也被用作比较的基准。

值得注意的是与这些基线模型相比,研究中提出的模型仅使用当前的棋盘状态作为输入,而不依赖于整个游戏历史,这在一定程度上限制了模型的能力,但同时也展示了其在有限信息下的潜力。

结果

研究者展示了在完整训练集(1000万个游戏)上训练的大规模变换器模型的棋力(内部锦标赛Elo、外部Lichess Elo和解谜能力)和预测器指标。他们比较了三种不同规模的变换器模型:9M、136M和270M参数。结果显示,所有模型都能在新的棋盘状态上进行非平凡的泛化,并能成功解决大部分难题。在所有指标上,更大的模型一致地提高了分数,证实了模型规模对于强大的国际象棋性能至关重要。最大的模型在与人类玩家的快棋Elo中达到了2895分,这使其进入了大师级别。然而,与Lichess上的机器人对战时Elo有所下降,这可能是由于玩家池的差异、一些技术问题,以及机器人可能与人类在利用弱点方面的质的不同。

不同模型(包括不同大小的 Transformer 模型、GPT-3.5-turbo-instruct、AlphaZero 的变体以及 Stockfish 16)在预测动作、游戏强度(Elo 等级)和解决谜题方面的表现比较

研究者比较了270M参数模型与Stockfish 16(每步棋50毫秒的时间限制)、GPT-3.5-turbo-instruct和AlphaZero的值网络在解决难题方面的表现。使用了1万个难题组成的大型难题集,根据Lichess分配的Elo难度进行分组。结果显示,Stockfish 16在所有难度类别中表现最佳,其次是270M模型。AlphaZero的值网络(训练于4400万个游戏)和GPT-3.5-turbo-instruct也能解决一些难题,但明显落后于270M模型。研究者强调解决难题需要正确的移动序列,由于策略不能显式地提前计划,解决难题序列完全依赖于具有良好价值估计,这些估计可以被贪婪地使用。

270M 参数的 Transformer 模型、Stockfish 16、AlphaZero 的价值网络和 GPT-3.5-turbo-instruct 在解决不同 Elo 难度等级的 10,000 个 Lichess 谜题上的表现比较

研究者通过可视化难题准确性(训练和测试损失)来展示模型性能,这与其他指标和整体棋力密切相关。对于小训练集尺寸(1万个游戏),较大的架构(≥7M)开始随着训练进展过拟合。当数据集大小增加到10万(中间面板)和100万个游戏(右面板)时,这种效应消失。结果还表明,随着数据集尺寸的增加,模型的最终准确性也会提高,这在不同模型尺寸上是一致的。同样,无论数据集大小如何,增加架构尺寸通常会提高整体性能。

不同训练集大小和模型大小对谜题准确率的影响

研究者还测试了一系列实验变体,并对9M参数模型进行了广泛的消融研究。结果和得出的结论用于指导和证明设计选择,并确定默认的模型、数据和训练配置。表2总结了所有结果。研究者比较了不同的预测目标,包括动作值、状态值或最佳动作(行为克隆),并讨论了不同网络深度对性能的影响,发现性能随着网络深度的增加而提高,但似乎在大约8层时饱和。

对不同参数进行消融研究的结果,包括预测目标、网络深度、数据采样器、价值箱数、损失函数和 Stockfish 时间限制等

这项研究成功地将Stockfish 16引擎的能力通过标准监督学习的方式,转化为一个前馈神经网络。这一成果不仅在国际象棋领域具有重要意义,也为其他需要复杂策略和推理的领域提供了新的可能性。

论文链接:https://arxiv.org/abs/2402.04494

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能大模型讲师培训咨询叶梓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值