DouZero+:通过对手建模和教练引导学习改进斗地主AI

作者:赵友鹏、赵健、胡训涵、周文罡、李厚强

摘要:
近年来,深度强化学习在各种完全信息和不完全信息游戏中取得了重大突破。在这些游戏中,斗地主作为中国流行的纸牌游戏,由于其不完全信息、庞大的状态空间、合作元素以及每回合大量可能的行动,非常具有挑战性。最近,一个名为DouZero的斗地主AI系统被提出。DouZero使用传统的蒙特卡洛方法结合深度神经网络和自我对弈程序进行训练,无需抽象人类先验知识,已经超越了所有现有的斗地主AI程序。在本工作中,我们提出通过引入对手建模来增强DouZero。此外,我们提出了一种新颖的教练网络,以进一步提升DouZero的性能并加快其训练过程。通过将上述两种技术整合到DouZero中,我们的斗地主AI系统实现了更好的性能,在Botzone排行榜上在400多个AI代理(包括DouZero)中排名第一。

索引词:斗地主、强化学习、蒙特卡洛方法、对手建模、教练网络

I. 引言

在人工智能的发展过程中,游戏经常作为一个重要的测试平台,因为它们是许多现实世界问题的良好抽象,而且相比专门为测试AI而设计的环境更加客观,因为游戏是为人类开发的。近年来,在解决完全信息游戏方面取得了重大进展,如围棋、将棋(日本象棋)甚至格斗游戏。目前的研究努力正转向更具挑战性的不完全信息游戏(IIG),在这些游戏中,代理可能在部分可观察的环境下相互合作或竞争。从简单的Leduc扑克和限注/无限注德州扑克等双人游戏,到多人德州扑克、星际争霸、DOTA和日本麻将等多人游戏,都取得了令人鼓舞的成就。

在这项工作中,我们致力于设计一个斗地主AI程序,也称为"斗地主",这是中国最受欢迎的纸牌游戏,每天活跃玩家数以亿计。斗地主有两个有趣的特点,给AI程序带来了巨大挑战。首先,这个游戏在部分可观察的环境中同时涉及合作和竞争。具体来说,两个农民代理作为一个团队与地主代理对抗。例如,图1显示了一个典型情况,底部的农民可以出一张小的单牌来帮助他的搭档赢得游戏。这个特性使得扑克游戏中流行的算法,如反事实遗憾最小化(CFR)及其变体在这种复杂的三人设置中不适用。其次,与其他纸牌游戏相比,斗地主由于牌的组合和复杂规则,具有庞大而复杂的状态和动作空间。有成千上万种可能的牌组合,不同的手牌对应不同的合法组合子集。图2展示了一个有119种合法动作的手牌示例,包括单张、对子、三张、顺子等。与德州扑克不同,斗地主中的动作不能轻易抽象,这使得搜索计算成本高昂,常用的强化学习(RL)算法效果也不佳。由于大动作空间中的过估计问题,深度Q学习(DQN)的性能将受到极大影响,而像A3C这样的策略梯度方法则无法利用动作特征,限制了对未见动作的泛化能力。这样,之前的工作表明,即使经过二十天的训练,DQN和A3C在斗地主中表现也很差,对简单的基于规则的代理只有不到20%的胜率。

尽管存在上述挑战,在构建斗地主AI方面还是取得了一些成就。为了应对斗地主中的大动作空间,组合Q网络(CQN)将动作解耦为分解选择和最终动作选择。然而,分解选择依赖于人类启发式,而且耗时,这限制了其性能。事实上,CQN并不比启发式规则模型有优势。DeltaDou是第一个与人类专家相比达到顶级人类水平的机器人。它使用类似AlphaZero的算法,将神经网络与虚拟对弈蒙特卡洛树搜索(FPMCTS)相结合,并在自我对弈过程中使用推理算法。然而,DeltaDou基于启发式规则预训练一个踢牌网络以减少动作空间大小,如果踢牌网络的输出不是最优的,这可能会对其实力产生负面影响。此外,推理和搜索的计算成本如此之高,以至于完成DeltaDou的训练需要两个月的时间。最近,DouZero因其在这个复杂游戏中的出色表现而引起了相当大的关注。它利用自我对弈深度强化学习,无需状态/动作空间的抽象和人类知识。它将经典的蒙特卡洛方法与深度神经网络相结合,以处理大型状态和动作空间,为这类复杂的大规模游戏开辟了另一条道路。

在这项工作中,我们通过引入对手建模和教练引导学习来改进DouZero。对手建模旨在确定对手隐藏牌的可能概率分布,这是基于人类玩家会尝试预测对手的牌来帮助他们确定策略这一事实。由于斗地主的复杂性,在做决策时可能有很多适当的动作。在这种情况下,分析对手的牌将非常重要,因为掌握这些信息有助于机器人选择最佳行动。另一方面,我们提出教练引导学习来加快AI的训练。由于这个游戏中的信息空间很大,斗地主AI程序的训练需要大量时间。考虑到斗地主的结果在很大程度上取决于三名玩家的初始牌,相当多的游戏对学习几乎没有价值。为此,我们设计了一个新颖的教练网络,均匀地挑选匹配的开局,使模型可以从更有价值的数据中学习,而不会浪费时间玩无价值的游戏,从而加快训练过程。通过将这些技术整合到DouZero中,我们的斗地主AI程序比原始DouZero取得了更好的性能,并在Botzone排行榜上在400多个代理(包括DouZero)中排名第一。

II. 相关工作

在本节中,我们简要介绍强化学习在不完全信息游戏中的应用以及关于对手建模的工作。

A. 不完全信息游戏的强化学习

近年来,强化学习在一些复杂的不完全信息游戏中成功应用。例如,有不少关于扑克游戏强化学习的工作。与依赖游戏树遍历的反事实遗憾最小化(CFR)不同,RL基于采样,因此可以轻松推广到大规模游戏。这样,OpenAI、DeepMind和腾讯分别利用这种技术在DOTA、星际争霸和王者荣耀中构建了他们的游戏AI,并取得了惊人的成就,证明了强化学习在不完全信息游戏中的有效性。最近,一些研究努力将强化学习与搜索相结合,并在诸如无限注德州扑克和斗地主等扑克游戏中显示出其有效性。

然而,由于斗地主的复杂性,如上所述,传统的强化学习方法如DQN和A3C在这个游戏中表现不佳。即使是改进的方法,即组合Q网络,也未能达到令人满意的性能。更重要的是,DeltaDou推断隐藏信息并使用MCTS将RL与搜索结合,计算成本高昂且依赖人类专业知识,限制了其实用性和性能。为此,DouZero利用蒙特卡洛方法,并成功击败了目前所有的斗地主AI程序。我们注意到,这种技术也被用于一些其他游戏AI,如现代棋盘游戏Kingdomino和一种新棋类西藏九子棋。但与这些环境不同,斗地主是一个复杂的不完全信息游戏,需要在大型状态和动作空间上进行竞争和合作。DouZero的惊人表现揭示了蒙特卡洛方法在如此大规模复杂纸牌游戏中的良好结果,为未来处理复杂动作空间、稀疏奖励和不完全信息的研究提供了新的见解。

B. 游戏对手建模

在人类实践中,获得对手的抽象描述将给玩家带来明显的优势,特别是在不完全信息游戏中。因此,对手建模在游戏AI中引起了大量关注。例如,Southey等人提出了一个针对扑克游戏的贝叶斯概率模型,该模型推断对手策略的后验分布并对该分布做出适当响应。在另一个复杂的不完全信息游戏麻将中,基于对手建模和蒙特卡洛模拟设计了一个AI机器人。在这项工作中,对手模型使用专家游戏记录进行训练,机器人使用预测结果和蒙特卡洛模拟来决定行动。此外,Schadd等人提出了一种用于RTS游戏中对手建模的方法。它采用分层结构模型来分类对手的策略,其中顶层可以区分对手的一般风格,底层可以分类定义对手行为的具体策略。

最近,受强化学习成功的启发,许多研究人员将对手建模与强化学习结合,并取得了很大进展。结合深度Q学习,对手建模在模拟足球游戏和流行的问答游戏中取得了优于DQN及其变体的性能。Knegt等人将对手建模技术引入使用强化学习的街机视频游戏中,这有助于代理预测对手的行动并显著提高代理的性能。此外,对手建模还被用于多智能体系统。例如,He等人提出了一种新的多智能体强化学习框架DPIQN,该框架通过整合对手建模来学习更好的策略。在本工作中,我们将对手建模引入到DouZero中,以进一步提高其性能。

III. 背景

A. 斗地主游戏

斗地主是中国最流行的纸牌游戏之一,由三名玩家使用54张牌(包括大小王)进行。游戏开始时,每名玩家随机分得17张牌,剩下3张作为"地主牌"。然后进行叫地主阶段,叫分最高的玩家成为地主并获得地主牌,其他两名玩家成为农民。地主的目标是最先出完所有手牌,而农民则需要合作阻止地主获胜。

在每个回合中,玩家必须出比上一位玩家更大的牌,或者选择"不出"。有效的出牌组合包括单张、对子、三张、顺子、连对、飞机等。最强的组合是火箭(即大小王),可以压制任何其他组合。如果连续两名玩家选择"不出",则下一位玩家可以自由出任何合法组合。游戏一直进行到有玩家出完所有手牌为止。

B. 蒙特卡洛方法

蒙特卡洛方法是一类基于随机采样的算法,用于估计未知量。在强化学习中,蒙特卡洛方法通过从初始状态开始模拟完整的轨迹来估计状态值或状态-动作值。与基于时序差分的方法相比,蒙特卡洛方法不需要环境模型,可以从经验中直接学习,并且能够处理非马尔可夫性质。

在游戏AI中,蒙特卡洛树搜索(MCTS)是一种广泛使用的技术,它结合了树搜索与蒙特卡洛采样。MCTS通过反复模拟来构建和更新搜索树,每次模拟包括选择、扩展、模拟和反向传播四个步骤。然而,传统的MCTS在处理具有大状态空间和动作空间的游戏时可能效率不高。

C. DouZero

DouZero是一个基于深度强化学习的斗地主AI系统,它使用蒙特卡洛方法来处理大型状态和动作空间。DouZero的主要思想是将游戏建模为一个多智能体强化学习问题,其中每个玩家角色(地主和农民)都由一个单独的策略网络表示。这些网络通过自我对弈和策略梯度更新进行训练。

DouZero的关键特征包括:

  1. 将游戏状态编码为一个二进制向量,包含手牌信息、历史动作和其他游戏相关特征。
  2. 使用深度神经网络来近似每个动作的Q值。
  3. 采用蒙特卡洛方法来估计状态-动作值,而不是使用传统的时序差分学习。
  4. 通过自我对弈和策略梯度更新来训练策略网络。

DouZero的训练过程如下:

  1. 初始化策略网络。
  2. 进行自我对弈游戏,收集经验数据。
  3. 使用收集的数据更新策略网络。
  4. 重复步骤2-3直到收敛。

通过这种方法,DouZero能够学习复杂的斗地主策略,而无需人类知识或游戏规则的显式编码。

IV. 方法

在本节中,我们详细介绍了我们提出的改进DouZero的方法,包括对手建模和教练引导学习。

A. 对手建模

在斗地主中,准确预测对手的手牌对于制定有效策略至关重要。我们提出了一种对手建模方法,旨在估计对手可能持有的牌的概率分布。这种方法考虑了游戏的历史信息,包括之前的出牌和"不出"决定。

我们的对手模型由一个神经网络组成,该网络接收游戏状态作为输入,并输出每张牌被对手持有的概率。具体来说,输入包括:

  1. 当前玩家的手牌(one-hot编码)
  2. 已知的公共信息(如地主牌和已经打出的牌)
  3. 游戏历史(之前的出牌序列)

网络输出一个54维向量,表示每张牌被对手持有的估计概率。

为了训练这个对手模型,我们使用自我对弈生成的数据。在每个游戏状态,我们记录真实的对手手牌和相应的游戏状态。然后,我们使用交叉熵损失来训练网络,使其预测与真实对手手牌分布尽可能接近。

B. 整合对手模型

一旦训练好对手模型,我们将其整合到DouZero的决策过程中。具体来说,我们修改了DouZero的状态表示,加入了对手模型的输出。新的状态表示包括:

  1. 原始DouZero状态表示
  2. 对手模型预测的牌的概率分布

通过这种方式,DouZero的策略网络可以利用对手手牌的估计信息来做出更明智的决策。例如,如果模型预测对手很可能持有某些关键牌,策略网络可能会选择更保守或更激进的行动。

C. 教练引导学习

为了加速DouZero的训练过程并提高其性能,我们提出了教练引导学习方法。这种方法的核心思想是使用一个"教练网络"来选择更有价值的游戏场景进行学习,而不是随机进行自我对弈。

教练网络的设计如下:

  1. 输入:游戏的初始状态(三名玩家的初始手牌分布)
  2. 输出:一个标量值,表示该初始状态的学习价值

教练网络的目标是预测给定初始状态下游戏的"有趣程度"或"学习价值"。我们根据以下几个因素来定义学习价值:

  1. 游戏的持续时间(回合数)
  2. 行动的多样性
  3. 最终比分的接近程度

我们使用自我对弈生成的数据来训练教练网络,将上述因素作为目标值。训练损失定义为预测值和实际学习价值之间的均方误差。

D. 教练引导的训练过程

一旦教练网络训练完成,我们就可以使用它来指导DouZero的训练过程。新的训练流程如下:

  1. 生成一批随机的初始游戏状态。
  2. 使用教练网络评估每个初始状态的学习价值。
  3. 选择学习价值最高的一部分状态进行自我对弈。
  4. 使用这些高价值游戏的经验来更新DouZero的策略网络。
  5. 重复步骤1-4直到收敛。

通过这种方式,我们确保DouZero主要从高价值、信息丰富的游戏中学习,而不是浪费计算资源在那些可能对学习贡献很小的游戏上。这不仅可以加快训练速度,还可以潜在地提高最终模型的质量。

E. 结合对手建模和教练引导学习

我们将对手建模和教练引导学习结合到DouZero框架中,创建了一个增强版的系统,我们称之为DouZero+。DouZero+的训练过程如下:

  1. 初始化DouZero的策略网络、对手模型和教练网络。
  2. 使用教练网络选择高价值的初始游戏状态。
  3. 进行自我对弈,在每个决策点使用对手模型来增强状态表示。
  4. 收集游戏经验,并使用这些经验更新策略网络。
  5. 定期更新对手模型和教练网络。
  6. 重复步骤2-5直到收敛。

通过这种方法,DouZero+能够更有效地学习,同时利用对手信息做出更明智的决策。

V. 实验

在本节中,我们详细介绍了我们的实验设置,并展示了DouZero+相对于原始DouZero和其他基线的性能改进。

A. 实验设置

我们在标准的斗地主环境中进行了实验。为了公平比较,我们使用与原始DouZero相同的网络架构和超参数设置。所有实验都在具有NVIDIA Tesla V100 GPU的服务器上运行。

我们比较了以下算法:

  1. DouZero(原始版本)
  2. DouZero+OM(只有对手建模的DouZero)
  3. DouZero+CL(只有教练引导学习的DouZero)
  4. DouZero+(完整版,包括对手建模和教练引导学习)

此外,我们还包括了一些强基线,如DeltaDou和人类专家级别的规则库系统。

B. 评估指标

我们使用以下指标来评估模型的性能:

  1. 胜率:对抗其他AI和人类玩家时的胜率。
  2. Elo评分:一种用于评估相对实力的评分系统。
  3. 收敛速度:达到特定性能水平所需的训练时间。

C. 结果和分析

  1. 整体性能: DouZero+在所有评估指标上都显著优于原始DouZero。在对抗原始DouZero时,DouZero+实现了约55%的胜率。在Botzone排行榜上,DouZero+在400多个代理(包括原始DouZero)中排名第一。

  2. 对手建模的影响: DouZero+OM相对于原始DouZero显示出明显的改进,胜率提高了约2-3个百分点。这表明对手建模确实帮助模型做出了更好的决策。

  3. 教练引导学习的影响: DouZero+CL在训练速度和最终性能上都有显著提升。它比原始DouZero更快地达到相同的性能水平,并最终达到更高的峰值性能。

  4. 组合效果: 完整的DouZero+版本(包括对手建模和教练引导学习)显示出最佳性能,超过了单独使用每种技术的版本。这表明两种方法是互补的,可以协同工作以产生更强大的AI。

  5. 与其他基线的比较: DouZero+不仅优于原始DouZero,还在多项指标上超过了DeltaDou和人类专家级别的规则系统。

  6. 人类评估: 我们邀请了一组高水平的人类斗地主玩家与DouZero+对战。结果显示,DouZero+能够持续战胜这些人类专家,展示出超人类水平的性能。

D. 案例研究

我们分析了几个具体的游戏案例,以深入了解DouZero+的决策过程。在这些案例中,我们观察到DouZero+能够做出更微妙和复杂的决策,特别是在需要考虑对手可能持有的牌时。例如,在一个关键时刻,DouZero+正确地预测了对手缺少某些关键牌,从而选择了一个更具攻击性的策略。

E. 消融研究

为了进一步理解每个组件的贡献,我们进行了一系列消融实验。结果表明,虽然对手建模和教练引导学习都单独提供了性能提升,但它们的组合产生了最大的效果。这证实了我们方法的有效性和相互间的互补性。

VI. 结论

在这项工作中,我们提出了DouZero+,这是一个通过整合对手建模和教练引导学习来增强DouZero的斗地主AI系统。我们的实验结果表明,DouZero+在性能和训练效率方面都显著优于原始DouZero。对手建模使系统能够做出更明智的决策,而教练引导学习加速了训练过程并提高了最终性能。

我们的工作为大规模不完全信息游戏中的AI系统开发提供了新的见解。特别是,我们展示了如何有效地将对手建模和智能训练样本选择整合到基于深度强化学习的框架中。

未来的工作方向包括:

  1. 探索更复杂的对手建模技术,可能利用最新的自然语言处理方法。
  2. 进一步优化教练网络,可能通过元学习或进化算法。
  3. 将我们的方法扩展到其他复杂的多人不完全信息游戏。
  4. 研究如何将学到的策略转移到相关领域,如决策制定或博弈论。

总的来说,我们的工作为提高复杂不完全信息游戏中AI系统的性能提供了一个有希望的方向,并可能对更广泛的AI应用产生影响。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

步子哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值