【论文阅读】PerfectDou: Dominating DouDizhu with Perfect Information Distillation

1 本文解决了什么问题?

斗地主作为一个非完美信息博弈,目前的研究尚未深入。在本文之前,SoTA 的斗地主 AI 算法是 DouZero,而作者发现该算法在许多博弈场景中存在比较严重的局限性。作者参考了多智能体强化学习中的 集中式训练,分布式执行(CTDE) 的思路,提出了 Perfect-Training-Imperfect-Execution (PTIE) 的框架,即在训练时,使用完美信息来指导智能体的训练,而在实际博弈中,使用非完美信息进行决策。

实验证明,PerfectDou 算法优势如下:

  • 成为目前的 SoTA 斗地主 AI;
  • 训练更加高效,训练所需的样本比之前的 SoTA 算法低一个数量级;
  • 推理速度快,可被部署至在线博弈场景中。

2 本文提出的方法是什么?

2.1 先验知识

【非完美信息扩展式博弈】 一个非完美信息扩展式博弈可以被描述为一个元组 G=(P,H,Z,A,T,χ,ρ,r,I)G=(\mathcal{P}, \mathcal{H}, \mathcal{Z}, \mathcal{A}, \mathcal{T}, \chi, \rho, r, \mathcal{I})G=(P,H,Z,A,T,χ,ρ,r,I)。其中,P\mathcal{P}P 表示博弈中有限的玩家集合;A\mathcal{A}A 表示有限的动作集合;H\mathcal{H}H 表示有限的节点集合, 其中玩家在每个节点上可以执行动作(与 RL 中的状态相似);在节点 h∈Hh \in \mathcal{H}h∈H,动作函数 χ:H→2A\chi: \mathcal{H} \rightarrow 2^{\mathcal{A}}χ:H→2A 给每个节点分配可执行的动作集合;ρ:H→P\rho: \mathcal{H} \rightarrow \mathcal{P}ρ:H→P 表示特定的执行动作的玩家;动作 a∈A(h)a \in A(h)a∈A(h) 执行后,可根据后继函数 T:H×A→H\mathcal{T}: \mathcal{H} \times \mathcal{A} \rightarrow \mathcal{H}T:H×A→H ,即 h′=T(h,a)h^{\prime}=\mathcal{T}(h, a)h′=T(h,a) 进行节点的转移;Z⊆H\mathcal{Z} \subseteq \mathcal{H}Z⊆H 是终止节点集合,并且没有动作可以使用;对于每个玩家 p∈Pp \in \mathcal{P}p∈P,有奖励函数 rp∈r=r1,r2,…,r∣P∣:Z→Rr_p \in r=r_1, r_2, \ldots, r_{|\mathcal{P}|}: \mathcal{Z} \rightarrow \mathbb{R}rp​∈r=r1​,r2​,…,r∣P∣​:Z→R;此外,I={Ip∣p∈P}\mathcal{I}=\left\{\mathcal{I}_p \mid p \in \mathcal{P}\right\}I={Ip​∣p∈P} 为博弈中的信息集(infoset),其中 Ip\mathcal{I}_pIp​ 为执行玩家 ppp 的所有节点的一部分。

如果一个玩家的两个节点 hhh 和 h′h^\primeh′ 都属于同一个信息集 I\mathcal{I}I,即 h,h′∈I∈Iph, h^{\prime} \in I \in \mathcal{I}_ph,h′∈I∈Ip​,则对于玩家 ppp 而言,hhh 和 h′h^\primeh′ 是不可区分的,并共享相同的动作集合。本文使用 I(h)I(h)I(h) 表示节点 hhh 的信息集。在某个信息集上,玩家 ppp 的执行策略 πp\pi_pπp​ 描述了在该信息集上玩家将采取的动作。策略可以是随机的,本文使用 πp(I)\pi_p(I)πp​(I) 表示在信息集 III 上,玩家 ppp 可采取的动作的概率向量,并使用 πp(h)\pi_p(h)πp​(h) 表示 在节点 hhh 上,玩家 ppp 可采取的动作的概率向量。对于属于同一个信息集的两个节点 hhh 和 h′h^\primeh′ ,显然 πp(h)=πp(h′)=πp(I)\pi_p(h)=\pi_p\left(h^{\prime}\right)=\pi_p(I)πp​(h)=πp​(h′)=πp​(I)。因此,每个玩家 ppp 的目标是在博弈结束时,最大化自己的累计期望收益 Rp≜EZ∼π[rp(Z)],Z∈ZR_p \triangleq \mathbb{E}_{Z \sim \pi}\left[r_p(Z)\right], Z \in \mathcal{Z}Rp​≜EZ∼π​[rp​(Z)],Z∈Z。

2.2 完美信息蒸馏

在牌类游戏中,非完美信息来源于玩家的手牌信息是私有的,不会向他人进行展示。因此,这里最大的难点在于 玩家如何处理同一个信息集中难以区分的节点。作者提出,可以构建一个策略上相同的完美信息博弈,并允许一个玩家能够观测到可区分的节点。每个节点上的决策可依赖于 全局信息,该玩家有更大的几率赢得游戏,就像开了作弊器一样。

因此,作者提出完美信息蒸馏,利用可区分的节点来训练非完美信息博弈中的智能体。

完美信息蒸馏是一个 perfect-training-imperfect-execution (PTIE) 的训练框架,它是多智能体强化学习中的 CTDE 的变体。实践中,CTDE 在多智能体任务中,通过所有智能体的观测和动作构建值函数;而 PTIE 的值函数学习中也添加了额外的信息(构建成完美信息博弈)。

本文中,作者考虑在 actor-critic 上实现 PTIE 框架。actor-critic 通过策略梯度法(Policy Gradient)来最大化策略函数的累计收益:
∇θpJ=Eπ[∇θplog⁡πθp(a∣s)Qπ(s,a)]\nabla_{\theta_p} J=\mathbb{E}_\pi\left[\nabla_{\theta_p} \log \pi_{\theta_p}(a \mid s) Q_\pi(s, a)\right] ∇θp​​J=Eπ​[∇θp​​logπθp​​(a∣s)Qπ​(s,a)]
其中,QQQ 为状态-动作价值函数,使用 critic 网络进行近似;π\piπ 为策略函数,使用 actor 网络进行近似。需要注意的是,critc 用来评价在当前状态 sss 下,执行动作 aaa 的好坏,仅在训练阶段使用。当智能体部署到实际的推理中时,只使用策略 π\piπ 来进行动作推断。因此,对于非完美信息博弈,可以提供关于玩家所在的确切节点的额外信息以训练 critic,只需要保证 actor 在做决策的时候不使用这些信息即可。

对于节点 hhh,本文为策略相同的完美信息博弈构建了一个可区分的节点 D(h)D(h)D(h)。接下来,本文定义了在 D(h)D(h)D(h) 上的值函数,Vπp(D(h))=Ea∼πp,h0=h[Qπp(D(h),a)]=EZ∣πp,h0=h[rp(Z)]V_{\pi_p}(D(h))=\mathbb{E}_{a \sim \pi_p, h^0=h}\left[Q_{\pi_p}(D(h), a)\right]=\mathbb{E}_{Z \mid \pi_p, h^0=h}\left[r_p(Z)\right]Vπp​​(D(h))=Ea∼πp​,h0=h​[Qπp​​(D(h),a)]=EZ∣πp​,h0=h​[rp​(Z)],作为可区分节点的期望价值。因此,将式 (1) 进行简单地扩展,即可得到对于每个玩家 ppp:
∇θpJ=Eπp[∇θplog⁡πθp(a∣h)Qπp(D(h),a)]\nabla_{\theta_p} J=\mathbb{E}_{\pi_p}\left[\nabla_{\theta_p} \log \pi_{\theta_p}(a \mid h) Q_{\pi_p}(D(h), a)\right] ∇θp​​J=Eπp​​[∇θp​​logπθp​​(a∣h)Qπp​​(D(h),a)]
实际上,作者使用 actor 来表示每个玩家的策略 πp\pi_pπp​,它以一个向量作为输入,该向量为该玩家在博弈中可以观测到的不可区分节点 hhh 的表示。为了评估动作的好坏,作者构建了 critic 网络,它的输入为可区分的节点 D(h)D(h)D(h),表示拥有全局信息。换而言之,值网络(critic)使用了额外的信息作为 输入(例如扑克中,对手的手牌信息)或者作为 目标(例如通过对手手牌计算瞬时收益),而策略网络(actor)并没有使用额外信息。

**在训练过程中,值函数更新所有可区分节点的值;然后,它对采样数据的同一信息集上的每个节点进行训练策略,隐式地给出一个对每个信息集的期望价值估计。**在实际应用中,神经网络的泛化能力使该策略能够找到更好的解决方案,这也是使用所提出的 PTIE 框架的优势。

2.3 PerfectDou 的系统设计

2.3.1 卡牌表示

作者使用了一个 12×1512 \times 1512×15 的矩阵来对可能的手牌组合进行编码。具体来说,首先用一个 4×154 \times 154×15 的矩阵来编码不同的大小和数量,其中的列对应于 15 个手牌大小(包括大小王),在一列中,四行中“1”的数量表示玩家手牌中,该大小的牌的数量。作者进一步提出将手牌的合法组合进行编码(这里与 DouZero 不同)。

2.3.2 节点表示

在斗地主博弈中,可区分节点 D(h)D(h)D(h) 应该覆盖了在节点 hhh 处所有玩家的手牌,以及游戏和玩家的状态。因此,作者提出使用 hhh 表示非完美信息的特征,使用 D(h)D(h)D(h) 表示完美信息的特征。具体而言,非完美信息特征包括了 23×12×1523 \times 12 \times 1523×12×15 的矩阵以及 6×16 \times 16×1 的博弈状态数组;而完美信息特征包括了 25×12×1525 \times 12 \times 1525×12×15 的矩阵以及 8×18 \times 18×1 的博弈状态数组。因此,它们是完全不对称的,而 非完全特征是完美特征的子集

2.3.3 网络结构与动作表示

PerfectDou 遵循了一般的 actor-critic 架构。作者采用了 PPO 结合 GAE 的学习算法。与式(2)不同的是,PPO 估计的是优势函数 Ap=Rp−VπpA_p=R_p-V_{\pi_p}Ap​=Rp​−Vπp​​。对于值网络,本文使用一个 MLP 来处理编码的特征。对于策略网络,作者首先利用 LSTM 对所有设计的特性进行编码;为了鼓励代理注意特定的手牌类型,所提出的网络结构将把所有可用的操作编码为特征向量。然后用动作和游戏特征计算合法动作概率的输出。

在形式上,作者将节点表示 eSe_SeS​ 与每个动作表示 eaie_{a_i}eai​​ 分别连接起来,得到合法动作分布:
p(a)=softmax⁡(f([es,eai]i=1N)p(a)=\operatorname{softmax}\left(f\left(\left[e_s, e_{a^i}\right]_{i=1}^N\right)\right. p(a)=softmax(f([es​,eai​]i=1N​)
其中,aia_iai​ 表示第 iii 个动作,[⋅][\cdot][⋅] 表示 NNN 个可用操作的连接操作,以及 fff 是 MLP 层。

2.3.4 完美奖励设置

如果我们只关心游戏结束时的结果,那么叶节点上的奖励就会相当稀疏;此外,玩家在对局中只能利用非完美的信息来估计他们赢得游戏的优势,这可能是不准确的和波动的。通过 PTIE,作者可以在每个节点上对斗地主施加一个预言性的奖励函数,以增强由值函数建模的完美信息

在 PerfectDou 的训练中,作者没有估计优势,而是使用 oracle 来评估每个玩家,特别是完成所有纸牌所需的最小步骤,这可以看作是对获胜距离的简单估计。奖励函数可以被定义为 两个阵营在两个连续时间步内获胜的相对距离计算出的优势差
rt={−1.0×(Adv⁡t−Advt−1)×l,Landlord 0.5×(Advt−Advt−1)×l,Peasant r_t=\left\{\begin{aligned} -1.0 \times\left(\operatorname{Adv}_t-\mathrm{Adv}_{t-1}\right) \times l, & \text { Landlord } \\ 0.5 \times\left(\mathrm{Adv}_t-\mathrm{Adv}_{t-1}\right) \times l, & \text { Peasant } \end{aligned}\right. rt​={−1.0×(Advt​−Advt−1​)×l,0.5×(Advt​−Advt−1​)×l,​ Landlord  Peasant ​
其中,
Advt=NtLandlord −min⁡(NtPeasant 1,NtPeasant 2)\mathrm{Adv}_t=N_t^{\text {Landlord }}-\min \left(N_t^{\text {Peasant } 1}, N_t^{\text {Peasant } 2}\right) Advt​=NtLandlord ​−min(NtPeasant 1​,NtPeasant 2​)
其中 lll 为规范因子,NtN_tNt​ 为在时间步 ttt 打完所有牌所需的最小步骤。

例如,在一轮中,在时间戳 ttt 时,地主获胜的距离是 5,两个农民的距离是 3 和 7,这意味着农民有更大的获胜优势,因为他们可以更快出完牌。此时,地主的相对距离为 2,而农民的相对距离为 -2。然而,如果此时地主出了一次好牌,使农民无法压制地主。那么此时,地主获胜距离为 4,农民仍然是 3 和 7。奖励计算来看,地主的相对距离由 2 变为 1,因此奖励是一个正数,以鼓励地主。而农民的奖励则为负数。

这种奖励功能 可以鼓励农民之间的合作,因为获胜距离是由双方的最小步数定义的。在本文的实现中,奖励的计算是在一轮游戏后进行的,从而提高训练效率。

2.3.5 分布式训练

为了加快训练速度,作者设计了分布式训练框架。具体来说,该系统包含一组 rollout worker,用于收集自博弈的经验数据并将其发送到 GPU 池;这些 GPU 异步接收数据并将其存储到它们的本地缓冲区。然后,每个 learner 从自己的缓冲区中随机抽取 mini-batches,并分别计算梯度,然后在所有 GPU 上同步平均,然后反向传播以更新神经网络。在每一轮更新后,新的参数将被发送给每个 rollout worker。每个 worker 在采样 24 步(每个玩家 8 步后)将加载最新的模型。这种解耦的训练采样结构将使 PerfectDou 能够扩展到大规模的实验中。本文的分布式系统设计大量借鉴了IMPALA,并保留了一组 rollout worker 来接收更新后的模型、与环境交互,并将采样的轨迹发送给 learner。

3 有什么关键实验结果?

评价指标:

  • WP (Winning Percentage):在许多比赛中以 A 获胜的比例;
  • ADP (Average Difference in Points):每场比赛中 A 和 B 之间的平均得分差异。这是评估斗地柱人工智能系统的一个更合理的指标,因为在真实的游戏中,玩家是通过获得的分数而不是他们的获胜率来评估的。

运行时间分析,比较各个算法的推理时间长短:

【论文阅读】PerfectDou: Dominating DouDizhu with Perfect Information Distillation相关推荐

  1. 论文阅读“Robust multi-view clustering with incomplete information”

    论文标题 Robust multi-view clustering with incomplete information 论文作者.链接 作者:Yang, Mouxing and Li, Yunfa ...

  2. 论文阅读:CVPR2020旷视High-Order Information Matters: Learning Relation and Topology for Occluded Person Re

    High-Order Information Matters: Learning Relation and Topology for Occluded Person Re-Identification ...

  3. 【论文阅读|深读】LINE: Large-scale Information Network Embedding

    目录 前言 ABSTRACT 1. INTRODUCTION 2. RELATED WORK 3. PROBLEM DEFINITION 4. LINE: LARGE-SCALE INFORMATIO ...

  4. 论文阅读:HAD-Net: A Hierarchical Adversarial Knowledge Distillation Network for Improved Enhanced Tumour

    论文获取地址:https://arxiv.org/pdf/2103.16617.pdf 代码开放地址:https://github.com/SaverioVad/HAD_Net 论文摘要: 在许多临床 ...

  5. 【论文阅读】DouZero: Mastering DouDizhu with Self-Play Deep Reinforcement Learning

    [论文阅读]DouZero: Mastering DouDizhu with Self-Play Deep Reinforcement Learning 1 本文解决了什么问题? 斗地主是一个非常具有 ...

  6. [论文阅读] (09)SP2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  7. Wisdom of the Crowd Voting:Truthful Aggregation of Voter Information and Preference(博弈论+机制设计) 论文阅读笔记

    Wisdom of the Crowd Voting:Truthful Aggregation of Voter Information and Preferences 论文阅读笔记 一.基本信息 二 ...

  8. 论文阅读 [TPAMI-2022] Leveraging Instance-, Image- and Dataset-Level Information for Weakly Supervised I

    论文阅读 [TPAMI-2022] Leveraging Instance-, Image- and Dataset-Level Information for Weakly Supervised I ...

  9. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](6)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](6) GNN playground Some empirical GNN ...

  10. 3D目标检测论文阅读多角度解析

    3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...

最新文章

  1. 精华:软件架构模式的7种武器
  2. Caffe下自己的数据训练和测试
  3. C++中的抽象类及纯虚函数的实现与否
  4. Linux Cp 忽略报错信息,linux使用cp报错 Text file busy
  5. 改变Android的hello world程序字体颜色和背景颜色
  6. 经典java NIO框架
  7. 订单派送中多久能送到_美森卡派送到仓库后多久能上架呢?
  8. 星低级格式化工具_Elixir 数据库查询工具 Ecto 讲解
  9. 20191011每日一句
  10. 卡方检验用于特征选择
  11. 锦锐单片机开发工具_飞思卡尔单片机PE开发工具硬件及软件
  12. 高强度聚焦超声系统市场现状及未来发展趋势
  13. Windows XP SP3 笔记本专用版 电脑疯子 2010年巨献
  14. 十分钟入门Visio,不行来砍我!
  15. 单臂路由器互联VLAN实验-Cisco Packet Tracer
  16. 深度解析小米净水器不能接管线机的问题
  17. 【BLE】蓝牙Profile
  18. 前端判断访问的浏览器是否为IE8
  19. 前置授权类资质:许可证牌照
  20. 如何实现SQL中加减乘除等四则运算

热门文章

  1. 页面数据能够正常渲染,但控制台报错属性underfined
  2. Python之路【第八篇】:面向对象的程序设计
  3. 拼多多员工因匿名发贴被辞退,拼多多最新回应
  4. macd java_macdev/java.md at master · pubyun/macdev · GitHub
  5. [IOI2018]组合动作——构造
  6. Android开源实战:手把手教你实现一个简单 好用的搜索框(含历史搜索记录
  7. 数据分析/运营——数据异常的排查方法
  8. 微信公众平台 个人微信号订阅号发图文文章 总显示发送失败
  9. Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)
  10. 【MySQL】页面上查询时间与数据库中时间相差13个小时原因及解决办法