从模仿到交互:使用浅层强化学习掌握Schnapsen游戏
摘要
本文研究浅层神经网络代理是否能够通过强化学习掌握纸牌游戏Schnapsen,超越监督模仿基线,并在一项与基于强搜索的对手的对比中取得有竞争力的结果。
arXiv:2605.17162v1 公告类型:新
摘要:本文研究浅层神经网络代理是否能够掌握纸牌游戏Schnapsen,并挑战基于强搜索的基线RdeepBot,该基线使用蒙特卡罗采样和前瞻搜索。在逐步复杂的实验设计指导下,我们首先评估了一个基于回放数据训练的监督学习代理(MLPBot),然后评估了一个具有相同浅层架构的强化学习代理(RLBot),该代理通过异步蒙特卡罗更新和经验回放进行训练。结果表明,监督模仿无法很好地泛化以击败强大的RdeepBot对手,而强化学习则产生了更强的代理。在关注RdeepBot深度参数的设置中,当学习到的价值函数与更深的游戏内前瞻相结合时,表现最佳,使得RLBot在对评估中最强的RdeepBot基线时取得了统计上显著更高的胜率。在基于样本的设置中,收益更具条件性:最强的表现出现在相对较低的训练num_samples参数下,而不是随着采样强度的增加而均匀提升。
查看缓存全文
缓存时间: 2026/05/19 06:39
# 从模仿到交互:用浅层强化学习掌握施纳普森牌戏 来源: https://arxiv.org/html/2605.17162 张思中,阿姆斯特丹自由大学 [email protected] ###### 摘要 本文研究浅层神经网络智能体能否掌握施纳普森牌戏,并挑战基于搜索的强基准 RdeepBot(该 bot 使用蒙特卡洛采样和前瞻搜索)。在渐进式复杂实验设计的指导下,我们首先评估了一个在回放数据上训练的监督学习智能体(MLPBot),然后评估了一个具有相同浅层架构、通过异步蒙特卡洛更新和经验回放训练的强化学习智能体(RLBot)。结果表明,监督模仿无法泛化到足以击败强 RdeepBot 对手,而强化学习则产生了明显更强的智能体。在聚焦 RdeepBot 的 `depth` 参数的设置中,当学得的价值函数与游戏过程中更深的前瞻搜索相结合时,取得了最佳性能,使 RLBot 能够在对评估的最强 RdeepBot 基准上实现统计上显著的高胜率。在基于样本的设置中,增益更具条件性:最佳性能出现在相对较低的训练 `num_samples` 参数处,而非随着更强的采样而均匀增加。 **关键词**: 强化学习;施纳普森;游戏 AI;神经网络;监督学习;蒙特卡洛搜索;经验回放;回放缓冲区;模仿;交互 ## 1 引言 施纳普森是一种流行的吃墩纸牌游戏,由于其隐藏信息、变化的游戏阶段和复杂的策略状态空间,对人工智能提出了独特的挑战。为了掌握该游戏,人们开发了各种 bot,从随机算法到复杂的基于规则的智能体。后者中的一个典型强智体是 RdeepBot,它包含在施纳普森游戏引擎 [3 (https://arxiv.org/html/2605.17162#bib.bib2)] 中。RdeepBot 通过蒙特卡洛采样处理不完美信息,并通过固定前瞻搜索评估动作,这使它成为竞争性强但计算成本高昂的选择。 相比之下,基于神经网络的智能体不依赖显式编码的策略——它们必须从数据或游戏交互中学习近似游戏局势的价值。在本文中,我们研究浅层神经网络能否学习到足以超越 RdeepBot 的强策略。遵循渐进式实验设计,我们从最简单的学习设置开始,仅在必要时增加复杂性。 首先,我们研究一个定制的监督学习智能体,其灵感来自施纳普森游戏引擎中的机器学习 bot [3 (https://arxiv.org/html/2605.17162#bib.bib2)]。我们将其称为 MLPBot,并在由 RdeepBot 变体对弈生成的静态回放数据集上训练。该实验测试对搜索型教师的模仿是否足以在施纳普森中实现稳健对弈。其次,我们开发了一个强化学习智能体 RLBot,它具有相同的浅层网络架构,但训练过程不同,基于异步蒙特卡洛更新和经验回放 [7 (https://arxiv.org/html/2605.17162#bib.bib10)]。RLBot 不是从固定数据集中重现决策,而是从游戏交互中学习,并在具有不同搜索深度和 `num_samples` 设置的 RdeepBot 变体上进行评估。 结果显示两种学习范式之间存在明显差异。静态模仿无法泛化到足以击败基于搜索的对手,而浅层强化学习产生了明显更强的智能体。在聚焦 RdeepBot 搜索 `depth` 的设置中,最佳结果是在游戏过程中将学得的价值函数与更深的前瞻搜索相结合时获得的。在基于样本的设置中,强化学习也产生了强智能体。但效果更具条件性:最佳性能仅出现在有限范围的训练 `num_samples` 值上,而非随着更强采样而均匀增加。 ## 2 背景信息 ### 2.1 施纳普森牌戏规则 本研究使用施纳普森,一种双人吃墩纸牌游戏,共 20 张牌 [8 (https://arxiv.org/html/2605.17162#bib.bib1)]。一局通过达到 66 墩分或赢得最后一墩赢得。分数来自吃到的牌(A=11, 10=10, K=4, Q=3, J=2)以及宣布婚约(K-Q 对子:王牌花色 40 分,其他花色 20 分)。玩家起始手牌 5 张,并翻开一张明牌确定王牌花色。墩由出牌花色中的最高王牌或最高牌赢得,赢家领出下一墩。游戏分为两个阶段。在第一阶段(牌堆开放时),玩家补牌,不强制跟牌,且可以将最小的王牌与明牌交换。此阶段信息不完美。第二阶段(牌堆耗尽或自愿关闭)规则更严格:玩家必须跟牌,并按照优先规则尝试赢墩。牌堆耗尽后,通过记牌实现完美信息。一局的赢家根据对手的表现获得 1-3 局分,先得 7 分者赢得比赛。 ### 2.2 施纳普森游戏引擎 本文中的施纳普森实现使用了四位贡献者开发的引擎,并在 GitHub 上发布——见 [3 (https://arxiv.org/html/2605.17162#bib.bib2)]。在该实现中,规则略有简化。玩家不能自愿关闭牌堆。因此,从第一阶段到第二阶段的转换仅在牌堆耗尽时发生。该引擎用 Python 编码,包含多个可对弈的 bot,它们使用不同的策略:有些通过利用完美信息在第二阶段表现出色,而另一些则依赖启发式方法。本项目直接使用的 bot 有:RandBot, BullyBot 和 RdeepBot。表 1 (https://arxiv.org/html/2605.17162#S2.T1) 总结了这些 bot 的运作方式。 **表 1:本研究直接使用的施纳普森 bot。** 此外,MLPlayingBot 将作为我们为第一个实验创建的 bot 的框架。MLPlayingBot 使用分类法,通过训练好的模型(基于多层感知器架构或逻辑回归)预测每个合法移动的获胜概率。该模型在回放记忆上进行训练,该记忆通过记录两个对弈 bot(例如 RandBot vs. RandBot)之间的模拟游戏生成。为了做出决策,bot 使用从历史游戏数据派生的特征向量处理信息。 ### 2.3 施纳普森的挑战 虽然施纳普森的规则很紧凑,但在高水平上对弈对人工智能来说是一个独特的挑战。与国际象棋或围棋不同,棋盘状态完全可观察,施纳普森的玩家必须在不知道对手手牌或牌堆顺序的情况下进行游戏。RdeepBot,本文用作基准的标准基线 bot,代表了解决(动态)部分可观察性问题的相对强大的方法。它生成许多假设的完全可见的游戏状态,其中未知的牌被随机分配,使用搜索算法解决每个状态,然后平均结果以基于这些模拟选择最优移动。然而,这种优势是有代价的:计算成本高,且依赖于固定的搜索视野,可能错过长期战略格局。 我们的愿景是通过开发一个神经网络智能体来挑战这种基于搜索的方法,该智能体在保持计算效率的同时匹配 RdeepBot 的战略深度。极端情况下,计算高效的多层感知器只有一个隐藏层。这样的神经网络被称为浅层,以区别于深层 [6 (https://arxiv.org/html/2605.17162#bib.bib5)]。这提出了一个与这种候选架构相关的重要问题:一个浅层多层感知器能否捕捉施纳普森的复杂策略,还是需要更复杂的训练流程?已经观察到,如果没有足够大量的训练实例或计算能力,浅层网络可能无法很好地泛化 [1 (https://arxiv.org/html/2605.17162#bib.bib3)]。为了调查这一点,我们首先用具有标准浅层网络的监督学习测试其局限性。随后,我们探索异步强化学习架构能否成功生成使其决定性地超越基于搜索的基线 RdeepBot 的策略。如表 1 (https://arxiv.org/html/2605.17162#S2.T1) 所示,RdeepBot 有两个重要参数可配置——`num_samples` 和 `depth`。因此,我们将配置这两个参数以产生 RdeepBot 变体,这既会影响实验中的自定义 bot,也会在 RdeepBot 作为独立比较对象时影响它。 ## 3 研究问题与假设 ### 3.1 研究问题 基于上一节介绍的核心挑战,我们定义以下研究问题: **研究问题 1:** 一个使用浅层神经网络架构和监督学习(MLPBot)、在由不同搜索深度的 RdeepBot 变体生成的回放数据上训练的智能体,能否在施纳普森中达到比评估的基线 RdeepBot 深度变体统计上显著更高的胜率? **子问题 1.1:** 随着评估的 RdeepBot 对手的搜索深度参数增加,MLPBot 的胜率是变好还是变差? **研究问题 2:** 一个使用异步浅层神经网络架构和强化学习(RLBot)、针对不同搜索深度的 RdeepBot 对手训练 120 万局游戏的智能体,能否达到比评估的 RdeepBot 深度变体统计上显著更高的胜率? **子问题 2.1:** 随着评估的 RdeepBot 对手的搜索深度参数增加,RLBot 的胜率是变好还是变差? **研究问题 3:** 一个使用异步浅层神经网络架构和强化学习(RLBot)、针对不同 `num_samples` 设置的 RdeepBot 对手训练 120 万局游戏的智能体,能否达到比评估的 RdeepBot 样本变体统计上显著更高的胜率? **子问题 3.1:** 随着评估的 RdeepBot 对手的 `num_samples` 参数增加,RLBot 的胜率是变好还是变差? ### 3.2 假设 我们提出以下与我们的研究问题相对应的假设: **假设 1:** 在由不同搜索深度的 RdeepBot 变体生成的回放数据上训练的监督式 MLPBot,不会达到比评估的基线 RdeepBot 深度变体统计上显著更高的胜率。 **理由:** 如第 2.3 节所述,浅层神经网络可能在没有足够表示能力或交互过程中的自适应学习的情况下,难以在施纳普森的复杂战略格局中泛化。由于 MLPBot 从固定的回放数据集学习,而不是从直接的游戏反馈学习,RdeepBot 的显式前瞻搜索预计会在战术精度上保持优势,特别是在需要更精确计算的后期游戏局面中。 **假设 1.1:** 随着评估的 RdeepBot 对手的搜索深度参数增加,监督式 MLPBot 的胜率会下降。 **理由:** MLPBot 依赖于从静态训练数据学到的泛化策略,因此当对手的搜索变得更深更精确时,它预计会更加挣扎。随着 RdeepBot 的前瞻视野扩大,它应该能更好地利用 MLPBot 决策中的弱点,从而导致 MLPBot 的胜率降低。 **假设 2:** 异步强化学习智能体 RLBot,针对不同搜索深度的 RdeepBot 对手训练 120 万局游戏,将比评估的 RdeepBot 深度变体实现统计上显著更高的胜率。 **理由:** 与 MLPBot 不同,RLBot 通过游戏交互学习,并根据回放记忆中收集的蒙特卡洛结果更新其动作价值估计,而不仅仅是重现固定历史数据集中的模式。这种训练过程预期能让 RLBot 发现超越模仿的策略,并利用 RdeepBot 启发式搜索行为中的弱点。 **假设 2.1:** 随着评估的 RdeepBot 对手的搜索深度参数增加,RLBot 的胜率会下降。 **理由:** 随着 RdeepBot 的深度增加,其基于搜索的决策应该变得更强、战术上更精确。因此,即使 RLBot 总体保持竞争力或优势,击败深度更大的 RdeepBot 变体预计会变得更困难,从而降低 RLBot 的胜率。 **假设 3:** 强化学习智能体 RLBot,针对不同 `num_samples` 设置的 RdeepBot 对手训练 120 万局游戏,将比评估的基线 RdeepBot 样本变体实现统计上显著更高的胜率。 **理由:** RLBot 通过大规模交互学习基于价值的决策策略,而 RdeepBot 的 `num_samples` 参数控制其在搜索过程中采样隐藏信息状态的广泛程度。针对不同采样强度的 RdeepBot 变体训练 RLBot,预计将产生一个能够胜过评估的 RdeepBot 样本变体的学得智能体。 **假设 3.1:** 随着评估的 RdeepBot 对手的 `num_samples` 参数增加,RLBot 的胜率会下降。 **理由:** 增加 `num_samples` 通过改善在移动选择过程中对隐藏信息状态的近似,增强了 RdeepBot 处理部分可观察性的能力。因此,高样本的 RdeepBot 变体预计将是更具韧性的对手,导致 RLBot 的胜率降低。 ## 4 实验设置 为了实验的实际实现,我们使用了 Python 3.11.11 及其内置和导入的模块。读者若需要我们所指的文件和源代码,可通过论文开头提到的电子邮件地址向我们索取。 ### 4.1 关于异步处理与可复现性的说明 为了确保我们的实验既高效又可复现,我们在 Apple M2 Pro 芯片(10 核,其中 6 个性能核心和 4 个效率核心)以及 16GB 统一内存上利用了异步 CPU 处理。我们使用 Python 的 `concurrent.futures` 模块 [9 (https://arxiv.org/html/2605.17162#bib.bib4)] 设计我们的多核处理逻辑。在我们的架构中,我们使用“工作者”(`ProcessPoolExecutor`),每个工作者大致映射到一个 CPU 核心,通常利用 8 到 9 个核心以保持系统稳定性。 由于每个实验的模拟分布在隔离的进程中,仅依赖全局随机种子是不够的。这种潜在的做法可能导致相同的游戏重复。因此,我们转而实现了一个确定性的种子分配策略,向每个处理块传递一个唯一的 `seed_start` 整数。在工作进程内部,每场独立游戏的种子按 `seed = seed_start + i` 线性计算。这种方法确保了跨多个并行比赛进行的每场游戏都具有独特的洗牌和设置,同时保证了整个实验可以通过使用相同的初始参数重新运行脚本来复现。该逻辑可参见以下代码片段:
相似文章
一项关于轻量级游戏智能体强大因素的黄金标准研究
本文研究了在不完美信息纸牌游戏中训练轻量级强化学习智能体的设计选择,使用固定的基于规则的专家作为基准,针对金拉米和勒德克德州扑克。研究发现,信任区域更新、精心设计的奖励、课程学习、热启动和检查点保留能提升性能,而奖励塑形和大语言模型对手等几种常见技术并无帮助。
深度强化学习掌握Baghchal的不对称策略
本文系统地探索了四种深度强化学习解决方案(DQN、REINFORCE、PPO和MuZero)用于尼泊尔不对称棋盘游戏Baghchal,发现MuZero由于通过蒙特卡洛树搜索进行基于模型的规划,获得了最佳胜率。
有没有其他人尝试过不进行微调来训练智能体网络?
作者分享了一个确定性学习框架,它通过将成功的策略提升为持久化的剧本,让多智能体系统在不进行微调或提示词编辑的情况下跨回合改进。在 Mini Amusement Park 基准测试上,奖励从 12,121 提升到 483,019,达到了排行榜第一名。
从单个演示中学习蒙特祖玛的复仇
OpenAI 展示了一种通过单个人类演示来训练强化学习智能体玩蒙特祖玛的复仇的方法,通过课程学习和仔细的超参数调优来解决稀疏奖励的挑战。该方法在这款臭名昭著的 Atari 游戏上取得了强劲表现,但在其他游戏上的泛化能力有限。
@mervenoyann:@willcb的有趣演讲
Primordial AI的Will Brown在此次演讲中探讨了如何将强化学习扩展至奖励难以验证的复杂现实任务,涉及锚定法、大语言模型评判与仿真模拟等技术。