卡牌游戏八合一,华人团队开源强化学习研究平台RLCard

作者 | 杨晓凡 编辑 | 唐里

在过去的两三年中,我们经常听说人工智能在棋牌类游戏(博弈)中取得新的成果,比如基于深度强化学习的 AlphaGo 击败了人类世界冠军,由 AlphaGo 进化而来的 AlphaZero 还一并搞定了国际象棋和日本象棋;基于博弈论的冷扑大师(Libratus)也在无限注德州扑克比赛中击败了人类职业选手;今年在澳门举行的 IJCAI 2019 上我们也发现了一篇斗地主 AI 论文。

不过,虽然这些团队各自做出了令人瞩目的成果,但不管对于工业界还是学术界来说,都缺少一个迅速开发和测试棋牌类 AI 的环境。最近德州农工大学胡侠带领的华人团队就给出了他们的解决方案,开源了基于牌类游戏设计的强化学习 Python 平台 RLCard(Github:https://github.com/datamllab/rlcard),在打包实现了多种牌类游戏算法的同时,也提供了中西方最流行的几种牌类游戏环境(包括斗地主、麻将、21点、德州扑克、UNO等),致力于为强化学习提供一个统一、易用的开发和测试环境。

RLCard 介绍

具体来说,RLCard 实现了四种有代表性的强化学习算法:作为强化学习的代表算法的 DQN、作为带有自我学习的强化学习的代表算法的 NSFP、反事实后悔最小化 CFR 以及深度反事实后悔最小化 DeepCFR。RLCard 中也带有一个随机智能体。

RLCard 中实现了八种牌类游戏环境:二十一点(Blackjack),三种德州扑克(简化版德扑 Leduc Hold'em,有限制德扑 Limit Texas Hold'em 以及无限制德扑 No-limit Texas Hold'em ),斗地主,麻将,UNO 以及升级(目前升级游戏环境还在开发中)。

RLCard 安装快速、使用简单,提供大量的实例、文档及 demo;提供人类与 AI,以及 AI 与 AI 间对战的接口,支持并行加速。平台设计遵循以下设计原则:

  1. 易于比较。在 RLCard 中的得到结果可以方便比较。不同的研究者会提出各种各样的算法,RLCard 通过 AI 间博弈进行性能评估。通过设置同样的随机种子,同样的结果可以在多次实验上复现。
  2. 易用。尽可能用简单的接口产生游戏数据,并且支持对游戏状态编码、动作编码、奖励函数设计、游戏规则的自定义。
  3. 可扩展。尽可能最小化环境依赖,使得工具包维护简单。新游戏遵循工具包的设计原则也可以方便加入。

对于游戏环境实现,RLCard 平台抽象并定义了这些游戏概念:玩家,比赛(Game),对局(Round),发牌者(Dealer),裁判(Judger)。游戏环境实现都通过这些概念对应的类,这样的相同的设计规范让游戏逻辑更容易理解、更容易操作。别的牌类游戏也基本都可以符合这个结构,未来如果想要增加很容易。

作为对比,现有的强化学习库多数都是单智能体环境的(比如 OpenAI Gym);近期虽然也有一些支持多智能体的环境(比如星际2),但它们并不支持牌类游戏。RLCard 专为牌类游戏设计,不仅是一些牌类游戏在强化学习库中的首次实现,也提供了简单直观的接口,便于强化学习研究。

在目前的学术文献中,解决扑克游戏的最热门的方法是反事实后悔最小化(Counterfactual Regret Minimization,CFR),以及它的各种变体,胜过了人类职业选手的冷扑大师(Libratus)使用的就是基于 CFR 的方法。不过,CFR 很消耗计算资源,因为它需要完全遍历整个游戏树,所以它也不适用于斗地主之类的状态空间很大的游戏。

近期也有研究表明,强化学习策略可以在打赌类的博弈中取得很好的表现,比如玩斗地主就玩得不错。这些美妙的成果,以及强化学习本身的灵活性都让我们有可能探索状态空间、行动空间更大的更困难的牌类游戏。

RLCard 使用方法

RLCard 使用简单,输入 pip install rlcard 可快速安装。安装完成后,用以下 5 行代码就能用随机的智能体产生对局数据,返回的数据可直接用于强化学习算法训练。

另外,RLCard还提供了丰富的的运行实例,包括产生随机数据,训练CFR、DQN、NFSP等算法,以及多进程运行实例。

RLCard 提供人机对战 demo。RLCard 提供 Leduc Hold'em 游戏环境的一个预训练模型,可以直接测试人机对战。Leduc Hold'em 是一个简化版的德州扑克,游戏使用 6 张牌(红桃 J、Q、K,黑桃 J、Q、K),牌型大小比较中 对牌>单牌,K>Q>J,目标是赢得更多的筹码。与预训练模型对局展示如下:

RLCard 评估

除此之外,开发团队还对 RLCard 做了系统的评估。他们测试了最流行的强化学习算法在环境上的表现。测试方法包括与随机策略的比较以及 AI 间互相对战的比较。发现主流算法在小型游戏上普遍有较好的效果,但是在较复杂游戏(例如斗地主、UNO)效果一般。如何在复杂的游戏中更好地训练强化学习算法需要更多的研究。

团队也对游戏运行的效率进行了评估。在 24 核 2.10GHz CPU 服务器上对各个游戏的运行时间进行了测试,使用多进程可以更高效地产生游戏数据。

目前 RLCard 的官网已经上线,其中提供了详细的文档。学术论文也已经发表在 arXiv,第一作者为查道琛。详细信息可以访问下面的链接:

  • Github:https://github.com/datamllab/rlcard
  • 官方网站:http://rlcard.org
  • 论文:https://arxiv.org/abs/1910.04376

未来,作者们还会继续优化和增强这个平台,他们的计划包括增加基于规则的智能体、增加更多预训练模型(帮助评价模型),增加更多游戏环境和算法,以及增加可视化和分析功能等。相信这个环境能对领域内的研究人员们起到很大帮助。

感谢查道琛、胡侠对文本提供的帮助。AI 科技评论报道。

本文分享自微信公众号 - AI研习社(okweiwu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券