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

2019 年 10 月 12 日 AI科技评论


作者 | 杨晓凡
编辑 | 唐里

在过去的两三年中,我们经常听说人工智能在棋牌类游戏(博弈)中取得新的成果,比如基于深度强化学习的 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「融通」 ,徐宗本院士进行超强“迁移学习”

   张钹院士:人工智能的魅力就是它永远在路上 | CCAI 2019

   Facebook 自然语言处理新突破:新模型能力赶超人类 & 超难 NLP 新基准

   探索无限大的神经网络


点击“阅读原文”查看 如何教神经网络玩 21 点游戏(附代码)?

登录查看更多
0

相关内容

强化学习(RL)是机器学习的一个领域,与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。除了监督学习和非监督学习外,强化学习是三种基本的机器学习范式之一。 强化学习与监督学习的不同之处在于,不需要呈现带标签的输入/输出对,也不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡。 该环境通常以马尔可夫决策过程(MDP)的形式陈述,因为针对这种情况的许多强化学习算法都使用动态编程技术。经典动态规划方法和强化学习算法之间的主要区别在于,后者不假设MDP的确切数学模型,并且针对无法采用精确方法的大型MDP。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
FPGA加速系统开发工具设计:综述与实践
专知会员服务
62+阅读 · 2020年6月24日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
25+阅读 · 2020年5月25日
多智能体深度强化学习的若干关键科学问题
专知会员服务
172+阅读 · 2020年5月24日
《强化学习》简介小册,24页pdf
专知会员服务
261+阅读 · 2020年4月19日
【强化学习】深度强化学习初学者指南
专知会员服务
178+阅读 · 2019年12月14日
近期强化学习领域论文导读(附源码)
人工智能前沿讲习班
7+阅读 · 2019年6月15日
无人驾驶开源仿真平台整理
智能交通技术
25+阅读 · 2019年5月9日
OpenAI强化学习实战
炼数成金订阅号
9+阅读 · 2018年5月14日
【团队新作】深度强化学习进展: 从AlphaGo到AlphaGo Zero
中国科学院自动化研究所
16+阅读 · 2018年1月31日
DeepMind发布《星际争霸 II》深度学习环境
人工智能学家
8+阅读 · 2017年9月22日
Precise Detection in Densely Packed Scenes
Arxiv
3+阅读 · 2019年4月8日
Viewpoint Estimation-Insights & Model
Arxiv
3+阅读 · 2018年7月3日
Arxiv
5+阅读 · 2018年6月5日
Arxiv
7+阅读 · 2018年1月24日
VIP会员
相关资讯
近期强化学习领域论文导读(附源码)
人工智能前沿讲习班
7+阅读 · 2019年6月15日
无人驾驶开源仿真平台整理
智能交通技术
25+阅读 · 2019年5月9日
OpenAI强化学习实战
炼数成金订阅号
9+阅读 · 2018年5月14日
【团队新作】深度强化学习进展: 从AlphaGo到AlphaGo Zero
中国科学院自动化研究所
16+阅读 · 2018年1月31日
DeepMind发布《星际争霸 II》深度学习环境
人工智能学家
8+阅读 · 2017年9月22日
Top
微信扫码咨询专知VIP会员