具体来说,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 间对战的接口,支持并行加速。平台设计遵循以下设计原则:
易于比较。在 RLCard 中的得到结果可以方便比较。不同的研究者会提出各种各样的算法,RLCard 通过 AI 间博弈进行性能评估。通过设置同样的随机种子,同样的结果可以在多次实验上复现。
易用。尽可能用简单的接口产生游戏数据,并且支持对游戏状态编码、动作编码、奖励函数设计、游戏规则的自定义。
可扩展。尽可能最小化环境依赖,使得工具包维护简单。新游戏遵循工具包的设计原则也可以方便加入。
对于游戏环境实现,RLCard 平台抽象并定义了这些游戏概念:玩家,比赛(Game),对局(Round),发牌者(Dealer),裁判(Judger)。游戏环境实现都通过这些概念对应的类,这样的相同的设计规范让游戏逻辑更容易理解、更容易操作。别的牌类游戏也基本都可以符合这个结构,未来如果想要增加很容易。
作为对比,现有的强化学习库多数都是单智能体环境的(比如 OpenAI Gym);近期虽然也有一些支持多智能体的环境(比如星际2),但它们并不支持牌类游戏。RLCard 专为牌类游戏设计,不仅是一些牌类游戏在强化学习库中的首次实现,也提供了简单直观的接口,便于强化学习研究。
在目前的学术文献中,解决扑克游戏的最热门的方法是反事实后悔最小化(Counterfactual Regret Minimization,CFR),以及它的各种变体,胜过了人类职业选手的冷扑大师(Libratus)使用的就是基于 CFR 的方法。不过,CFR 很消耗计算资源,因为它需要完全遍历整个游戏树,所以它也不适用于斗地主之类的状态空间很大的游戏。
近期也有研究表明,强化学习策略可以在打赌类的博弈中取得很好的表现,比如玩斗地主就玩得不错。这些美妙的成果,以及强化学习本身的灵活性都让我们有可能探索状态空间、行动空间更大的更困难的牌类游戏。